smesh_lol_web_common_nostr.mjs raw

   1  // Package smesh.lol/web/common/nostr
   2  // Generated by MoxieJS — Moxie JavaScript backend
   3  
   4  import * as $rt from './$runtime/index.mjs';
   5  
   6  import * as smesh$lol$web$common$helpers from './smesh_lol_web_common_helpers.mjs';
   7  import * as smesh$lol$web$common$jsbridge$schnorr from './smesh_lol_web_common_jsbridge_schnorr.mjs';
   8  
   9  // Package-level variables
  10  
  11  $rt.types.registerType('smesh.lol/web/common/nostr.Event', {
  12    id: 'smesh.lol/web/common/nostr.Event',
  13    kind: 'struct',
  14    methods: new Map(),
  15    fields: [
  16      { name: 'ID', type: 'string', tag: 'json:"id"', embedded: false },
  17      { name: 'PubKey', type: 'string', tag: 'json:"pubkey"', embedded: false },
  18      { name: 'CreatedAt', type: 'int64', tag: 'json:"created_at"', embedded: false },
  19      { name: 'Kind', type: 'uint32', tag: 'json:"kind"', embedded: false },
  20      { name: 'Tags', type: 'smesh.lol/web/common/nostr.Tags', tag: 'json:"tags"', embedded: false },
  21      { name: 'Content', type: 'string', tag: 'json:"content"', embedded: false },
  22      { name: 'Sig', type: 'string', tag: 'json:"sig"', embedded: false },
  23    ],
  24    zero: () => ({ ID: '', PubKey: '', CreatedAt: 0n, Kind: 0, Tags: null, Content: '', Sig: '' }),
  25  });
  26  $rt.types.registerType('smesh.lol/web/common/nostr.Filter', {
  27    id: 'smesh.lol/web/common/nostr.Filter',
  28    kind: 'struct',
  29    methods: new Map(),
  30    fields: [
  31      { name: 'IDs', type: '[]string', tag: '', embedded: false },
  32      { name: 'Authors', type: '[]string', tag: '', embedded: false },
  33      { name: 'Kinds', type: '[]uint32', tag: '', embedded: false },
  34      { name: 'Tags', type: 'map[string][]string', tag: '', embedded: false },
  35      { name: 'Since', type: 'int64', tag: '', embedded: false },
  36      { name: 'Until', type: 'int64', tag: '', embedded: false },
  37      { name: 'Limit', type: 'uint32', tag: '', embedded: false },
  38      { name: 'Proxy', type: '[]string', tag: '', embedded: false },
  39    ],
  40    zero: () => ({ IDs: null, Authors: null, Kinds: null, Tags: null, Since: 0n, Until: 0n, Limit: 0, Proxy: null }),
  41  });
  42  export function init() {
  43    return;
  44  }
  45  
  46  export function serializeTags(buf, tags) {
  47    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44;
  48    let $block = 0;
  49    while (true) {
  50      switch ($block) {
  51        case 0: {
  52          $t0_1 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
  53          $t1_2 = $t0_1.$get().addr(0);
  54          $t1_2.$set(91);
  55          $t2_3 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, undefined, undefined);
  56          $t3_4 = $rt.builtin.appendSlice(buf, $t2_3);
  57          $t4_5 = $rt.builtin.len(tags);
  58          $t5_6 = $t3_4;
  59          $t6_7 = -1;
  60          $block = 1; break;
  61          break;
  62        }
  63        case 1: {
  64          $t7_8 = ($t6_7 + 1);
  65          $t8_9 = ($t7_8 < $t4_5);
  66          if ($t8_9) {
  67            $block = 2; break;
  68          }
  69          else {
  70            $block = 3; break;
  71          }
  72          break;
  73        }
  74        case 2: {
  75          $t9_10 = tags.addr($t7_8);
  76          $t10_11 = $t9_10.$get();
  77          $t11_12 = ($t7_8 > 0);
  78          if ($t11_12) {
  79            $block = 4; break;
  80          }
  81          else {
  82            $t20_21 = $t5_6;
  83            $block = 5; break;
  84          }
  85          break;
  86        }
  87        case 3: {
  88          $t12_13 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
  89          $t13_14 = $t12_13.$get().addr(0);
  90          $t13_14.$set(93);
  91          $t14_15 = $rt.builtin.sliceSlice($t12_13.$get(), undefined, undefined, undefined);
  92          $t15_16 = $rt.builtin.appendSlice($t5_6, $t14_15);
  93          return $t15_16;
  94          break;
  95        }
  96        case 4: {
  97          $t16_17 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
  98          $t17_18 = $t16_17.$get().addr(0);
  99          $t17_18.$set(44);
 100          $t18_19 = $rt.builtin.sliceSlice($t16_17.$get(), undefined, undefined, undefined);
 101          $t19_20 = $rt.builtin.appendSlice($t5_6, $t18_19);
 102          $t20_21 = $t19_20;
 103          $block = 5; break;
 104          break;
 105        }
 106        case 5: {
 107          $t21_22 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 108          $t22_23 = $t21_22.$get().addr(0);
 109          $t22_23.$set(91);
 110          $t23_24 = $rt.builtin.sliceSlice($t21_22.$get(), undefined, undefined, undefined);
 111          $t24_25 = $rt.builtin.appendSlice($t20_21, $t23_24);
 112          $t25_26 = $rt.builtin.len($t10_11);
 113          $t26_27 = $t24_25;
 114          $t27_28 = -1;
 115          $block = 6; break;
 116          break;
 117        }
 118        case 6: {
 119          $t28_29 = ($t27_28 + 1);
 120          $t29_30 = ($t28_29 < $t25_26);
 121          if ($t29_30) {
 122            $block = 7; break;
 123          }
 124          else {
 125            $block = 8; break;
 126          }
 127          break;
 128        }
 129        case 7: {
 130          $t30_31 = $t10_11.addr($t28_29);
 131          $t31_32 = $t30_31.$get();
 132          $t32_33 = ($t28_29 > 0);
 133          if ($t32_33) {
 134            $block = 9; break;
 135          }
 136          else {
 137            $t41_42 = $t26_27;
 138            $block = 10; break;
 139          }
 140          break;
 141        }
 142        case 8: {
 143          $t33_34 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 144          $t34_35 = $t33_34.$get().addr(0);
 145          $t34_35.$set(93);
 146          $t35_36 = $rt.builtin.sliceSlice($t33_34.$get(), undefined, undefined, undefined);
 147          $t36_37 = $rt.builtin.appendSlice($t26_27, $t35_36);
 148          $t5_6 = $t36_37;
 149          $t6_7 = $t7_8;
 150          $block = 1; break;
 151          break;
 152        }
 153        case 9: {
 154          $t37_38 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 155          $t38_39 = $t37_38.$get().addr(0);
 156          $t38_39.$set(44);
 157          $t39_40 = $rt.builtin.sliceSlice($t37_38.$get(), undefined, undefined, undefined);
 158          $t40_41 = $rt.builtin.appendSlice($t26_27, $t39_40);
 159          $t41_42 = $t40_41;
 160          $block = 10; break;
 161          break;
 162        }
 163        case 10: {
 164          $t42_43 = smesh$lol$web$common$helpers.JsonString($t31_32);
 165          $t43_44 = $rt.builtin.appendString($t41_42, $t42_43);
 166          $t26_27 = $t43_44;
 167          $t27_28 = $t28_29;
 168          $block = 6; break;
 169          break;
 170        }
 171      }
 172    }
 173  }
 174  
 175  export function appendField(buf, first) {
 176    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6;
 177    let $block = 0;
 178    while (true) {
 179      switch ($block) {
 180        case 0: {
 181          $t0_1 = first.$get();
 182          if ($t0_1) {
 183            $t5_6 = buf;
 184            $block = 2; break;
 185          }
 186          else {
 187            $block = 1; break;
 188          }
 189          break;
 190        }
 191        case 1: {
 192          $t1_2 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 193          $t2_3 = $t1_2.$get().addr(0);
 194          $t2_3.$set(44);
 195          $t3_4 = $rt.builtin.sliceSlice($t1_2.$get(), undefined, undefined, undefined);
 196          $t4_5 = $rt.builtin.appendSlice(buf, $t3_4);
 197          $t5_6 = $t4_5;
 198          $block = 2; break;
 199          break;
 200        }
 201        case 2: {
 202          first.$set(false);
 203          return $t5_6;
 204          break;
 205        }
 206      }
 207    }
 208  }
 209  
 210  export function appendStrArray(buf, ss) {
 211    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30;
 212    let $block = 0;
 213    while (true) {
 214      switch ($block) {
 215        case 0: {
 216          $t0_1 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 217          $t1_2 = $t0_1.$get().addr(0);
 218          $t1_2.$set(91);
 219          $t2_3 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, undefined, undefined);
 220          $t3_4 = $rt.builtin.appendSlice(buf, $t2_3);
 221          $t4_5 = $rt.builtin.len(ss);
 222          $t5_6 = $t3_4;
 223          $t6_7 = -1;
 224          $block = 1; break;
 225          break;
 226        }
 227        case 1: {
 228          $t7_8 = ($t6_7 + 1);
 229          $t8_9 = ($t7_8 < $t4_5);
 230          if ($t8_9) {
 231            $block = 2; break;
 232          }
 233          else {
 234            $block = 3; break;
 235          }
 236          break;
 237        }
 238        case 2: {
 239          $t9_10 = ss.addr($t7_8);
 240          $t10_11 = $t9_10.$get();
 241          $t11_12 = ($t7_8 > 0);
 242          if ($t11_12) {
 243            $block = 4; break;
 244          }
 245          else {
 246            $t20_21 = $t5_6;
 247            $block = 5; break;
 248          }
 249          break;
 250        }
 251        case 3: {
 252          $t12_13 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 253          $t13_14 = $t12_13.$get().addr(0);
 254          $t13_14.$set(93);
 255          $t14_15 = $rt.builtin.sliceSlice($t12_13.$get(), undefined, undefined, undefined);
 256          $t15_16 = $rt.builtin.appendSlice($t5_6, $t14_15);
 257          return $t15_16;
 258          break;
 259        }
 260        case 4: {
 261          $t16_17 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 262          $t17_18 = $t16_17.$get().addr(0);
 263          $t17_18.$set(44);
 264          $t18_19 = $rt.builtin.sliceSlice($t16_17.$get(), undefined, undefined, undefined);
 265          $t19_20 = $rt.builtin.appendSlice($t5_6, $t18_19);
 266          $t20_21 = $t19_20;
 267          $block = 5; break;
 268          break;
 269        }
 270        case 5: {
 271          $t21_22 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 272          $t22_23 = $t21_22.$get().addr(0);
 273          $t22_23.$set(34);
 274          $t23_24 = $rt.builtin.sliceSlice($t21_22.$get(), undefined, undefined, undefined);
 275          $t24_25 = $rt.builtin.appendSlice($t20_21, $t23_24);
 276          $t25_26 = $rt.builtin.appendString($t24_25, $t10_11);
 277          $t26_27 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 278          $t27_28 = $t26_27.$get().addr(0);
 279          $t27_28.$set(34);
 280          $t28_29 = $rt.builtin.sliceSlice($t26_27.$get(), undefined, undefined, undefined);
 281          $t29_30 = $rt.builtin.appendSlice($t25_26, $t28_29);
 282          $t5_6 = $t29_30;
 283          $t6_7 = $t7_8;
 284          $block = 1; break;
 285          break;
 286        }
 287      }
 288    }
 289  }
 290  
 291  export function i64ToStr(n) {
 292    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19;
 293    let $block = 0;
 294    while (true) {
 295      switch ($block) {
 296        case 0: {
 297          $t0_1 = (n === 0n);
 298          if ($t0_1) {
 299            $block = 1; break;
 300          }
 301          else {
 302            $block = 2; break;
 303          }
 304          break;
 305        }
 306        case 1: {
 307          return '0';
 308          break;
 309        }
 310        case 2: {
 311          $t1_2 = (n < 0n);
 312          if ($t1_2) {
 313            $block = 3; break;
 314          }
 315          else {
 316            $t3_4 = n;
 317            $t4_5 = false;
 318            $block = 4; break;
 319          }
 320          break;
 321        }
 322        case 3: {
 323          $t2_3 = -n;
 324          $t3_4 = $t2_3;
 325          $t4_5 = true;
 326          $block = 4; break;
 327          break;
 328        }
 329        case 4: {
 330          $t5_6 = { $value: $rt.builtin.makeSlice(20, 20, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 331          $t12_13 = $t3_4;
 332          $t13_14 = 20;
 333          $block = 7; break;
 334          break;
 335        }
 336        case 5: {
 337          $t6_7 = ($t13_14 - 1);
 338          $t7_8 = ($t12_13 % 10n);
 339          $t8_9 = BigInt.asIntN(64, 48n + $t7_8);
 340          $t9_10 = (Number($t8_9) & 0xFF);
 341          $t10_11 = $t5_6.$get().addr($t6_7);
 342          $t10_11.$set($t9_10);
 343          $t11_12 = BigInt.asIntN(64, $t12_13 / 10n);
 344          $t12_13 = $t11_12;
 345          $t13_14 = $t6_7;
 346          $block = 7; break;
 347          break;
 348        }
 349        case 6: {
 350          if ($t4_5) {
 351            $block = 8; break;
 352          }
 353          else {
 354            $t17_18 = $t13_14;
 355            $block = 9; break;
 356          }
 357          break;
 358        }
 359        case 7: {
 360          $t14_15 = ($t12_13 > 0n);
 361          if ($t14_15) {
 362            $block = 5; break;
 363          }
 364          else {
 365            $block = 6; break;
 366          }
 367          break;
 368        }
 369        case 8: {
 370          $t15_16 = ($t13_14 - 1);
 371          $t16_17 = $t5_6.$get().addr($t15_16);
 372          $t16_17.$set(45);
 373          $t17_18 = $t15_16;
 374          $block = 9; break;
 375          break;
 376        }
 377        case 9: {
 378          $t18_19 = $rt.builtin.sliceSlice($t5_6.$get(), $t17_18, undefined, undefined);
 379          return $t18_19;
 380          break;
 381        }
 382      }
 383    }
 384  }
 385  
 386  export function u32ToStr(n) {
 387    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12;
 388    let $block = 0;
 389    while (true) {
 390      switch ($block) {
 391        case 0: {
 392          $t0_1 = (n === 0);
 393          if ($t0_1) {
 394            $block = 1; break;
 395          }
 396          else {
 397            $block = 2; break;
 398          }
 399          break;
 400        }
 401        case 1: {
 402          return '0';
 403          break;
 404        }
 405        case 2: {
 406          $t1_2 = { $value: $rt.builtin.makeSlice(10, 10, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 407          $t9_10 = n;
 408          $t10_11 = 10;
 409          $block = 5; break;
 410          break;
 411        }
 412        case 3: {
 413          $t2_3 = ($t10_11 - 1);
 414          $t3_4 = (($t9_10 % 10) >>> 0);
 415          $t4_5 = ((48 + $t3_4) >>> 0);
 416          $t5_6 = ($t4_5 & 0xFF);
 417          $t6_7 = $t1_2.$get().addr($t2_3);
 418          $t6_7.$set($t5_6);
 419          $t7_8 = ((Math.trunc($t9_10 / 10)) >>> 0);
 420          $t9_10 = $t7_8;
 421          $t10_11 = $t2_3;
 422          $block = 5; break;
 423          break;
 424        }
 425        case 4: {
 426          $t8_9 = $rt.builtin.sliceSlice($t1_2.$get(), $t10_11, undefined, undefined);
 427          return $t8_9;
 428          break;
 429        }
 430        case 5: {
 431          $t11_12 = ($t9_10 > 0);
 432          if ($t11_12) {
 433            $block = 3; break;
 434          }
 435          else {
 436            $block = 4; break;
 437          }
 438          break;
 439        }
 440      }
 441    }
 442  }
 443  
 444  export function containsStr(ss, s) {
 445    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7;
 446    let $block = 0;
 447    while (true) {
 448      switch ($block) {
 449        case 0: {
 450          $t0_1 = $rt.builtin.len(ss);
 451          $t1_2 = -1;
 452          $block = 1; break;
 453          break;
 454        }
 455        case 1: {
 456          $t2_3 = ($t1_2 + 1);
 457          $t3_4 = ($t2_3 < $t0_1);
 458          if ($t3_4) {
 459            $block = 2; break;
 460          }
 461          else {
 462            $block = 3; break;
 463          }
 464          break;
 465        }
 466        case 2: {
 467          $t4_5 = ss.addr($t2_3);
 468          $t5_6 = $t4_5.$get();
 469          $t6_7 = $rt.builtin.stringEqual($t5_6, s);
 470          if ($t6_7) {
 471            $block = 4; break;
 472          }
 473          else {
 474            $t1_2 = $t2_3;
 475            $block = 1; break;
 476          }
 477          break;
 478        }
 479        case 3: {
 480          return false;
 481          break;
 482        }
 483        case 4: {
 484          return true;
 485          break;
 486        }
 487      }
 488    }
 489  }
 490  
 491  export function containsKind(ns, n) {
 492    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7;
 493    let $block = 0;
 494    while (true) {
 495      switch ($block) {
 496        case 0: {
 497          $t0_1 = $rt.builtin.len(ns);
 498          $t1_2 = -1;
 499          $block = 1; break;
 500          break;
 501        }
 502        case 1: {
 503          $t2_3 = ($t1_2 + 1);
 504          $t3_4 = ($t2_3 < $t0_1);
 505          if ($t3_4) {
 506            $block = 2; break;
 507          }
 508          else {
 509            $block = 3; break;
 510          }
 511          break;
 512        }
 513        case 2: {
 514          $t4_5 = ns.addr($t2_3);
 515          $t5_6 = $t4_5.$get();
 516          $t6_7 = ($t5_6 === n);
 517          if ($t6_7) {
 518            $block = 4; break;
 519          }
 520          else {
 521            $t1_2 = $t2_3;
 522            $block = 1; break;
 523          }
 524          break;
 525        }
 526        case 3: {
 527          return false;
 528          break;
 529        }
 530        case 4: {
 531          return true;
 532          break;
 533        }
 534      }
 535    }
 536  }
 537  
 538  export function eventHasTagValue(e, tagKey, values) {
 539    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22;
 540    let $block = 0;
 541    while (true) {
 542      switch ($block) {
 543        case 0: {
 544          $t0_1 = { $get() { return e.$get().Tags; }, $set(v) { const obj = e.$get(); obj.Tags = v; e.$set(obj); } };
 545          $t1_2 = $t0_1.$get();
 546          $t2_3 = $rt.builtin.len($t1_2);
 547          $t3_4 = -1;
 548          $block = 1; break;
 549          break;
 550        }
 551        case 1: {
 552          $t4_5 = ($t3_4 + 1);
 553          $t5_6 = ($t4_5 < $t2_3);
 554          if ($t5_6) {
 555            $block = 2; break;
 556          }
 557          else {
 558            $block = 3; break;
 559          }
 560          break;
 561        }
 562        case 2: {
 563          $t6_7 = $t1_2.addr($t4_5);
 564          $t7_8 = $t6_7.$get();
 565          $t8_9 = $rt.builtin.len($t7_8);
 566          $t9_10 = ($t8_9 > 1);
 567          if ($t9_10) {
 568            $block = 5; break;
 569          }
 570          else {
 571            $t3_4 = $t4_5;
 572            $block = 1; break;
 573          }
 574          break;
 575        }
 576        case 3: {
 577          return false;
 578          break;
 579        }
 580        case 4: {
 581          $t10_11 = $rt.builtin.len(values);
 582          $t14_15 = -1;
 583          $block = 6; break;
 584          break;
 585        }
 586        case 5: {
 587          $t11_12 = $t7_8.addr(0);
 588          $t12_13 = $t11_12.$get();
 589          $t13_14 = $rt.builtin.stringEqual($t12_13, tagKey);
 590          if ($t13_14) {
 591            $block = 4; break;
 592          }
 593          else {
 594            $t3_4 = $t4_5;
 595            $block = 1; break;
 596          }
 597          break;
 598        }
 599        case 6: {
 600          $t15_16 = ($t14_15 + 1);
 601          $t16_17 = ($t15_16 < $t10_11);
 602          if ($t16_17) {
 603            $block = 7; break;
 604          }
 605          else {
 606            $t3_4 = $t4_5;
 607            $block = 1; break;
 608          }
 609          break;
 610        }
 611        case 7: {
 612          $t17_18 = values.addr($t15_16);
 613          $t18_19 = $t17_18.$get();
 614          $t19_20 = $t7_8.addr(1);
 615          $t20_21 = $t19_20.$get();
 616          $t21_22 = $rt.builtin.stringEqual($t20_21, $t18_19);
 617          if ($t21_22) {
 618            $block = 8; break;
 619          }
 620          else {
 621            $t14_15 = $t15_16;
 622            $block = 6; break;
 623          }
 624          break;
 625        }
 626        case 8: {
 627          return true;
 628          break;
 629        }
 630      }
 631    }
 632  }
 633  
 634  export function ParseEvent(s) {
 635    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68, $t68_69, $t69_70, $t70_71, $t71_72, $t72_73, $t73_74, $t74_75, $t75_76, $t76_77, $t77_78, $t78_79, $t79_80;
 636    let $block = 0;
 637    while (true) {
 638      switch ($block) {
 639        case 0: {
 640          $t0_1 = { $value: { ID: '', PubKey: '', CreatedAt: 0n, Kind: 0, Tags: null, Content: '', Sig: '' }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
 641          $t1_2 = skipWS(s, 0);
 642          $t2_3 = $rt.builtin.len(s);
 643          $t3_4 = ($t1_2 >= $t2_3);
 644          if ($t3_4) {
 645            $block = 1; break;
 646          }
 647          else {
 648            $block = 3; break;
 649          }
 650          break;
 651        }
 652        case 1: {
 653          return null;
 654          break;
 655        }
 656        case 2: {
 657          $t4_5 = ($t1_2 + 1);
 658          $t11_12 = $t4_5;
 659          $block = 6; break;
 660          break;
 661        }
 662        case 3: {
 663          $t5_6 = s.addr($t1_2);
 664          $t6_7 = $t5_6.$get();
 665          $t7_8 = ($t6_7 !== 123);
 666          if ($t7_8) {
 667            $block = 1; break;
 668          }
 669          else {
 670            $block = 2; break;
 671          }
 672          break;
 673        }
 674        case 4: {
 675          $t8_9 = skipWS(s, $t11_12);
 676          $t9_10 = $rt.builtin.len(s);
 677          $t10_11 = ($t8_9 >= $t9_10);
 678          if ($t10_11) {
 679            $block = 7; break;
 680          }
 681          else {
 682            $block = 8; break;
 683          }
 684          break;
 685        }
 686        case 5: {
 687          return $t0_1;
 688          break;
 689        }
 690        case 6: {
 691          $t12_13 = $rt.builtin.len(s);
 692          $t13_14 = ($t11_12 < $t12_13);
 693          if ($t13_14) {
 694            $block = 4; break;
 695          }
 696          else {
 697            $block = 5; break;
 698          }
 699          break;
 700        }
 701        case 7: {
 702          return null;
 703          break;
 704        }
 705        case 8: {
 706          $t14_15 = s.addr($t8_9);
 707          $t15_16 = $t14_15.$get();
 708          $t16_17 = ($t15_16 === 125);
 709          if ($t16_17) {
 710            $block = 9; break;
 711          }
 712          else {
 713            $block = 10; break;
 714          }
 715          break;
 716        }
 717        case 9: {
 718          return $t0_1;
 719          break;
 720        }
 721        case 10: {
 722          $t17_18 = s.addr($t8_9);
 723          $t18_19 = $t17_18.$get();
 724          $t19_20 = ($t18_19 === 44);
 725          if ($t19_20) {
 726            $block = 11; break;
 727          }
 728          else {
 729            $block = 12; break;
 730          }
 731          break;
 732        }
 733        case 11: {
 734          $t20_21 = ($t8_9 + 1);
 735          $t11_12 = $t20_21;
 736          $block = 6; break;
 737          break;
 738        }
 739        case 12: {
 740          $t21_22 = parseString(s, $t8_9);
 741          $t22_23 = $t21_22[0];
 742          $t23_24 = $t21_22[1];
 743          $t24_25 = ($t23_24 < 0);
 744          if ($t24_25) {
 745            $block = 13; break;
 746          }
 747          else {
 748            $block = 14; break;
 749          }
 750          break;
 751        }
 752        case 13: {
 753          return null;
 754          break;
 755        }
 756        case 14: {
 757          $t25_26 = skipWS(s, $t23_24);
 758          $t26_27 = $rt.builtin.len(s);
 759          $t27_28 = ($t25_26 >= $t26_27);
 760          if ($t27_28) {
 761            $block = 15; break;
 762          }
 763          else {
 764            $block = 17; break;
 765          }
 766          break;
 767        }
 768        case 15: {
 769          return null;
 770          break;
 771        }
 772        case 16: {
 773          $t28_29 = ($t25_26 + 1);
 774          $t29_30 = skipWS(s, $t28_29);
 775          $t30_31 = $rt.builtin.stringEqual($t22_23, 'id');
 776          if ($t30_31) {
 777            $block = 18; break;
 778          }
 779          else {
 780            $block = 20; break;
 781          }
 782          break;
 783        }
 784        case 17: {
 785          $t31_32 = s.addr($t25_26);
 786          $t32_33 = $t31_32.$get();
 787          $t33_34 = ($t32_33 !== 58);
 788          if ($t33_34) {
 789            $block = 15; break;
 790          }
 791          else {
 792            $block = 16; break;
 793          }
 794          break;
 795        }
 796        case 18: {
 797          $t34_35 = parseString(s, $t29_30);
 798          $t35_36 = $t34_35[0];
 799          $t36_37 = { $get() { return $t0_1.$get().ID; }, $set(v) { const obj = $t0_1.$get(); obj.ID = v; $t0_1.$set(obj); } };
 800          $t36_37.$set($t35_36);
 801          $t37_38 = $t34_35[1];
 802          $t38_39 = ($t37_38 < 0);
 803          if ($t38_39) {
 804            $block = 21; break;
 805          }
 806          else {
 807            $t11_12 = $t37_38;
 808            $block = 6; break;
 809          }
 810          break;
 811        }
 812        case 19: {
 813          $t39_40 = parseString(s, $t29_30);
 814          $t40_41 = $t39_40[0];
 815          $t41_42 = { $get() { return $t0_1.$get().PubKey; }, $set(v) { const obj = $t0_1.$get(); obj.PubKey = v; $t0_1.$set(obj); } };
 816          $t41_42.$set($t40_41);
 817          $t42_43 = $t39_40[1];
 818          $t43_44 = ($t42_43 < 0);
 819          if ($t43_44) {
 820            $block = 24; break;
 821          }
 822          else {
 823            $t11_12 = $t42_43;
 824            $block = 6; break;
 825          }
 826          break;
 827        }
 828        case 20: {
 829          $t44_45 = $rt.builtin.stringEqual($t22_23, 'pubkey');
 830          if ($t44_45) {
 831            $block = 19; break;
 832          }
 833          else {
 834            $block = 23; break;
 835          }
 836          break;
 837        }
 838        case 21: {
 839          return null;
 840          break;
 841        }
 842        case 22: {
 843          $t45_46 = parseInt(s, $t29_30);
 844          $t46_47 = $t45_46[0];
 845          $t47_48 = { $get() { return $t0_1.$get().CreatedAt; }, $set(v) { const obj = $t0_1.$get(); obj.CreatedAt = v; $t0_1.$set(obj); } };
 846          $t47_48.$set($t46_47);
 847          $t48_49 = $t45_46[1];
 848          $t49_50 = ($t48_49 < 0);
 849          if ($t49_50) {
 850            $block = 27; break;
 851          }
 852          else {
 853            $t11_12 = $t48_49;
 854            $block = 6; break;
 855          }
 856          break;
 857        }
 858        case 23: {
 859          $t50_51 = $rt.builtin.stringEqual($t22_23, 'created_at');
 860          if ($t50_51) {
 861            $block = 22; break;
 862          }
 863          else {
 864            $block = 26; break;
 865          }
 866          break;
 867        }
 868        case 24: {
 869          return null;
 870          break;
 871        }
 872        case 25: {
 873          $t51_52 = parseInt(s, $t29_30);
 874          $t52_53 = $t51_52[0];
 875          $t53_54 = $t51_52[1];
 876          $t54_55 = ($t53_54 < 0);
 877          if ($t54_55) {
 878            $block = 30; break;
 879          }
 880          else {
 881            $block = 31; break;
 882          }
 883          break;
 884        }
 885        case 26: {
 886          $t55_56 = $rt.builtin.stringEqual($t22_23, 'kind');
 887          if ($t55_56) {
 888            $block = 25; break;
 889          }
 890          else {
 891            $block = 29; break;
 892          }
 893          break;
 894        }
 895        case 27: {
 896          return null;
 897          break;
 898        }
 899        case 28: {
 900          $t56_57 = parseString(s, $t29_30);
 901          $t57_58 = $t56_57[0];
 902          $t58_59 = { $get() { return $t0_1.$get().Content; }, $set(v) { const obj = $t0_1.$get(); obj.Content = v; $t0_1.$set(obj); } };
 903          $t58_59.$set($t57_58);
 904          $t59_60 = $t56_57[1];
 905          $t60_61 = ($t59_60 < 0);
 906          if ($t60_61) {
 907            $block = 37; break;
 908          }
 909          else {
 910            $t11_12 = $t59_60;
 911            $block = 6; break;
 912          }
 913          break;
 914        }
 915        case 29: {
 916          $t61_62 = $rt.builtin.stringEqual($t22_23, 'content');
 917          if ($t61_62) {
 918            $block = 28; break;
 919          }
 920          else {
 921            $block = 36; break;
 922          }
 923          break;
 924        }
 925        case 30: {
 926          return null;
 927          break;
 928        }
 929        case 31: {
 930          $t62_63 = ($t52_53 < 0n);
 931          if ($t62_63) {
 932            $block = 32; break;
 933          }
 934          else {
 935            $block = 34; break;
 936          }
 937          break;
 938        }
 939        case 32: {
 940          return null;
 941          break;
 942        }
 943        case 33: {
 944          $t63_64 = (Number($t52_53) >>> 0);
 945          $t64_65 = { $get() { return $t0_1.$get().Kind; }, $set(v) { const obj = $t0_1.$get(); obj.Kind = v; $t0_1.$set(obj); } };
 946          $t64_65.$set($t63_64);
 947          $t11_12 = $t53_54;
 948          $block = 6; break;
 949          break;
 950        }
 951        case 34: {
 952          $t65_66 = ($t52_53 > 4294967295n);
 953          if ($t65_66) {
 954            $block = 32; break;
 955          }
 956          else {
 957            $block = 33; break;
 958          }
 959          break;
 960        }
 961        case 35: {
 962          $t66_67 = parseString(s, $t29_30);
 963          $t67_68 = $t66_67[0];
 964          $t68_69 = { $get() { return $t0_1.$get().Sig; }, $set(v) { const obj = $t0_1.$get(); obj.Sig = v; $t0_1.$set(obj); } };
 965          $t68_69.$set($t67_68);
 966          $t69_70 = $t66_67[1];
 967          $t70_71 = ($t69_70 < 0);
 968          if ($t70_71) {
 969            $block = 40; break;
 970          }
 971          else {
 972            $t11_12 = $t69_70;
 973            $block = 6; break;
 974          }
 975          break;
 976        }
 977        case 36: {
 978          $t71_72 = $rt.builtin.stringEqual($t22_23, 'sig');
 979          if ($t71_72) {
 980            $block = 35; break;
 981          }
 982          else {
 983            $block = 39; break;
 984          }
 985          break;
 986        }
 987        case 37: {
 988          return null;
 989          break;
 990        }
 991        case 38: {
 992          $t72_73 = parseTags(s, $t29_30);
 993          $t73_74 = $t72_73[0];
 994          $t74_75 = { $get() { return $t0_1.$get().Tags; }, $set(v) { const obj = $t0_1.$get(); obj.Tags = v; $t0_1.$set(obj); } };
 995          $t74_75.$set($t73_74);
 996          $t75_76 = $t72_73[1];
 997          $t76_77 = ($t75_76 < 0);
 998          if ($t76_77) {
 999            $block = 42; break;
1000          }
1001          else {
1002            $t11_12 = $t75_76;
1003            $block = 6; break;
1004          }
1005          break;
1006        }
1007        case 39: {
1008          $t77_78 = $rt.builtin.stringEqual($t22_23, 'tags');
1009          if ($t77_78) {
1010            $block = 38; break;
1011          }
1012          else {
1013            $block = 41; break;
1014          }
1015          break;
1016        }
1017        case 40: {
1018          return null;
1019          break;
1020        }
1021        case 41: {
1022          $t78_79 = skipValue(s, $t29_30);
1023          $t79_80 = ($t78_79 < 0);
1024          if ($t79_80) {
1025            $block = 43; break;
1026          }
1027          else {
1028            $t11_12 = $t78_79;
1029            $block = 6; break;
1030          }
1031          break;
1032        }
1033        case 42: {
1034          return null;
1035          break;
1036        }
1037        case 43: {
1038          return null;
1039          break;
1040        }
1041      }
1042    }
1043  }
1044  
1045  export function ParseRelayMessage(s) {
1046    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68, $t68_69, $t69_70, $t70_71, $t71_72, $t72_73, $t73_74, $t74_75, $t75_76, $t76_77, $t77_78, $t78_79, $t79_80, $t80_81, $t81_82, $t82_83, $t83_84, $t84_85, $t85_86, $t86_87, $t87_88, $t88_89, $t89_90, $t90_91, $t91_92, $t92_93, $t93_94, $t94_95, $t95_96, $t96_97, $t97_98, $t98_99, $t99_100, $t100_101, $t101_102, $t102_103, $t103_104, $t104_105, $t105_106, $t106_107, $t107_108, $t108_109, $t109_110, $t110_111, $t111_112, $t112_113, $t113_114, $t114_115, $t115_116, $t116_117, $t117_118, $t118_119, $t119_120, $t120_121, $t121_122, $t122_123, $t123_124, $t124_125;
1047    let $block = 0;
1048    while (true) {
1049      switch ($block) {
1050        case 0: {
1051          $t0_1 = skipWS(s, 0);
1052          $t1_2 = $rt.builtin.len(s);
1053          $t2_3 = ($t0_1 >= $t1_2);
1054          if ($t2_3) {
1055            $block = 1; break;
1056          }
1057          else {
1058            $block = 3; break;
1059          }
1060          break;
1061        }
1062        case 1: {
1063          return ['', '', ''];
1064          break;
1065        }
1066        case 2: {
1067          $t3_4 = ($t0_1 + 1);
1068          $t4_5 = skipWS(s, $t3_4);
1069          $t5_6 = parseString(s, $t4_5);
1070          $t6_7 = $t5_6[0];
1071          $t7_8 = $t5_6[1];
1072          $t8_9 = ($t7_8 < 0);
1073          if ($t8_9) {
1074            $block = 4; break;
1075          }
1076          else {
1077            $block = 5; break;
1078          }
1079          break;
1080        }
1081        case 3: {
1082          $t9_10 = s.addr($t0_1);
1083          $t10_11 = $t9_10.$get();
1084          $t11_12 = ($t10_11 !== 91);
1085          if ($t11_12) {
1086            $block = 1; break;
1087          }
1088          else {
1089            $block = 2; break;
1090          }
1091          break;
1092        }
1093        case 4: {
1094          return ['', '', ''];
1095          break;
1096        }
1097        case 5: {
1098          $t12_13 = $rt.builtin.stringEqual($t6_7, 'EVENT');
1099          if ($t12_13) {
1100            $block = 7; break;
1101          }
1102          else {
1103            $block = 9; break;
1104          }
1105          break;
1106        }
1107        case 6: {
1108          return [$t6_7, $t13_14, $t14_15];
1109          break;
1110        }
1111        case 7: {
1112          $t15_16 = skipWS(s, $t7_8);
1113          $t16_17 = $rt.builtin.len(s);
1114          $t17_18 = ($t15_16 >= $t16_17);
1115          if ($t17_18) {
1116            $block = 10; break;
1117          }
1118          else {
1119            $block = 12; break;
1120          }
1121          break;
1122        }
1123        case 8: {
1124          $t18_19 = skipWS(s, $t7_8);
1125          $t19_20 = $rt.builtin.len(s);
1126          $t20_21 = ($t18_19 >= $t19_20);
1127          if ($t20_21) {
1128            $block = 22; break;
1129          }
1130          else {
1131            $block = 24; break;
1132          }
1133          break;
1134        }
1135        case 9: {
1136          $t21_22 = $rt.builtin.stringEqual($t6_7, 'EOSE');
1137          if ($t21_22) {
1138            $block = 8; break;
1139          }
1140          else {
1141            $block = 21; break;
1142          }
1143          break;
1144        }
1145        case 10: {
1146          return [$t6_7, '', ''];
1147          break;
1148        }
1149        case 11: {
1150          $t22_23 = ($t15_16 + 1);
1151          $t23_24 = skipWS(s, $t22_23);
1152          $t24_25 = parseString(s, $t23_24);
1153          $t25_26 = $t24_25[0];
1154          $t26_27 = $t24_25[1];
1155          $t27_28 = ($t26_27 < 0);
1156          if ($t27_28) {
1157            $block = 13; break;
1158          }
1159          else {
1160            $block = 14; break;
1161          }
1162          break;
1163        }
1164        case 12: {
1165          $t28_29 = s.addr($t15_16);
1166          $t29_30 = $t28_29.$get();
1167          $t30_31 = ($t29_30 !== 44);
1168          if ($t30_31) {
1169            $block = 10; break;
1170          }
1171          else {
1172            $block = 11; break;
1173          }
1174          break;
1175        }
1176        case 13: {
1177          return [$t6_7, $t25_26, ''];
1178          break;
1179        }
1180        case 14: {
1181          $t31_32 = skipWS(s, $t26_27);
1182          $t32_33 = $rt.builtin.len(s);
1183          $t33_34 = ($t31_32 >= $t32_33);
1184          if ($t33_34) {
1185            $block = 15; break;
1186          }
1187          else {
1188            $block = 17; break;
1189          }
1190          break;
1191        }
1192        case 15: {
1193          return [$t6_7, $t25_26, ''];
1194          break;
1195        }
1196        case 16: {
1197          $t34_35 = ($t31_32 + 1);
1198          $t35_36 = skipWS(s, $t34_35);
1199          $t36_37 = skipValue(s, $t35_36);
1200          $t37_38 = ($t36_37 < 0);
1201          if ($t37_38) {
1202            $block = 18; break;
1203          }
1204          else {
1205            $block = 19; break;
1206          }
1207          break;
1208        }
1209        case 17: {
1210          $t38_39 = s.addr($t31_32);
1211          $t39_40 = $t38_39.$get();
1212          $t40_41 = ($t39_40 !== 44);
1213          if ($t40_41) {
1214            $block = 15; break;
1215          }
1216          else {
1217            $block = 16; break;
1218          }
1219          break;
1220        }
1221        case 18: {
1222          return [$t6_7, $t25_26, ''];
1223          break;
1224        }
1225        case 19: {
1226          $t41_42 = $rt.builtin.stringSlice(s, $t35_36, $t36_37);
1227          $t13_14 = $t25_26;
1228          $t14_15 = $t41_42;
1229          $block = 6; break;
1230          break;
1231        }
1232        case 20: {
1233          $t42_43 = skipWS(s, $t7_8);
1234          $t43_44 = $rt.builtin.len(s);
1235          $t44_45 = ($t42_43 >= $t43_44);
1236          if ($t44_45) {
1237            $block = 27; break;
1238          }
1239          else {
1240            $block = 29; break;
1241          }
1242          break;
1243        }
1244        case 21: {
1245          $t45_46 = $rt.builtin.stringEqual($t6_7, 'OK');
1246          if ($t45_46) {
1247            $block = 20; break;
1248          }
1249          else {
1250            $block = 26; break;
1251          }
1252          break;
1253        }
1254        case 22: {
1255          return [$t6_7, '', ''];
1256          break;
1257        }
1258        case 23: {
1259          $t46_47 = ($t18_19 + 1);
1260          $t47_48 = skipWS(s, $t46_47);
1261          $t48_49 = parseString(s, $t47_48);
1262          $t49_50 = $t48_49[0];
1263          $t50_51 = $t48_49[1];
1264          $t13_14 = $t49_50;
1265          $t14_15 = '';
1266          $block = 6; break;
1267          break;
1268        }
1269        case 24: {
1270          $t51_52 = s.addr($t18_19);
1271          $t52_53 = $t51_52.$get();
1272          $t53_54 = ($t52_53 !== 44);
1273          if ($t53_54) {
1274            $block = 22; break;
1275          }
1276          else {
1277            $block = 23; break;
1278          }
1279          break;
1280        }
1281        case 25: {
1282          $t54_55 = skipWS(s, $t7_8);
1283          $t55_56 = $rt.builtin.len(s);
1284          $t56_57 = ($t54_55 >= $t55_56);
1285          if ($t56_57) {
1286            $block = 48; break;
1287          }
1288          else {
1289            $block = 50; break;
1290          }
1291          break;
1292        }
1293        case 26: {
1294          $t57_58 = $rt.builtin.stringEqual($t6_7, 'NOTICE');
1295          if ($t57_58) {
1296            $block = 25; break;
1297          }
1298          else {
1299            $block = 47; break;
1300          }
1301          break;
1302        }
1303        case 27: {
1304          return [$t6_7, '', ''];
1305          break;
1306        }
1307        case 28: {
1308          $t58_59 = ($t42_43 + 1);
1309          $t59_60 = skipWS(s, $t58_59);
1310          $t60_61 = parseString(s, $t59_60);
1311          $t61_62 = $t60_61[0];
1312          $t62_63 = $t60_61[1];
1313          $t63_64 = ($t62_63 < 0);
1314          if ($t63_64) {
1315            $block = 30; break;
1316          }
1317          else {
1318            $block = 31; break;
1319          }
1320          break;
1321        }
1322        case 29: {
1323          $t64_65 = s.addr($t42_43);
1324          $t65_66 = $t64_65.$get();
1325          $t66_67 = ($t65_66 !== 44);
1326          if ($t66_67) {
1327            $block = 27; break;
1328          }
1329          else {
1330            $block = 28; break;
1331          }
1332          break;
1333        }
1334        case 30: {
1335          return [$t6_7, $t61_62, ''];
1336          break;
1337        }
1338        case 31: {
1339          $t67_68 = skipWS(s, $t62_63);
1340          $t68_69 = $rt.builtin.len(s);
1341          $t69_70 = ($t67_68 >= $t68_69);
1342          if ($t69_70) {
1343            $block = 32; break;
1344          }
1345          else {
1346            $block = 34; break;
1347          }
1348          break;
1349        }
1350        case 32: {
1351          return [$t6_7, $t61_62, ''];
1352          break;
1353        }
1354        case 33: {
1355          $t70_71 = ($t67_68 + 1);
1356          $t71_72 = skipWS(s, $t70_71);
1357          $t72_73 = ($t71_72 + 4);
1358          $t73_74 = $rt.builtin.len(s);
1359          $t74_75 = ($t72_73 <= $t73_74);
1360          if ($t74_75) {
1361            $block = 38; break;
1362          }
1363          else {
1364            $block = 37; break;
1365          }
1366          break;
1367        }
1368        case 34: {
1369          $t75_76 = s.addr($t67_68);
1370          $t76_77 = $t75_76.$get();
1371          $t77_78 = ($t76_77 !== 44);
1372          if ($t77_78) {
1373            $block = 32; break;
1374          }
1375          else {
1376            $block = 33; break;
1377          }
1378          break;
1379        }
1380        case 35: {
1381          $t78_79 = ($t71_72 + 4);
1382          $t79_80 = $t78_79;
1383          $t80_81 = true;
1384          $block = 36; break;
1385          break;
1386        }
1387        case 36: {
1388          $t81_82 = skipWS(s, $t79_80);
1389          $t82_83 = $rt.builtin.len(s);
1390          $t83_84 = ($t81_82 < $t82_83);
1391          if ($t83_84) {
1392            $block = 43; break;
1393          }
1394          else {
1395            $t99_100 = '';
1396            $block = 42; break;
1397          }
1398          break;
1399        }
1400        case 37: {
1401          $t84_85 = ($t71_72 + 5);
1402          $t85_86 = $rt.builtin.len(s);
1403          $t86_87 = ($t84_85 <= $t85_86);
1404          if ($t86_87) {
1405            $block = 40; break;
1406          }
1407          else {
1408            $t79_80 = $t71_72;
1409            $t80_81 = false;
1410            $block = 36; break;
1411          }
1412          break;
1413        }
1414        case 38: {
1415          $t87_88 = ($t71_72 + 4);
1416          $t88_89 = $rt.builtin.stringSlice(s, $t71_72, $t87_88);
1417          $t89_90 = $rt.builtin.stringEqual($t88_89, 'true');
1418          if ($t89_90) {
1419            $block = 35; break;
1420          }
1421          else {
1422            $block = 37; break;
1423          }
1424          break;
1425        }
1426        case 39: {
1427          $t90_91 = ($t71_72 + 5);
1428          $t79_80 = $t90_91;
1429          $t80_81 = false;
1430          $block = 36; break;
1431          break;
1432        }
1433        case 40: {
1434          $t91_92 = ($t71_72 + 5);
1435          $t92_93 = $rt.builtin.stringSlice(s, $t71_72, $t91_92);
1436          $t93_94 = $rt.builtin.stringEqual($t92_93, 'false');
1437          if ($t93_94) {
1438            $block = 39; break;
1439          }
1440          else {
1441            $t79_80 = $t71_72;
1442            $t80_81 = false;
1443            $block = 36; break;
1444          }
1445          break;
1446        }
1447        case 41: {
1448          $t94_95 = ($t81_82 + 1);
1449          $t95_96 = skipWS(s, $t94_95);
1450          $t96_97 = parseString(s, $t95_96);
1451          $t97_98 = $t96_97[0];
1452          $t98_99 = $t96_97[1];
1453          $t99_100 = $t97_98;
1454          $block = 42; break;
1455          break;
1456        }
1457        case 42: {
1458          if ($t80_81) {
1459            $block = 44; break;
1460          }
1461          else {
1462            $block = 45; break;
1463          }
1464          break;
1465        }
1466        case 43: {
1467          $t100_101 = s.addr($t81_82);
1468          $t101_102 = $t100_101.$get();
1469          $t102_103 = ($t101_102 === 44);
1470          if ($t102_103) {
1471            $block = 41; break;
1472          }
1473          else {
1474            $t99_100 = '';
1475            $block = 42; break;
1476          }
1477          break;
1478        }
1479        case 44: {
1480          $t103_104 = ('true:' + $t99_100);
1481          $t13_14 = $t61_62;
1482          $t14_15 = $t103_104;
1483          $block = 6; break;
1484          break;
1485        }
1486        case 45: {
1487          $t104_105 = ('false:' + $t99_100);
1488          $t13_14 = $t61_62;
1489          $t14_15 = $t104_105;
1490          $block = 6; break;
1491          break;
1492        }
1493        case 46: {
1494          $t105_106 = skipWS(s, $t7_8);
1495          $t106_107 = $rt.builtin.len(s);
1496          $t107_108 = ($t105_106 >= $t106_107);
1497          if ($t107_108) {
1498            $block = 51; break;
1499          }
1500          else {
1501            $block = 53; break;
1502          }
1503          break;
1504        }
1505        case 47: {
1506          $t108_109 = $rt.builtin.stringEqual($t6_7, 'AUTH');
1507          if ($t108_109) {
1508            $block = 46; break;
1509          }
1510          else {
1511            $t13_14 = '';
1512            $t14_15 = '';
1513            $block = 6; break;
1514          }
1515          break;
1516        }
1517        case 48: {
1518          return [$t6_7, '', ''];
1519          break;
1520        }
1521        case 49: {
1522          $t109_110 = ($t54_55 + 1);
1523          $t110_111 = skipWS(s, $t109_110);
1524          $t111_112 = parseString(s, $t110_111);
1525          $t112_113 = $t111_112[0];
1526          $t113_114 = $t111_112[1];
1527          $t13_14 = '';
1528          $t14_15 = $t112_113;
1529          $block = 6; break;
1530          break;
1531        }
1532        case 50: {
1533          $t114_115 = s.addr($t54_55);
1534          $t115_116 = $t114_115.$get();
1535          $t116_117 = ($t115_116 !== 44);
1536          if ($t116_117) {
1537            $block = 48; break;
1538          }
1539          else {
1540            $block = 49; break;
1541          }
1542          break;
1543        }
1544        case 51: {
1545          return [$t6_7, '', ''];
1546          break;
1547        }
1548        case 52: {
1549          $t117_118 = ($t105_106 + 1);
1550          $t118_119 = skipWS(s, $t117_118);
1551          $t119_120 = parseString(s, $t118_119);
1552          $t120_121 = $t119_120[0];
1553          $t121_122 = $t119_120[1];
1554          $t13_14 = '';
1555          $t14_15 = $t120_121;
1556          $block = 6; break;
1557          break;
1558        }
1559        case 53: {
1560          $t122_123 = s.addr($t105_106);
1561          $t123_124 = $t122_123.$get();
1562          $t124_125 = ($t123_124 !== 44);
1563          if ($t124_125) {
1564            $block = 51; break;
1565          }
1566          else {
1567            $block = 52; break;
1568          }
1569          break;
1570        }
1571      }
1572    }
1573  }
1574  
1575  export function ParseFilter(s) {
1576    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68, $t68_69, $t69_70, $t70_71, $t71_72, $t72_73, $t73_74, $t74_75, $t75_76, $t76_77, $t77_78, $t78_79, $t79_80, $t80_81, $t81_82, $t82_83, $t83_84, $t84_85, $t85_86, $t86_87, $t87_88, $t88_89, $t89_90;
1577    let $block = 0;
1578    while (true) {
1579      switch ($block) {
1580        case 0: {
1581          $t0_1 = { $value: { IDs: null, Authors: null, Kinds: null, Tags: null, Since: 0n, Until: 0n, Limit: 0, Proxy: null }, $get() { return this.$value; }, $set(v) { this.$value = v; } };
1582          $t1_2 = skipWS(s, 0);
1583          $t2_3 = $rt.builtin.len(s);
1584          $t3_4 = ($t1_2 >= $t2_3);
1585          if ($t3_4) {
1586            $block = 1; break;
1587          }
1588          else {
1589            $block = 3; break;
1590          }
1591          break;
1592        }
1593        case 1: {
1594          return null;
1595          break;
1596        }
1597        case 2: {
1598          $t4_5 = ($t1_2 + 1);
1599          $t11_12 = $t4_5;
1600          $block = 6; break;
1601          break;
1602        }
1603        case 3: {
1604          $t5_6 = s.addr($t1_2);
1605          $t6_7 = $t5_6.$get();
1606          $t7_8 = ($t6_7 !== 123);
1607          if ($t7_8) {
1608            $block = 1; break;
1609          }
1610          else {
1611            $block = 2; break;
1612          }
1613          break;
1614        }
1615        case 4: {
1616          $t8_9 = skipWS(s, $t11_12);
1617          $t9_10 = $rt.builtin.len(s);
1618          $t10_11 = ($t8_9 >= $t9_10);
1619          if ($t10_11) {
1620            $block = 7; break;
1621          }
1622          else {
1623            $block = 8; break;
1624          }
1625          break;
1626        }
1627        case 5: {
1628          return $t0_1;
1629          break;
1630        }
1631        case 6: {
1632          $t12_13 = $rt.builtin.len(s);
1633          $t13_14 = ($t11_12 < $t12_13);
1634          if ($t13_14) {
1635            $block = 4; break;
1636          }
1637          else {
1638            $block = 5; break;
1639          }
1640          break;
1641        }
1642        case 7: {
1643          return null;
1644          break;
1645        }
1646        case 8: {
1647          $t14_15 = s.addr($t8_9);
1648          $t15_16 = $t14_15.$get();
1649          $t16_17 = ($t15_16 === 125);
1650          if ($t16_17) {
1651            $block = 9; break;
1652          }
1653          else {
1654            $block = 10; break;
1655          }
1656          break;
1657        }
1658        case 9: {
1659          return $t0_1;
1660          break;
1661        }
1662        case 10: {
1663          $t17_18 = s.addr($t8_9);
1664          $t18_19 = $t17_18.$get();
1665          $t19_20 = ($t18_19 === 44);
1666          if ($t19_20) {
1667            $block = 11; break;
1668          }
1669          else {
1670            $block = 12; break;
1671          }
1672          break;
1673        }
1674        case 11: {
1675          $t20_21 = ($t8_9 + 1);
1676          $t11_12 = $t20_21;
1677          $block = 6; break;
1678          break;
1679        }
1680        case 12: {
1681          $t21_22 = parseString(s, $t8_9);
1682          $t22_23 = $t21_22[0];
1683          $t23_24 = $t21_22[1];
1684          $t24_25 = ($t23_24 < 0);
1685          if ($t24_25) {
1686            $block = 13; break;
1687          }
1688          else {
1689            $block = 14; break;
1690          }
1691          break;
1692        }
1693        case 13: {
1694          return null;
1695          break;
1696        }
1697        case 14: {
1698          $t25_26 = skipWS(s, $t23_24);
1699          $t26_27 = $rt.builtin.len(s);
1700          $t27_28 = ($t25_26 >= $t26_27);
1701          if ($t27_28) {
1702            $block = 15; break;
1703          }
1704          else {
1705            $block = 17; break;
1706          }
1707          break;
1708        }
1709        case 15: {
1710          return null;
1711          break;
1712        }
1713        case 16: {
1714          $t28_29 = ($t25_26 + 1);
1715          $t29_30 = skipWS(s, $t28_29);
1716          $t30_31 = $rt.builtin.stringEqual($t22_23, 'ids');
1717          if ($t30_31) {
1718            $block = 19; break;
1719          }
1720          else {
1721            $block = 21; break;
1722          }
1723          break;
1724        }
1725        case 17: {
1726          $t31_32 = s.addr($t25_26);
1727          $t32_33 = $t31_32.$get();
1728          $t33_34 = ($t32_33 !== 58);
1729          if ($t33_34) {
1730            $block = 15; break;
1731          }
1732          else {
1733            $block = 16; break;
1734          }
1735          break;
1736        }
1737        case 18: {
1738          $t35_36 = ($t34_35 < 0);
1739          if ($t35_36) {
1740            $block = 42; break;
1741          }
1742          else {
1743            $t11_12 = $t34_35;
1744            $block = 6; break;
1745          }
1746          break;
1747        }
1748        case 19: {
1749          $t36_37 = parseStrArray(s, $t29_30);
1750          $t37_38 = $t36_37[0];
1751          $t38_39 = { $get() { return $t0_1.$get().IDs; }, $set(v) { const obj = $t0_1.$get(); obj.IDs = v; $t0_1.$set(obj); } };
1752          $t38_39.$set($t37_38);
1753          $t39_40 = $t36_37[1];
1754          $t34_35 = $t39_40;
1755          $block = 18; break;
1756          break;
1757        }
1758        case 20: {
1759          $t40_41 = parseStrArray(s, $t29_30);
1760          $t41_42 = $t40_41[0];
1761          $t42_43 = { $get() { return $t0_1.$get().Authors; }, $set(v) { const obj = $t0_1.$get(); obj.Authors = v; $t0_1.$set(obj); } };
1762          $t42_43.$set($t41_42);
1763          $t43_44 = $t40_41[1];
1764          $t34_35 = $t43_44;
1765          $block = 18; break;
1766          break;
1767        }
1768        case 21: {
1769          $t44_45 = $rt.builtin.stringEqual($t22_23, 'authors');
1770          if ($t44_45) {
1771            $block = 20; break;
1772          }
1773          else {
1774            $block = 23; break;
1775          }
1776          break;
1777        }
1778        case 22: {
1779          $t45_46 = parseKindArray(s, $t29_30);
1780          $t46_47 = $t45_46[0];
1781          $t47_48 = { $get() { return $t0_1.$get().Kinds; }, $set(v) { const obj = $t0_1.$get(); obj.Kinds = v; $t0_1.$set(obj); } };
1782          $t47_48.$set($t46_47);
1783          $t48_49 = $t45_46[1];
1784          $t34_35 = $t48_49;
1785          $block = 18; break;
1786          break;
1787        }
1788        case 23: {
1789          $t49_50 = $rt.builtin.stringEqual($t22_23, 'kinds');
1790          if ($t49_50) {
1791            $block = 22; break;
1792          }
1793          else {
1794            $block = 25; break;
1795          }
1796          break;
1797        }
1798        case 24: {
1799          $t50_51 = parseInt(s, $t29_30);
1800          $t51_52 = $t50_51[0];
1801          $t52_53 = { $get() { return $t0_1.$get().Since; }, $set(v) { const obj = $t0_1.$get(); obj.Since = v; $t0_1.$set(obj); } };
1802          $t52_53.$set($t51_52);
1803          $t53_54 = $t50_51[1];
1804          $t34_35 = $t53_54;
1805          $block = 18; break;
1806          break;
1807        }
1808        case 25: {
1809          $t54_55 = $rt.builtin.stringEqual($t22_23, 'since');
1810          if ($t54_55) {
1811            $block = 24; break;
1812          }
1813          else {
1814            $block = 27; break;
1815          }
1816          break;
1817        }
1818        case 26: {
1819          $t55_56 = parseInt(s, $t29_30);
1820          $t56_57 = $t55_56[0];
1821          $t57_58 = { $get() { return $t0_1.$get().Until; }, $set(v) { const obj = $t0_1.$get(); obj.Until = v; $t0_1.$set(obj); } };
1822          $t57_58.$set($t56_57);
1823          $t58_59 = $t55_56[1];
1824          $t34_35 = $t58_59;
1825          $block = 18; break;
1826          break;
1827        }
1828        case 27: {
1829          $t59_60 = $rt.builtin.stringEqual($t22_23, 'until');
1830          if ($t59_60) {
1831            $block = 26; break;
1832          }
1833          else {
1834            $block = 29; break;
1835          }
1836          break;
1837        }
1838        case 28: {
1839          $t60_61 = parseInt(s, $t29_30);
1840          $t61_62 = $t60_61[0];
1841          $t62_63 = $t60_61[1];
1842          $t63_64 = ($t61_62 < 0n);
1843          if ($t63_64) {
1844            $block = 32; break;
1845          }
1846          else {
1847            $block = 34; break;
1848          }
1849          break;
1850        }
1851        case 29: {
1852          $t64_65 = $rt.builtin.stringEqual($t22_23, 'limit');
1853          if ($t64_65) {
1854            $block = 28; break;
1855          }
1856          else {
1857            $block = 31; break;
1858          }
1859          break;
1860        }
1861        case 30: {
1862          $t65_66 = parseStrArray(s, $t29_30);
1863          $t66_67 = $t65_66[0];
1864          $t67_68 = { $get() { return $t0_1.$get().Proxy; }, $set(v) { const obj = $t0_1.$get(); obj.Proxy = v; $t0_1.$set(obj); } };
1865          $t67_68.$set($t66_67);
1866          $t68_69 = $t65_66[1];
1867          $t34_35 = $t68_69;
1868          $block = 18; break;
1869          break;
1870        }
1871        case 31: {
1872          $t69_70 = $rt.builtin.stringEqual($t22_23, '_proxy');
1873          if ($t69_70) {
1874            $block = 30; break;
1875          }
1876          else {
1877            $block = 36; break;
1878          }
1879          break;
1880        }
1881        case 32: {
1882          $t70_71 = 0n;
1883          $block = 33; break;
1884          break;
1885        }
1886        case 33: {
1887          $t71_72 = (Number($t70_71) >>> 0);
1888          $t72_73 = { $get() { return $t0_1.$get().Limit; }, $set(v) { const obj = $t0_1.$get(); obj.Limit = v; $t0_1.$set(obj); } };
1889          $t72_73.$set($t71_72);
1890          $t34_35 = $t62_63;
1891          $block = 18; break;
1892          break;
1893        }
1894        case 34: {
1895          $t73_74 = ($t61_62 > 4294967295n);
1896          if ($t73_74) {
1897            $block = 35; break;
1898          }
1899          else {
1900            $t70_71 = $t61_62;
1901            $block = 33; break;
1902          }
1903          break;
1904        }
1905        case 35: {
1906          $t70_71 = 4294967295n;
1907          $block = 33; break;
1908          break;
1909        }
1910        case 36: {
1911          $t74_75 = $rt.builtin.len($t22_23);
1912          $t75_76 = ($t74_75 === 2);
1913          if ($t75_76) {
1914            $block = 39; break;
1915          }
1916          else {
1917            $block = 38; break;
1918          }
1919          break;
1920        }
1921        case 37: {
1922          $t76_77 = { $get() { return $t0_1.$get().Tags; }, $set(v) { const obj = $t0_1.$get(); obj.Tags = v; $t0_1.$set(obj); } };
1923          $t77_78 = $t76_77.$get();
1924          $t78_79 = ($t77_78 === null);
1925          if ($t78_79) {
1926            $block = 40; break;
1927          }
1928          else {
1929            $block = 41; break;
1930          }
1931          break;
1932        }
1933        case 38: {
1934          $t79_80 = skipValue(s, $t29_30);
1935          $t34_35 = $t79_80;
1936          $block = 18; break;
1937          break;
1938        }
1939        case 39: {
1940          $t80_81 = $t22_23.addr(0);
1941          $t81_82 = $t80_81.$get();
1942          $t82_83 = ($t81_82 === 35);
1943          if ($t82_83) {
1944            $block = 37; break;
1945          }
1946          else {
1947            $block = 38; break;
1948          }
1949          break;
1950        }
1951        case 40: {
1952          $t83_84 = $rt.builtin.makeMap('string');
1953          $t84_85 = { $get() { return $t0_1.$get().Tags; }, $set(v) { const obj = $t0_1.$get(); obj.Tags = v; $t0_1.$set(obj); } };
1954          $t84_85.$set($t83_84);
1955          $block = 41; break;
1956          break;
1957        }
1958        case 41: {
1959          $t85_86 = { $get() { return $t0_1.$get().Tags; }, $set(v) { const obj = $t0_1.$get(); obj.Tags = v; $t0_1.$set(obj); } };
1960          $t86_87 = $t85_86.$get();
1961          $t87_88 = parseStrArray(s, $t29_30);
1962          $t88_89 = $t87_88[0];
1963          $rt.builtin.mapUpdate($t86_87, $t22_23, $t88_89);
1964          $t89_90 = $t87_88[1];
1965          $t34_35 = $t89_90;
1966          $block = 18; break;
1967          break;
1968        }
1969        case 42: {
1970          return null;
1971          break;
1972        }
1973      }
1974    }
1975  }
1976  
1977  export function ParseEventsJSON(s) {
1978    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28;
1979    let $block = 0;
1980    while (true) {
1981      switch ($block) {
1982        case 0: {
1983          $t0_1 = skipWS(s, 0);
1984          $t1_2 = $rt.builtin.len(s);
1985          $t2_3 = ($t0_1 >= $t1_2);
1986          if ($t2_3) {
1987            $block = 1; break;
1988          }
1989          else {
1990            $block = 3; break;
1991          }
1992          break;
1993        }
1994        case 1: {
1995          return null;
1996          break;
1997        }
1998        case 2: {
1999          $t3_4 = ($t0_1 + 1);
2000          $t7_8 = $t3_4;
2001          $t8_9 = null;
2002          $block = 4; break;
2003          break;
2004        }
2005        case 3: {
2006          $t4_5 = s.addr($t0_1);
2007          $t5_6 = $t4_5.$get();
2008          $t6_7 = ($t5_6 !== 91);
2009          if ($t6_7) {
2010            $block = 1; break;
2011          }
2012          else {
2013            $block = 2; break;
2014          }
2015          break;
2016        }
2017        case 4: {
2018          $t9_10 = skipWS(s, $t7_8);
2019          $t10_11 = $rt.builtin.len(s);
2020          $t11_12 = ($t9_10 >= $t10_11);
2021          if ($t11_12) {
2022            $block = 5; break;
2023          }
2024          else {
2025            $block = 6; break;
2026          }
2027          break;
2028        }
2029        case 5: {
2030          return $t8_9;
2031          break;
2032        }
2033        case 6: {
2034          $t12_13 = s.addr($t9_10);
2035          $t13_14 = $t12_13.$get();
2036          $t14_15 = ($t13_14 === 93);
2037          if ($t14_15) {
2038            $block = 7; break;
2039          }
2040          else {
2041            $block = 8; break;
2042          }
2043          break;
2044        }
2045        case 7: {
2046          return $t8_9;
2047          break;
2048        }
2049        case 8: {
2050          $t15_16 = s.addr($t9_10);
2051          $t16_17 = $t15_16.$get();
2052          $t17_18 = ($t16_17 === 44);
2053          if ($t17_18) {
2054            $block = 9; break;
2055          }
2056          else {
2057            $block = 10; break;
2058          }
2059          break;
2060        }
2061        case 9: {
2062          $t18_19 = ($t9_10 + 1);
2063          let $phi0 = $t18_19;
2064          let $phi1 = $t8_9;
2065          $t7_8 = $phi0;
2066          $t8_9 = $phi1;
2067          $block = 4; break;
2068          break;
2069        }
2070        case 10: {
2071          $t19_20 = skipValue(s, $t9_10);
2072          $t20_21 = ($t19_20 < 0);
2073          if ($t20_21) {
2074            $block = 11; break;
2075          }
2076          else {
2077            $block = 12; break;
2078          }
2079          break;
2080        }
2081        case 11: {
2082          return $t8_9;
2083          break;
2084        }
2085        case 12: {
2086          $t21_22 = $rt.builtin.stringSlice(s, $t9_10, $t19_20);
2087          $t22_23 = ParseEvent($t21_22);
2088          $t23_24 = ($t22_23 !== null);
2089          if ($t23_24) {
2090            $block = 13; break;
2091          }
2092          else {
2093            let $phi0 = $t19_20;
2094            let $phi1 = $t8_9;
2095            $t7_8 = $phi0;
2096            $t8_9 = $phi1;
2097            $block = 4; break;
2098          }
2099          break;
2100        }
2101        case 13: {
2102          $t24_25 = { $value: $rt.builtin.makeSlice(1, 1, null), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2103          $t25_26 = $t24_25.$get().addr(0);
2104          $t25_26.$set($t22_23);
2105          $t26_27 = $rt.builtin.sliceSlice($t24_25.$get(), undefined, undefined, undefined);
2106          $t27_28 = $rt.builtin.appendSlice($t8_9, $t26_27);
2107          $t7_8 = $t19_20;
2108          $t8_9 = $t27_28;
2109          $block = 4; break;
2110          break;
2111        }
2112      }
2113    }
2114  }
2115  
2116  export function parseStrArray(s, i) {
2117    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28;
2118    let $block = 0;
2119    while (true) {
2120      switch ($block) {
2121        case 0: {
2122          $t0_1 = skipWS(s, i);
2123          $t1_2 = $rt.builtin.len(s);
2124          $t2_3 = ($t0_1 >= $t1_2);
2125          if ($t2_3) {
2126            $block = 1; break;
2127          }
2128          else {
2129            $block = 3; break;
2130          }
2131          break;
2132        }
2133        case 1: {
2134          return [null, -1];
2135          break;
2136        }
2137        case 2: {
2138          $t3_4 = ($t0_1 + 1);
2139          $t7_8 = $t3_4;
2140          $t8_9 = null;
2141          $block = 4; break;
2142          break;
2143        }
2144        case 3: {
2145          $t4_5 = s.addr($t0_1);
2146          $t5_6 = $t4_5.$get();
2147          $t6_7 = ($t5_6 !== 91);
2148          if ($t6_7) {
2149            $block = 1; break;
2150          }
2151          else {
2152            $block = 2; break;
2153          }
2154          break;
2155        }
2156        case 4: {
2157          $t9_10 = skipWS(s, $t7_8);
2158          $t10_11 = $rt.builtin.len(s);
2159          $t11_12 = ($t9_10 >= $t10_11);
2160          if ($t11_12) {
2161            $block = 5; break;
2162          }
2163          else {
2164            $block = 6; break;
2165          }
2166          break;
2167        }
2168        case 5: {
2169          return [null, -1];
2170          break;
2171        }
2172        case 6: {
2173          $t12_13 = s.addr($t9_10);
2174          $t13_14 = $t12_13.$get();
2175          $t14_15 = ($t13_14 === 93);
2176          if ($t14_15) {
2177            $block = 7; break;
2178          }
2179          else {
2180            $block = 8; break;
2181          }
2182          break;
2183        }
2184        case 7: {
2185          $t15_16 = ($t9_10 + 1);
2186          return [$t8_9, $t15_16];
2187          break;
2188        }
2189        case 8: {
2190          $t16_17 = s.addr($t9_10);
2191          $t17_18 = $t16_17.$get();
2192          $t18_19 = ($t17_18 === 44);
2193          if ($t18_19) {
2194            $block = 9; break;
2195          }
2196          else {
2197            $block = 10; break;
2198          }
2199          break;
2200        }
2201        case 9: {
2202          $t19_20 = ($t9_10 + 1);
2203          let $phi0 = $t19_20;
2204          let $phi1 = $t8_9;
2205          $t7_8 = $phi0;
2206          $t8_9 = $phi1;
2207          $block = 4; break;
2208          break;
2209        }
2210        case 10: {
2211          $t20_21 = parseString(s, $t9_10);
2212          $t21_22 = $t20_21[0];
2213          $t22_23 = $t20_21[1];
2214          $t23_24 = ($t22_23 < 0);
2215          if ($t23_24) {
2216            $block = 11; break;
2217          }
2218          else {
2219            $block = 12; break;
2220          }
2221          break;
2222        }
2223        case 11: {
2224          return [null, -1];
2225          break;
2226        }
2227        case 12: {
2228          $t24_25 = { $value: $rt.builtin.makeSlice(1, 1, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2229          $t25_26 = $t24_25.$get().addr(0);
2230          $t25_26.$set($t21_22);
2231          $t26_27 = $rt.builtin.sliceSlice($t24_25.$get(), undefined, undefined, undefined);
2232          $t27_28 = $rt.builtin.appendSlice($t8_9, $t26_27);
2233          $t7_8 = $t22_23;
2234          $t8_9 = $t27_28;
2235          $block = 4; break;
2236          break;
2237        }
2238      }
2239    }
2240  }
2241  
2242  export function parseKindArray(s, i) {
2243    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31;
2244    let $block = 0;
2245    while (true) {
2246      switch ($block) {
2247        case 0: {
2248          $t0_1 = skipWS(s, i);
2249          $t1_2 = $rt.builtin.len(s);
2250          $t2_3 = ($t0_1 >= $t1_2);
2251          if ($t2_3) {
2252            $block = 1; break;
2253          }
2254          else {
2255            $block = 3; break;
2256          }
2257          break;
2258        }
2259        case 1: {
2260          return [null, -1];
2261          break;
2262        }
2263        case 2: {
2264          $t3_4 = ($t0_1 + 1);
2265          $t7_8 = $t3_4;
2266          $t8_9 = null;
2267          $block = 4; break;
2268          break;
2269        }
2270        case 3: {
2271          $t4_5 = s.addr($t0_1);
2272          $t5_6 = $t4_5.$get();
2273          $t6_7 = ($t5_6 !== 91);
2274          if ($t6_7) {
2275            $block = 1; break;
2276          }
2277          else {
2278            $block = 2; break;
2279          }
2280          break;
2281        }
2282        case 4: {
2283          $t9_10 = skipWS(s, $t7_8);
2284          $t10_11 = $rt.builtin.len(s);
2285          $t11_12 = ($t9_10 >= $t10_11);
2286          if ($t11_12) {
2287            $block = 5; break;
2288          }
2289          else {
2290            $block = 6; break;
2291          }
2292          break;
2293        }
2294        case 5: {
2295          return [null, -1];
2296          break;
2297        }
2298        case 6: {
2299          $t12_13 = s.addr($t9_10);
2300          $t13_14 = $t12_13.$get();
2301          $t14_15 = ($t13_14 === 93);
2302          if ($t14_15) {
2303            $block = 7; break;
2304          }
2305          else {
2306            $block = 8; break;
2307          }
2308          break;
2309        }
2310        case 7: {
2311          $t15_16 = ($t9_10 + 1);
2312          return [$t8_9, $t15_16];
2313          break;
2314        }
2315        case 8: {
2316          $t16_17 = s.addr($t9_10);
2317          $t17_18 = $t16_17.$get();
2318          $t18_19 = ($t17_18 === 44);
2319          if ($t18_19) {
2320            $block = 9; break;
2321          }
2322          else {
2323            $block = 10; break;
2324          }
2325          break;
2326        }
2327        case 9: {
2328          $t19_20 = ($t9_10 + 1);
2329          let $phi0 = $t19_20;
2330          let $phi1 = $t8_9;
2331          $t7_8 = $phi0;
2332          $t8_9 = $phi1;
2333          $block = 4; break;
2334          break;
2335        }
2336        case 10: {
2337          $t20_21 = parseInt(s, $t9_10);
2338          $t21_22 = $t20_21[0];
2339          $t22_23 = $t20_21[1];
2340          $t23_24 = ($t22_23 < 0);
2341          if ($t23_24) {
2342            $block = 11; break;
2343          }
2344          else {
2345            $block = 12; break;
2346          }
2347          break;
2348        }
2349        case 11: {
2350          return [null, -1];
2351          break;
2352        }
2353        case 12: {
2354          $t24_25 = ($t21_22 < 0n);
2355          if ($t24_25) {
2356            $block = 13; break;
2357          }
2358          else {
2359            $block = 15; break;
2360          }
2361          break;
2362        }
2363        case 13: {
2364          let $phi0 = $t22_23;
2365          let $phi1 = $t8_9;
2366          $t7_8 = $phi0;
2367          $t8_9 = $phi1;
2368          $block = 4; break;
2369          break;
2370        }
2371        case 14: {
2372          $t25_26 = (Number($t21_22) >>> 0);
2373          $t26_27 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2374          $t27_28 = $t26_27.$get().addr(0);
2375          $t27_28.$set($t25_26);
2376          $t28_29 = $rt.builtin.sliceSlice($t26_27.$get(), undefined, undefined, undefined);
2377          $t29_30 = $rt.builtin.appendSlice($t8_9, $t28_29);
2378          $t7_8 = $t22_23;
2379          $t8_9 = $t29_30;
2380          $block = 4; break;
2381          break;
2382        }
2383        case 15: {
2384          $t30_31 = ($t21_22 > 4294967295n);
2385          if ($t30_31) {
2386            $block = 13; break;
2387          }
2388          else {
2389            $block = 14; break;
2390          }
2391          break;
2392        }
2393      }
2394    }
2395  }
2396  
2397  export function skipWS(s, i) {
2398    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16;
2399    let $block = 0;
2400    while (true) {
2401      switch ($block) {
2402        case 0: {
2403          $t1_2 = i;
2404          $block = 3; break;
2405          break;
2406        }
2407        case 1: {
2408          $t0_1 = ($t1_2 + 1);
2409          $t1_2 = $t0_1;
2410          $block = 3; break;
2411          break;
2412        }
2413        case 2: {
2414          return $t1_2;
2415          break;
2416        }
2417        case 3: {
2418          $t2_3 = $rt.builtin.len(s);
2419          $t3_4 = ($t1_2 < $t2_3);
2420          if ($t3_4) {
2421            $block = 4; break;
2422          }
2423          else {
2424            $block = 2; break;
2425          }
2426          break;
2427        }
2428        case 4: {
2429          $t4_5 = s.addr($t1_2);
2430          $t5_6 = $t4_5.$get();
2431          $t6_7 = ($t5_6 === 32);
2432          if ($t6_7) {
2433            $block = 1; break;
2434          }
2435          else {
2436            $block = 7; break;
2437          }
2438          break;
2439        }
2440        case 5: {
2441          $t7_8 = s.addr($t1_2);
2442          $t8_9 = $t7_8.$get();
2443          $t9_10 = ($t8_9 === 13);
2444          if ($t9_10) {
2445            $block = 1; break;
2446          }
2447          else {
2448            $block = 2; break;
2449          }
2450          break;
2451        }
2452        case 6: {
2453          $t10_11 = s.addr($t1_2);
2454          $t11_12 = $t10_11.$get();
2455          $t12_13 = ($t11_12 === 10);
2456          if ($t12_13) {
2457            $block = 1; break;
2458          }
2459          else {
2460            $block = 5; break;
2461          }
2462          break;
2463        }
2464        case 7: {
2465          $t13_14 = s.addr($t1_2);
2466          $t14_15 = $t13_14.$get();
2467          $t15_16 = ($t14_15 === 9);
2468          if ($t15_16) {
2469            $block = 1; break;
2470          }
2471          else {
2472            $block = 6; break;
2473          }
2474          break;
2475        }
2476      }
2477    }
2478  }
2479  
2480  export function parseString(s, i) {
2481    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68, $t68_69, $t69_70, $t70_71, $t71_72, $t72_73, $t73_74, $t74_75, $t75_76, $t76_77, $t77_78, $t78_79, $t79_80, $t80_81, $t81_82, $t82_83, $t83_84, $t84_85, $t85_86, $t86_87, $t87_88, $t88_89, $t89_90, $t90_91, $t91_92, $t92_93, $t93_94, $t94_95, $t95_96, $t96_97, $t97_98, $t98_99, $t99_100, $t100_101, $t101_102, $t102_103, $t103_104, $t104_105, $t105_106, $t106_107, $t107_108, $t108_109, $t109_110, $t110_111, $t111_112, $t112_113, $t113_114, $t114_115, $t115_116, $t116_117, $t117_118, $t118_119, $t119_120, $t120_121, $t121_122, $t122_123, $t123_124, $t124_125;
2482    let $block = 0;
2483    while (true) {
2484      switch ($block) {
2485        case 0: {
2486          $t0_1 = $rt.builtin.len(s);
2487          $t1_2 = (i >= $t0_1);
2488          if ($t1_2) {
2489            $block = 1; break;
2490          }
2491          else {
2492            $block = 3; break;
2493          }
2494          break;
2495        }
2496        case 1: {
2497          return ['', -1];
2498          break;
2499        }
2500        case 2: {
2501          $t2_3 = (i + 1);
2502          $t9_10 = $t2_3;
2503          $t10_11 = $t2_3;
2504          $t11_12 = '';
2505          $block = 6; break;
2506          break;
2507        }
2508        case 3: {
2509          $t3_4 = s.addr(i);
2510          $t4_5 = $t3_4.$get();
2511          $t5_6 = ($t4_5 !== 34);
2512          if ($t5_6) {
2513            $block = 1; break;
2514          }
2515          else {
2516            $block = 2; break;
2517          }
2518          break;
2519        }
2520        case 4: {
2521          $t6_7 = s.addr($t9_10);
2522          $t7_8 = $t6_7.$get();
2523          $t8_9 = ($t7_8 === 92);
2524          if ($t8_9) {
2525            $block = 7; break;
2526          }
2527          else {
2528            $block = 8; break;
2529          }
2530          break;
2531        }
2532        case 5: {
2533          return ['', -1];
2534          break;
2535        }
2536        case 6: {
2537          $t12_13 = $rt.builtin.len(s);
2538          $t13_14 = ($t9_10 < $t12_13);
2539          if ($t13_14) {
2540            $block = 4; break;
2541          }
2542          else {
2543            $block = 5; break;
2544          }
2545          break;
2546        }
2547        case 7: {
2548          $t14_15 = $rt.builtin.stringSlice(s, $t10_11, $t9_10);
2549          $t15_16 = ($t11_12 + $t14_15);
2550          $t16_17 = ($t9_10 + 1);
2551          $t17_18 = $rt.builtin.len(s);
2552          $t18_19 = ($t16_17 >= $t17_18);
2553          if ($t18_19) {
2554            $block = 9; break;
2555          }
2556          else {
2557            $block = 10; break;
2558          }
2559          break;
2560        }
2561        case 8: {
2562          $t19_20 = s.addr($t9_10);
2563          $t20_21 = $t19_20.$get();
2564          $t21_22 = ($t20_21 === 34);
2565          if ($t21_22) {
2566            $block = 38; break;
2567          }
2568          else {
2569            $block = 39; break;
2570          }
2571          break;
2572        }
2573        case 9: {
2574          return ['', -1];
2575          break;
2576        }
2577        case 10: {
2578          $t22_23 = s.addr($t16_17);
2579          $t23_24 = $t22_23.$get();
2580          $t24_25 = ($t23_24 === 34);
2581          if ($t24_25) {
2582            $block = 12; break;
2583          }
2584          else {
2585            $block = 14; break;
2586          }
2587          break;
2588        }
2589        case 11: {
2590          $t27_28 = ($t25_26 + 1);
2591          $t9_10 = $t27_28;
2592          $t10_11 = $t27_28;
2593          $t11_12 = $t26_27;
2594          $block = 6; break;
2595          break;
2596        }
2597        case 12: {
2598          $t28_29 = ($t16_17 + 1);
2599          $t29_30 = $rt.builtin.stringSlice(s, $t16_17, $t28_29);
2600          $t30_31 = ($t15_16 + $t29_30);
2601          $t25_26 = $t16_17;
2602          $t26_27 = $t30_31;
2603          $block = 11; break;
2604          break;
2605        }
2606        case 13: {
2607          $t31_32 = ($t15_16 + '\n');
2608          $t25_26 = $t16_17;
2609          $t26_27 = $t31_32;
2610          $block = 11; break;
2611          break;
2612        }
2613        case 14: {
2614          $t32_33 = ($t23_24 === 92);
2615          if ($t32_33) {
2616            $block = 12; break;
2617          }
2618          else {
2619            $block = 15; break;
2620          }
2621          break;
2622        }
2623        case 15: {
2624          $t33_34 = ($t23_24 === 47);
2625          if ($t33_34) {
2626            $block = 12; break;
2627          }
2628          else {
2629            $block = 16; break;
2630          }
2631          break;
2632        }
2633        case 16: {
2634          $t34_35 = ($t23_24 === 110);
2635          if ($t34_35) {
2636            $block = 13; break;
2637          }
2638          else {
2639            $block = 18; break;
2640          }
2641          break;
2642        }
2643        case 17: {
2644          $t35_36 = ($t15_16 + '\r');
2645          $t25_26 = $t16_17;
2646          $t26_27 = $t35_36;
2647          $block = 11; break;
2648          break;
2649        }
2650        case 18: {
2651          $t36_37 = ($t23_24 === 114);
2652          if ($t36_37) {
2653            $block = 17; break;
2654          }
2655          else {
2656            $block = 20; break;
2657          }
2658          break;
2659        }
2660        case 19: {
2661          $t37_38 = ($t15_16 + '\t');
2662          $t25_26 = $t16_17;
2663          $t26_27 = $t37_38;
2664          $block = 11; break;
2665          break;
2666        }
2667        case 20: {
2668          $t38_39 = ($t23_24 === 116);
2669          if ($t38_39) {
2670            $block = 19; break;
2671          }
2672          else {
2673            $block = 22; break;
2674          }
2675          break;
2676        }
2677        case 21: {
2678          $t39_40 = ($t15_16 + '\x08');
2679          $t25_26 = $t16_17;
2680          $t26_27 = $t39_40;
2681          $block = 11; break;
2682          break;
2683        }
2684        case 22: {
2685          $t40_41 = ($t23_24 === 98);
2686          if ($t40_41) {
2687            $block = 21; break;
2688          }
2689          else {
2690            $block = 24; break;
2691          }
2692          break;
2693        }
2694        case 23: {
2695          $t41_42 = ($t15_16 + '\x0c');
2696          $t25_26 = $t16_17;
2697          $t26_27 = $t41_42;
2698          $block = 11; break;
2699          break;
2700        }
2701        case 24: {
2702          $t42_43 = ($t23_24 === 102);
2703          if ($t42_43) {
2704            $block = 23; break;
2705          }
2706          else {
2707            $block = 26; break;
2708          }
2709          break;
2710        }
2711        case 25: {
2712          $t43_44 = ($t16_17 + 4);
2713          $t44_45 = $rt.builtin.len(s);
2714          $t45_46 = ($t43_44 >= $t44_45);
2715          if ($t45_46) {
2716            $block = 28; break;
2717          }
2718          else {
2719            $block = 29; break;
2720          }
2721          break;
2722        }
2723        case 26: {
2724          $t46_47 = ($t23_24 === 117);
2725          if ($t46_47) {
2726            $block = 25; break;
2727          }
2728          else {
2729            $block = 27; break;
2730          }
2731          break;
2732        }
2733        case 27: {
2734          $t47_48 = ($t16_17 + 1);
2735          $t48_49 = $rt.builtin.stringSlice(s, $t16_17, $t47_48);
2736          $t49_50 = ($t15_16 + $t48_49);
2737          $t25_26 = $t16_17;
2738          $t26_27 = $t49_50;
2739          $block = 11; break;
2740          break;
2741        }
2742        case 28: {
2743          return ['', -1];
2744          break;
2745        }
2746        case 29: {
2747          $t50_51 = ($t16_17 + 1);
2748          $t51_52 = s.addr($t50_51);
2749          $t52_53 = $t51_52.$get();
2750          $t53_54 = hexVal($t52_53);
2751          $t54_55 = ($t53_54 << 12);
2752          $t55_56 = ($t16_17 + 2);
2753          $t56_57 = s.addr($t55_56);
2754          $t57_58 = $t56_57.$get();
2755          $t58_59 = hexVal($t57_58);
2756          $t59_60 = ($t58_59 << 8);
2757          $t60_61 = ($t54_55 + $t59_60);
2758          $t61_62 = ($t16_17 + 3);
2759          $t62_63 = s.addr($t61_62);
2760          $t63_64 = $t62_63.$get();
2761          $t64_65 = hexVal($t63_64);
2762          $t65_66 = ($t64_65 << 4);
2763          $t66_67 = ($t60_61 + $t65_66);
2764          $t67_68 = ($t16_17 + 4);
2765          $t68_69 = s.addr($t67_68);
2766          $t69_70 = $t68_69.$get();
2767          $t70_71 = hexVal($t69_70);
2768          $t71_72 = ($t66_67 + $t70_71);
2769          $t72_73 = ($t71_72 >= 55296);
2770          if ($t72_73) {
2771            $block = 35; break;
2772          }
2773          else {
2774            $t96_97 = $t16_17;
2775            $t97_98 = $t71_72;
2776            $block = 31; break;
2777          }
2778          break;
2779        }
2780        case 30: {
2781          $t73_74 = ($t16_17 + 7);
2782          $t74_75 = s.addr($t73_74);
2783          $t75_76 = $t74_75.$get();
2784          $t76_77 = hexVal($t75_76);
2785          $t77_78 = ($t76_77 << 12);
2786          $t78_79 = ($t16_17 + 8);
2787          $t79_80 = s.addr($t78_79);
2788          $t80_81 = $t79_80.$get();
2789          $t81_82 = hexVal($t80_81);
2790          $t82_83 = ($t81_82 << 8);
2791          $t83_84 = ($t77_78 + $t82_83);
2792          $t84_85 = ($t16_17 + 9);
2793          $t85_86 = s.addr($t84_85);
2794          $t86_87 = $t85_86.$get();
2795          $t87_88 = hexVal($t86_87);
2796          $t88_89 = ($t87_88 << 4);
2797          $t89_90 = ($t83_84 + $t88_89);
2798          $t90_91 = ($t16_17 + 10);
2799          $t91_92 = s.addr($t90_91);
2800          $t92_93 = $t91_92.$get();
2801          $t93_94 = hexVal($t92_93);
2802          $t94_95 = ($t89_90 + $t93_94);
2803          $t95_96 = ($t94_95 >= 56320);
2804          if ($t95_96) {
2805            $block = 37; break;
2806          }
2807          else {
2808            $t96_97 = $t16_17;
2809            $t97_98 = $t71_72;
2810            $block = 31; break;
2811          }
2812          break;
2813        }
2814        case 31: {
2815          $t98_99 = ($t97_98 | 0);
2816          $t99_100 = String.fromCodePoint($t98_99);
2817          $t100_101 = ($t15_16 + $t99_100);
2818          $t101_102 = ($t96_97 + 4);
2819          $t25_26 = $t101_102;
2820          $t26_27 = $t100_101;
2821          $block = 11; break;
2822          break;
2823        }
2824        case 32: {
2825          $t102_103 = ($t16_17 + 6);
2826          $t103_104 = s.addr($t102_103);
2827          $t104_105 = $t103_104.$get();
2828          $t105_106 = ($t104_105 === 117);
2829          if ($t105_106) {
2830            $block = 30; break;
2831          }
2832          else {
2833            $t96_97 = $t16_17;
2834            $t97_98 = $t71_72;
2835            $block = 31; break;
2836          }
2837          break;
2838        }
2839        case 33: {
2840          $t106_107 = ($t16_17 + 5);
2841          $t107_108 = s.addr($t106_107);
2842          $t108_109 = $t107_108.$get();
2843          $t109_110 = ($t108_109 === 92);
2844          if ($t109_110) {
2845            $block = 32; break;
2846          }
2847          else {
2848            $t96_97 = $t16_17;
2849            $t97_98 = $t71_72;
2850            $block = 31; break;
2851          }
2852          break;
2853        }
2854        case 34: {
2855          $t110_111 = ($t16_17 + 10);
2856          $t111_112 = $rt.builtin.len(s);
2857          $t112_113 = ($t110_111 <= $t111_112);
2858          if ($t112_113) {
2859            $block = 33; break;
2860          }
2861          else {
2862            $t96_97 = $t16_17;
2863            $t97_98 = $t71_72;
2864            $block = 31; break;
2865          }
2866          break;
2867        }
2868        case 35: {
2869          $t113_114 = ($t71_72 <= 56319);
2870          if ($t113_114) {
2871            $block = 34; break;
2872          }
2873          else {
2874            $t96_97 = $t16_17;
2875            $t97_98 = $t71_72;
2876            $block = 31; break;
2877          }
2878          break;
2879        }
2880        case 36: {
2881          $t114_115 = ($t71_72 - 55296);
2882          $t115_116 = ($t114_115 * 1024);
2883          $t116_117 = (65536 + $t115_116);
2884          $t117_118 = ($t94_95 - 56320);
2885          $t118_119 = ($t116_117 + $t117_118);
2886          $t119_120 = ($t16_17 + 6);
2887          $t96_97 = $t119_120;
2888          $t97_98 = $t118_119;
2889          $block = 31; break;
2890          break;
2891        }
2892        case 37: {
2893          $t120_121 = ($t94_95 <= 57343);
2894          if ($t120_121) {
2895            $block = 36; break;
2896          }
2897          else {
2898            $t96_97 = $t16_17;
2899            $t97_98 = $t71_72;
2900            $block = 31; break;
2901          }
2902          break;
2903        }
2904        case 38: {
2905          $t121_122 = $rt.builtin.stringSlice(s, $t10_11, $t9_10);
2906          $t122_123 = ($t11_12 + $t121_122);
2907          $t123_124 = ($t9_10 + 1);
2908          return [$t122_123, $t123_124];
2909          break;
2910        }
2911        case 39: {
2912          $t124_125 = ($t9_10 + 1);
2913          let $phi0 = $t124_125;
2914          let $phi1 = $t10_11;
2915          let $phi2 = $t11_12;
2916          $t9_10 = $phi0;
2917          $t10_11 = $phi1;
2918          $t11_12 = $phi2;
2919          $block = 6; break;
2920          break;
2921        }
2922      }
2923    }
2924  }
2925  
2926  export function hexVal(c) {
2927    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14;
2928    let $block = 0;
2929    while (true) {
2930      switch ($block) {
2931        case 0: {
2932          $t0_1 = (c >= 48);
2933          if ($t0_1) {
2934            $block = 3; break;
2935          }
2936          else {
2937            $block = 2; break;
2938          }
2939          break;
2940        }
2941        case 1: {
2942          $t1_2 = ((c - 48) & 0xFF);
2943          $t2_3 = $t1_2;
2944          return $t2_3;
2945          break;
2946        }
2947        case 2: {
2948          $t3_4 = (c >= 97);
2949          if ($t3_4) {
2950            $block = 6; break;
2951          }
2952          else {
2953            $block = 5; break;
2954          }
2955          break;
2956        }
2957        case 3: {
2958          $t4_5 = (c <= 57);
2959          if ($t4_5) {
2960            $block = 1; break;
2961          }
2962          else {
2963            $block = 2; break;
2964          }
2965          break;
2966        }
2967        case 4: {
2968          $t5_6 = ((c - 97) & 0xFF);
2969          $t6_7 = $t5_6;
2970          $t7_8 = ($t6_7 + 10);
2971          return $t7_8;
2972          break;
2973        }
2974        case 5: {
2975          $t8_9 = (c >= 65);
2976          if ($t8_9) {
2977            $block = 9; break;
2978          }
2979          else {
2980            $block = 8; break;
2981          }
2982          break;
2983        }
2984        case 6: {
2985          $t9_10 = (c <= 102);
2986          if ($t9_10) {
2987            $block = 4; break;
2988          }
2989          else {
2990            $block = 5; break;
2991          }
2992          break;
2993        }
2994        case 7: {
2995          $t10_11 = ((c - 65) & 0xFF);
2996          $t11_12 = $t10_11;
2997          $t12_13 = ($t11_12 + 10);
2998          return $t12_13;
2999          break;
3000        }
3001        case 8: {
3002          return 0;
3003          break;
3004        }
3005        case 9: {
3006          $t13_14 = (c <= 70);
3007          if ($t13_14) {
3008            $block = 7; break;
3009          }
3010          else {
3011            $block = 8; break;
3012          }
3013          break;
3014        }
3015      }
3016    }
3017  }
3018  
3019  export function parseInt(s, i) {
3020    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35;
3021    let $block = 0;
3022    while (true) {
3023      switch ($block) {
3024        case 0: {
3025          $t0_1 = $rt.builtin.len(s);
3026          $t1_2 = (i >= $t0_1);
3027          if ($t1_2) {
3028            $block = 1; break;
3029          }
3030          else {
3031            $block = 2; break;
3032          }
3033          break;
3034        }
3035        case 1: {
3036          return [0n, -1];
3037          break;
3038        }
3039        case 2: {
3040          $t2_3 = s.addr(i);
3041          $t3_4 = $t2_3.$get();
3042          $t4_5 = ($t3_4 === 45);
3043          if ($t4_5) {
3044            $block = 3; break;
3045          }
3046          else {
3047            $t6_7 = i;
3048            $t7_8 = false;
3049            $block = 4; break;
3050          }
3051          break;
3052        }
3053        case 3: {
3054          $t5_6 = (i + 1);
3055          $t6_7 = $t5_6;
3056          $t7_8 = true;
3057          $block = 4; break;
3058          break;
3059        }
3060        case 4: {
3061          $t8_9 = $rt.builtin.len(s);
3062          $t9_10 = ($t6_7 >= $t8_9);
3063          if ($t9_10) {
3064            $block = 5; break;
3065          }
3066          else {
3067            $block = 8; break;
3068          }
3069          break;
3070        }
3071        case 5: {
3072          return [0n, -1];
3073          break;
3074        }
3075        case 6: {
3076          $t23_24 = $t6_7;
3077          $t24_25 = 0n;
3078          $block = 11; break;
3079          break;
3080        }
3081        case 7: {
3082          $t10_11 = s.addr($t6_7);
3083          $t11_12 = $t10_11.$get();
3084          $t12_13 = ($t11_12 > 57);
3085          if ($t12_13) {
3086            $block = 5; break;
3087          }
3088          else {
3089            $block = 6; break;
3090          }
3091          break;
3092        }
3093        case 8: {
3094          $t13_14 = s.addr($t6_7);
3095          $t14_15 = $t13_14.$get();
3096          $t15_16 = ($t14_15 < 48);
3097          if ($t15_16) {
3098            $block = 5; break;
3099          }
3100          else {
3101            $block = 7; break;
3102          }
3103          break;
3104        }
3105        case 9: {
3106          $t16_17 = BigInt.asIntN(64, $t24_25 * 10n);
3107          $t17_18 = s.addr($t23_24);
3108          $t18_19 = $t17_18.$get();
3109          $t19_20 = (($t18_19 - 48) & 0xFF);
3110          $t20_21 = BigInt($t19_20);
3111          $t21_22 = BigInt.asIntN(64, $t16_17 + $t20_21);
3112          $t22_23 = ($t23_24 + 1);
3113          $t23_24 = $t22_23;
3114          $t24_25 = $t21_22;
3115          $block = 11; break;
3116          break;
3117        }
3118        case 10: {
3119          if ($t7_8) {
3120            $block = 14; break;
3121          }
3122          else {
3123            $t34_35 = $t24_25;
3124            $block = 15; break;
3125          }
3126          break;
3127        }
3128        case 11: {
3129          $t25_26 = $rt.builtin.len(s);
3130          $t26_27 = ($t23_24 < $t25_26);
3131          if ($t26_27) {
3132            $block = 13; break;
3133          }
3134          else {
3135            $block = 10; break;
3136          }
3137          break;
3138        }
3139        case 12: {
3140          $t27_28 = s.addr($t23_24);
3141          $t28_29 = $t27_28.$get();
3142          $t29_30 = ($t28_29 <= 57);
3143          if ($t29_30) {
3144            $block = 9; break;
3145          }
3146          else {
3147            $block = 10; break;
3148          }
3149          break;
3150        }
3151        case 13: {
3152          $t30_31 = s.addr($t23_24);
3153          $t31_32 = $t30_31.$get();
3154          $t32_33 = ($t31_32 >= 48);
3155          if ($t32_33) {
3156            $block = 12; break;
3157          }
3158          else {
3159            $block = 10; break;
3160          }
3161          break;
3162        }
3163        case 14: {
3164          $t33_34 = -$t24_25;
3165          $t34_35 = $t33_34;
3166          $block = 15; break;
3167          break;
3168        }
3169        case 15: {
3170          return [$t34_35, $t23_24];
3171          break;
3172        }
3173      }
3174    }
3175  }
3176  
3177  export function parseTags(s, i) {
3178    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48;
3179    let $block = 0;
3180    while (true) {
3181      switch ($block) {
3182        case 0: {
3183          $t0_1 = $rt.builtin.len(s);
3184          $t1_2 = (i >= $t0_1);
3185          if ($t1_2) {
3186            $block = 1; break;
3187          }
3188          else {
3189            $block = 3; break;
3190          }
3191          break;
3192        }
3193        case 1: {
3194          return [null, -1];
3195          break;
3196        }
3197        case 2: {
3198          $t2_3 = (i + 1);
3199          $t6_7 = $t2_3;
3200          $t7_8 = null;
3201          $block = 4; break;
3202          break;
3203        }
3204        case 3: {
3205          $t3_4 = s.addr(i);
3206          $t4_5 = $t3_4.$get();
3207          $t5_6 = ($t4_5 !== 91);
3208          if ($t5_6) {
3209            $block = 1; break;
3210          }
3211          else {
3212            $block = 2; break;
3213          }
3214          break;
3215        }
3216        case 4: {
3217          $t8_9 = skipWS(s, $t6_7);
3218          $t9_10 = $rt.builtin.len(s);
3219          $t10_11 = ($t8_9 >= $t9_10);
3220          if ($t10_11) {
3221            $block = 5; break;
3222          }
3223          else {
3224            $block = 6; break;
3225          }
3226          break;
3227        }
3228        case 5: {
3229          return [null, -1];
3230          break;
3231        }
3232        case 6: {
3233          $t11_12 = s.addr($t8_9);
3234          $t12_13 = $t11_12.$get();
3235          $t13_14 = ($t12_13 === 93);
3236          if ($t13_14) {
3237            $block = 7; break;
3238          }
3239          else {
3240            $block = 8; break;
3241          }
3242          break;
3243        }
3244        case 7: {
3245          $t14_15 = ($t8_9 + 1);
3246          return [$t7_8, $t14_15];
3247          break;
3248        }
3249        case 8: {
3250          $t15_16 = s.addr($t8_9);
3251          $t16_17 = $t15_16.$get();
3252          $t17_18 = ($t16_17 === 44);
3253          if ($t17_18) {
3254            $block = 9; break;
3255          }
3256          else {
3257            $block = 10; break;
3258          }
3259          break;
3260        }
3261        case 9: {
3262          $t18_19 = ($t8_9 + 1);
3263          let $phi0 = $t18_19;
3264          let $phi1 = $t7_8;
3265          $t6_7 = $phi0;
3266          $t7_8 = $phi1;
3267          $block = 4; break;
3268          break;
3269        }
3270        case 10: {
3271          $t19_20 = s.addr($t8_9);
3272          $t20_21 = $t19_20.$get();
3273          $t21_22 = ($t20_21 !== 91);
3274          if ($t21_22) {
3275            $block = 11; break;
3276          }
3277          else {
3278            $block = 12; break;
3279          }
3280          break;
3281        }
3282        case 11: {
3283          return [null, -1];
3284          break;
3285        }
3286        case 12: {
3287          $t22_23 = ($t8_9 + 1);
3288          $t23_24 = $t22_23;
3289          $t24_25 = null;
3290          $block = 13; break;
3291          break;
3292        }
3293        case 13: {
3294          $t25_26 = skipWS(s, $t23_24);
3295          $t26_27 = $rt.builtin.len(s);
3296          $t27_28 = ($t25_26 >= $t26_27);
3297          if ($t27_28) {
3298            $block = 14; break;
3299          }
3300          else {
3301            $block = 15; break;
3302          }
3303          break;
3304        }
3305        case 14: {
3306          return [null, -1];
3307          break;
3308        }
3309        case 15: {
3310          $t28_29 = s.addr($t25_26);
3311          $t29_30 = $t28_29.$get();
3312          $t30_31 = ($t29_30 === 93);
3313          if ($t30_31) {
3314            $block = 16; break;
3315          }
3316          else {
3317            $block = 17; break;
3318          }
3319          break;
3320        }
3321        case 16: {
3322          $t31_32 = ($t25_26 + 1);
3323          $t32_33 = { $value: $rt.builtin.makeSlice(1, 1, null), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3324          $t33_34 = $t32_33.$get().addr(0);
3325          $t33_34.$set($t24_25);
3326          $t34_35 = $rt.builtin.sliceSlice($t32_33.$get(), undefined, undefined, undefined);
3327          $t35_36 = $rt.builtin.appendSlice($t7_8, $t34_35);
3328          $t6_7 = $t31_32;
3329          $t7_8 = $t35_36;
3330          $block = 4; break;
3331          break;
3332        }
3333        case 17: {
3334          $t36_37 = s.addr($t25_26);
3335          $t37_38 = $t36_37.$get();
3336          $t38_39 = ($t37_38 === 44);
3337          if ($t38_39) {
3338            $block = 18; break;
3339          }
3340          else {
3341            $block = 19; break;
3342          }
3343          break;
3344        }
3345        case 18: {
3346          $t39_40 = ($t25_26 + 1);
3347          let $phi0 = $t39_40;
3348          let $phi1 = $t24_25;
3349          $t23_24 = $phi0;
3350          $t24_25 = $phi1;
3351          $block = 13; break;
3352          break;
3353        }
3354        case 19: {
3355          $t40_41 = parseString(s, $t25_26);
3356          $t41_42 = $t40_41[0];
3357          $t42_43 = $t40_41[1];
3358          $t43_44 = ($t42_43 < 0);
3359          if ($t43_44) {
3360            $block = 20; break;
3361          }
3362          else {
3363            $block = 21; break;
3364          }
3365          break;
3366        }
3367        case 20: {
3368          return [null, -1];
3369          break;
3370        }
3371        case 21: {
3372          $t44_45 = { $value: $rt.builtin.makeSlice(1, 1, ''), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3373          $t45_46 = $t44_45.$get().addr(0);
3374          $t45_46.$set($t41_42);
3375          $t46_47 = $rt.builtin.sliceSlice($t44_45.$get(), undefined, undefined, undefined);
3376          $t47_48 = $rt.builtin.appendSlice($t24_25, $t46_47);
3377          $t23_24 = $t42_43;
3378          $t24_25 = $t47_48;
3379          $block = 13; break;
3380          break;
3381        }
3382      }
3383    }
3384  }
3385  
3386  export function skipValue(s, i) {
3387    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46;
3388    let $block = 0;
3389    while (true) {
3390      switch ($block) {
3391        case 0: {
3392          $t0_1 = $rt.builtin.len(s);
3393          $t1_2 = (i >= $t0_1);
3394          if ($t1_2) {
3395            $block = 1; break;
3396          }
3397          else {
3398            $block = 2; break;
3399          }
3400          break;
3401        }
3402        case 1: {
3403          return -1;
3404          break;
3405        }
3406        case 2: {
3407          $t2_3 = s.addr(i);
3408          $t3_4 = $t2_3.$get();
3409          $t4_5 = ($t3_4 === 34);
3410          if ($t4_5) {
3411            $block = 3; break;
3412          }
3413          else {
3414            $block = 5; break;
3415          }
3416          break;
3417        }
3418        case 3: {
3419          $t5_6 = parseString(s, i);
3420          $t6_7 = $t5_6[0];
3421          $t7_8 = $t5_6[1];
3422          return $t7_8;
3423          break;
3424        }
3425        case 4: {
3426          $t8_9 = skipBracketed(s, i, 123, 125);
3427          return $t8_9;
3428          break;
3429        }
3430        case 5: {
3431          $t9_10 = ($t3_4 === 123);
3432          if ($t9_10) {
3433            $block = 4; break;
3434          }
3435          else {
3436            $block = 7; break;
3437          }
3438          break;
3439        }
3440        case 6: {
3441          $t10_11 = skipBracketed(s, i, 91, 93);
3442          return $t10_11;
3443          break;
3444        }
3445        case 7: {
3446          $t11_12 = ($t3_4 === 91);
3447          if ($t11_12) {
3448            $block = 6; break;
3449          }
3450          else {
3451            $block = 9; break;
3452          }
3453          break;
3454        }
3455        case 8: {
3456          $t12_13 = (i + 4);
3457          $t13_14 = $rt.builtin.len(s);
3458          $t14_15 = ($t12_13 <= $t13_14);
3459          if ($t14_15) {
3460            $block = 12; break;
3461          }
3462          else {
3463            $block = 13; break;
3464          }
3465          break;
3466        }
3467        case 9: {
3468          $t15_16 = ($t3_4 === 116);
3469          if ($t15_16) {
3470            $block = 8; break;
3471          }
3472          else {
3473            $block = 11; break;
3474          }
3475          break;
3476        }
3477        case 10: {
3478          $t16_17 = (i + 5);
3479          $t17_18 = $rt.builtin.len(s);
3480          $t18_19 = ($t16_17 <= $t17_18);
3481          if ($t18_19) {
3482            $block = 16; break;
3483          }
3484          else {
3485            $block = 17; break;
3486          }
3487          break;
3488        }
3489        case 11: {
3490          $t19_20 = ($t3_4 === 102);
3491          if ($t19_20) {
3492            $block = 10; break;
3493          }
3494          else {
3495            $block = 15; break;
3496          }
3497          break;
3498        }
3499        case 12: {
3500          $t20_21 = (i + 4);
3501          return $t20_21;
3502          break;
3503        }
3504        case 13: {
3505          return -1;
3506          break;
3507        }
3508        case 14: {
3509          $t21_22 = (i + 4);
3510          $t22_23 = $rt.builtin.len(s);
3511          $t23_24 = ($t21_22 <= $t22_23);
3512          if ($t23_24) {
3513            $block = 18; break;
3514          }
3515          else {
3516            $block = 19; break;
3517          }
3518          break;
3519        }
3520        case 15: {
3521          $t24_25 = ($t3_4 === 110);
3522          if ($t24_25) {
3523            $block = 14; break;
3524          }
3525          else {
3526            $t28_29 = i;
3527            $block = 22; break;
3528          }
3529          break;
3530        }
3531        case 16: {
3532          $t25_26 = (i + 5);
3533          return $t25_26;
3534          break;
3535        }
3536        case 17: {
3537          return -1;
3538          break;
3539        }
3540        case 18: {
3541          $t26_27 = (i + 4);
3542          return $t26_27;
3543          break;
3544        }
3545        case 19: {
3546          return -1;
3547          break;
3548        }
3549        case 20: {
3550          $t27_28 = ($t28_29 + 1);
3551          $t28_29 = $t27_28;
3552          $block = 22; break;
3553          break;
3554        }
3555        case 21: {
3556          return $t28_29;
3557          break;
3558        }
3559        case 22: {
3560          $t29_30 = $rt.builtin.len(s);
3561          $t30_31 = ($t28_29 < $t29_30);
3562          if ($t30_31) {
3563            $block = 27; break;
3564          }
3565          else {
3566            $block = 21; break;
3567          }
3568          break;
3569        }
3570        case 23: {
3571          $t31_32 = s.addr($t28_29);
3572          $t32_33 = $t31_32.$get();
3573          $t33_34 = ($t32_33 !== 10);
3574          if ($t33_34) {
3575            $block = 20; break;
3576          }
3577          else {
3578            $block = 21; break;
3579          }
3580          break;
3581        }
3582        case 24: {
3583          $t34_35 = s.addr($t28_29);
3584          $t35_36 = $t34_35.$get();
3585          $t36_37 = ($t35_36 !== 32);
3586          if ($t36_37) {
3587            $block = 23; break;
3588          }
3589          else {
3590            $block = 21; break;
3591          }
3592          break;
3593        }
3594        case 25: {
3595          $t37_38 = s.addr($t28_29);
3596          $t38_39 = $t37_38.$get();
3597          $t39_40 = ($t38_39 !== 93);
3598          if ($t39_40) {
3599            $block = 24; break;
3600          }
3601          else {
3602            $block = 21; break;
3603          }
3604          break;
3605        }
3606        case 26: {
3607          $t40_41 = s.addr($t28_29);
3608          $t41_42 = $t40_41.$get();
3609          $t42_43 = ($t41_42 !== 125);
3610          if ($t42_43) {
3611            $block = 25; break;
3612          }
3613          else {
3614            $block = 21; break;
3615          }
3616          break;
3617        }
3618        case 27: {
3619          $t43_44 = s.addr($t28_29);
3620          $t44_45 = $t43_44.$get();
3621          $t45_46 = ($t44_45 !== 44);
3622          if ($t45_46) {
3623            $block = 26; break;
3624          }
3625          else {
3626            $block = 21; break;
3627          }
3628          break;
3629        }
3630      }
3631    }
3632  }
3633  
3634  export function skipBracketed(s, i, open, close) {
3635    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35;
3636    let $block = 0;
3637    while (true) {
3638      switch ($block) {
3639        case 0: {
3640          $t0_1 = $rt.builtin.len(s);
3641          $t1_2 = (i >= $t0_1);
3642          if ($t1_2) {
3643            $block = 1; break;
3644          }
3645          else {
3646            $block = 3; break;
3647          }
3648          break;
3649        }
3650        case 1: {
3651          return -1;
3652          break;
3653        }
3654        case 2: {
3655          $t2_3 = (i + 1);
3656          $t7_8 = $t2_3;
3657          $t8_9 = 1;
3658          $t9_10 = false;
3659          $block = 6; break;
3660          break;
3661        }
3662        case 3: {
3663          $t3_4 = s.addr(i);
3664          $t4_5 = $t3_4.$get();
3665          $t5_6 = ($t4_5 !== open);
3666          if ($t5_6) {
3667            $block = 1; break;
3668          }
3669          else {
3670            $block = 2; break;
3671          }
3672          break;
3673        }
3674        case 4: {
3675          if ($t9_10) {
3676            $block = 8; break;
3677          }
3678          else {
3679            $block = 10; break;
3680          }
3681          break;
3682        }
3683        case 5: {
3684          $t6_7 = ($t8_9 !== 0);
3685          if ($t6_7) {
3686            $block = 19; break;
3687          }
3688          else {
3689            $block = 20; break;
3690          }
3691          break;
3692        }
3693        case 6: {
3694          $t10_11 = $rt.builtin.len(s);
3695          $t11_12 = ($t7_8 < $t10_11);
3696          if ($t11_12) {
3697            $block = 7; break;
3698          }
3699          else {
3700            $block = 5; break;
3701          }
3702          break;
3703        }
3704        case 7: {
3705          $t12_13 = ($t8_9 > 0);
3706          if ($t12_13) {
3707            $block = 4; break;
3708          }
3709          else {
3710            $block = 5; break;
3711          }
3712          break;
3713        }
3714        case 8: {
3715          $t13_14 = s.addr($t7_8);
3716          $t14_15 = $t13_14.$get();
3717          $t15_16 = ($t14_15 === 92);
3718          if ($t15_16) {
3719            $block = 11; break;
3720          }
3721          else {
3722            $block = 12; break;
3723          }
3724          break;
3725        }
3726        case 9: {
3727          $t19_20 = ($t16_17 + 1);
3728          $t7_8 = $t19_20;
3729          $t8_9 = $t17_18;
3730          $t9_10 = $t18_19;
3731          $block = 6; break;
3732          break;
3733        }
3734        case 10: {
3735          $t20_21 = s.addr($t7_8);
3736          $t21_22 = $t20_21.$get();
3737          $t22_23 = ($t21_22 === 34);
3738          if ($t22_23) {
3739            $block = 14; break;
3740          }
3741          else {
3742            $block = 15; break;
3743          }
3744          break;
3745        }
3746        case 11: {
3747          $t23_24 = ($t7_8 + 1);
3748          $t16_17 = $t23_24;
3749          $t17_18 = $t8_9;
3750          $t18_19 = $t9_10;
3751          $block = 9; break;
3752          break;
3753        }
3754        case 12: {
3755          $t24_25 = s.addr($t7_8);
3756          $t25_26 = $t24_25.$get();
3757          $t26_27 = ($t25_26 === 34);
3758          if ($t26_27) {
3759            $block = 13; break;
3760          }
3761          else {
3762            $t16_17 = $t7_8;
3763            $t17_18 = $t8_9;
3764            $t18_19 = $t9_10;
3765            $block = 9; break;
3766          }
3767          break;
3768        }
3769        case 13: {
3770          $t16_17 = $t7_8;
3771          $t17_18 = $t8_9;
3772          $t18_19 = false;
3773          $block = 9; break;
3774          break;
3775        }
3776        case 14: {
3777          $t16_17 = $t7_8;
3778          $t17_18 = $t8_9;
3779          $t18_19 = true;
3780          $block = 9; break;
3781          break;
3782        }
3783        case 15: {
3784          $t27_28 = s.addr($t7_8);
3785          $t28_29 = $t27_28.$get();
3786          $t29_30 = ($t28_29 === open);
3787          if ($t29_30) {
3788            $block = 16; break;
3789          }
3790          else {
3791            $block = 17; break;
3792          }
3793          break;
3794        }
3795        case 16: {
3796          $t30_31 = ($t8_9 + 1);
3797          $t16_17 = $t7_8;
3798          $t17_18 = $t30_31;
3799          $t18_19 = $t9_10;
3800          $block = 9; break;
3801          break;
3802        }
3803        case 17: {
3804          $t31_32 = s.addr($t7_8);
3805          $t32_33 = $t31_32.$get();
3806          $t33_34 = ($t32_33 === close);
3807          if ($t33_34) {
3808            $block = 18; break;
3809          }
3810          else {
3811            $t16_17 = $t7_8;
3812            $t17_18 = $t8_9;
3813            $t18_19 = $t9_10;
3814            $block = 9; break;
3815          }
3816          break;
3817        }
3818        case 18: {
3819          $t34_35 = ($t8_9 - 1);
3820          $t16_17 = $t7_8;
3821          $t17_18 = $t34_35;
3822          $t18_19 = $t9_10;
3823          $block = 9; break;
3824          break;
3825        }
3826        case 19: {
3827          return -1;
3828          break;
3829        }
3830        case 20: {
3831          return $t7_8;
3832          break;
3833        }
3834      }
3835    }
3836  }
3837  
3838  export function Event$CheckID(e) {
3839    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6;
3840    $t0_1 = Event$Serialize(e);
3841    $t1_2 = smesh$lol$web$common$jsbridge$schnorr.SHA256Sum($t0_1);
3842    $t2_3 = smesh$lol$web$common$helpers.HexEncode($t1_2);
3843    $t3_4 = { $get() { return e.$get().ID; }, $set(v) { const obj = e.$get(); obj.ID = v; e.$set(obj); } };
3844    $t4_5 = $t3_4.$get();
3845    $t5_6 = $rt.builtin.stringEqual($t4_5, $t2_3);
3846    return $t5_6;
3847  }
3848  
3849  $rt.types.getType('smesh.lol/web/common/nostr.Event')?.methods?.set('CheckID', Event$CheckID);
3850  export function Event$CheckSig(e) {
3851    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20;
3852    let $block = 0;
3853    while (true) {
3854      switch ($block) {
3855        case 0: {
3856          $t0_1 = { $get() { return e.$get().PubKey; }, $set(v) { const obj = e.$get(); obj.PubKey = v; e.$set(obj); } };
3857          $t1_2 = $t0_1.$get();
3858          $t2_3 = smesh$lol$web$common$helpers.HexDecode($t1_2);
3859          $t3_4 = $rt.builtin.len($t2_3);
3860          $t4_5 = ($t3_4 !== 32);
3861          if ($t4_5) {
3862            $block = 1; break;
3863          }
3864          else {
3865            $block = 2; break;
3866          }
3867          break;
3868        }
3869        case 1: {
3870          return false;
3871          break;
3872        }
3873        case 2: {
3874          $t5_6 = { $get() { return e.$get().ID; }, $set(v) { const obj = e.$get(); obj.ID = v; e.$set(obj); } };
3875          $t6_7 = $t5_6.$get();
3876          $t7_8 = smesh$lol$web$common$helpers.HexDecode($t6_7);
3877          $t8_9 = $rt.builtin.len($t7_8);
3878          $t9_10 = ($t8_9 !== 32);
3879          if ($t9_10) {
3880            $block = 3; break;
3881          }
3882          else {
3883            $block = 4; break;
3884          }
3885          break;
3886        }
3887        case 3: {
3888          return false;
3889          break;
3890        }
3891        case 4: {
3892          $t10_11 = { $get() { return e.$get().Sig; }, $set(v) { const obj = e.$get(); obj.Sig = v; e.$set(obj); } };
3893          $t11_12 = $t10_11.$get();
3894          $t12_13 = $rt.builtin.len($t11_12);
3895          $t13_14 = ($t12_13 !== 128);
3896          if ($t13_14) {
3897            $block = 5; break;
3898          }
3899          else {
3900            $block = 6; break;
3901          }
3902          break;
3903        }
3904        case 5: {
3905          return false;
3906          break;
3907        }
3908        case 6: {
3909          $t14_15 = { $get() { return e.$get().Sig; }, $set(v) { const obj = e.$get(); obj.Sig = v; e.$set(obj); } };
3910          $t15_16 = $t14_15.$get();
3911          $t16_17 = smesh$lol$web$common$helpers.HexDecode($t15_16);
3912          $t17_18 = $rt.builtin.len($t16_17);
3913          $t18_19 = ($t17_18 !== 64);
3914          if ($t18_19) {
3915            $block = 7; break;
3916          }
3917          else {
3918            $block = 8; break;
3919          }
3920          break;
3921        }
3922        case 7: {
3923          return false;
3924          break;
3925        }
3926        case 8: {
3927          $t19_20 = smesh$lol$web$common$jsbridge$schnorr.VerifySchnorr($t2_3, $t7_8, $t16_17);
3928          return $t19_20;
3929          break;
3930        }
3931      }
3932    }
3933  }
3934  
3935  $rt.types.getType('smesh.lol/web/common/nostr.Event')?.methods?.set('CheckSig', Event$CheckSig);
3936  export function Event$ComputeID(e) {
3937    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6;
3938    $t0_1 = Event$Serialize(e);
3939    $t1_2 = smesh$lol$web$common$jsbridge$schnorr.SHA256Sum($t0_1);
3940    $t2_3 = smesh$lol$web$common$helpers.HexEncode($t1_2);
3941    $t3_4 = { $get() { return e.$get().ID; }, $set(v) { const obj = e.$get(); obj.ID = v; e.$set(obj); } };
3942    $t3_4.$set($t2_3);
3943    $t4_5 = { $get() { return e.$get().ID; }, $set(v) { const obj = e.$get(); obj.ID = v; e.$set(obj); } };
3944    $t5_6 = $t4_5.$get();
3945    return $t5_6;
3946  }
3947  
3948  $rt.types.getType('smesh.lol/web/common/nostr.Event')?.methods?.set('ComputeID', Event$ComputeID);
3949  export function Event$Serialize(e) {
3950    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43;
3951    $t0_1 = { $value: $rt.builtin.makeSlice(256, 256, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3952    $t1_2 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, 0, undefined);
3953    $t2_3 = $rt.builtin.appendString($t1_2, '[0,');
3954    $t3_4 = { $get() { return e.$get().PubKey; }, $set(v) { const obj = e.$get(); obj.PubKey = v; e.$set(obj); } };
3955    $t4_5 = $t3_4.$get();
3956    $t5_6 = smesh$lol$web$common$helpers.JsonString($t4_5);
3957    $t6_7 = $rt.builtin.appendString($t2_3, $t5_6);
3958    $t7_8 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3959    $t8_9 = $t7_8.$get().addr(0);
3960    $t8_9.$set(44);
3961    $t9_10 = $rt.builtin.sliceSlice($t7_8.$get(), undefined, undefined, undefined);
3962    $t10_11 = $rt.builtin.appendSlice($t6_7, $t9_10);
3963    $t11_12 = { $get() { return e.$get().CreatedAt; }, $set(v) { const obj = e.$get(); obj.CreatedAt = v; e.$set(obj); } };
3964    $t12_13 = $t11_12.$get();
3965    $t13_14 = smesh$lol$web$common$helpers.Itoa($t12_13);
3966    $t14_15 = $rt.builtin.appendString($t10_11, $t13_14);
3967    $t15_16 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3968    $t16_17 = $t15_16.$get().addr(0);
3969    $t16_17.$set(44);
3970    $t17_18 = $rt.builtin.sliceSlice($t15_16.$get(), undefined, undefined, undefined);
3971    $t18_19 = $rt.builtin.appendSlice($t14_15, $t17_18);
3972    $t19_20 = { $get() { return e.$get().Kind; }, $set(v) { const obj = e.$get(); obj.Kind = v; e.$set(obj); } };
3973    $t20_21 = $t19_20.$get();
3974    $t21_22 = BigInt($t20_21);
3975    $t22_23 = smesh$lol$web$common$helpers.Itoa($t21_22);
3976    $t23_24 = $rt.builtin.appendString($t18_19, $t22_23);
3977    $t24_25 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3978    $t25_26 = $t24_25.$get().addr(0);
3979    $t25_26.$set(44);
3980    $t26_27 = $rt.builtin.sliceSlice($t24_25.$get(), undefined, undefined, undefined);
3981    $t27_28 = $rt.builtin.appendSlice($t23_24, $t26_27);
3982    $t28_29 = { $get() { return e.$get().Tags; }, $set(v) { const obj = e.$get(); obj.Tags = v; e.$set(obj); } };
3983    $t29_30 = $t28_29.$get();
3984    $t30_31 = serializeTags($t27_28, $t29_30);
3985    $t31_32 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3986    $t32_33 = $t31_32.$get().addr(0);
3987    $t32_33.$set(44);
3988    $t33_34 = $rt.builtin.sliceSlice($t31_32.$get(), undefined, undefined, undefined);
3989    $t34_35 = $rt.builtin.appendSlice($t30_31, $t33_34);
3990    $t35_36 = { $get() { return e.$get().Content; }, $set(v) { const obj = e.$get(); obj.Content = v; e.$set(obj); } };
3991    $t36_37 = $t35_36.$get();
3992    $t37_38 = smesh$lol$web$common$helpers.JsonString($t36_37);
3993    $t38_39 = $rt.builtin.appendString($t34_35, $t37_38);
3994    $t39_40 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
3995    $t40_41 = $t39_40.$get().addr(0);
3996    $t40_41.$set(93);
3997    $t41_42 = $rt.builtin.sliceSlice($t39_40.$get(), undefined, undefined, undefined);
3998    $t42_43 = $rt.builtin.appendSlice($t38_39, $t41_42);
3999    return $t42_43;
4000  }
4001  
4002  $rt.types.getType('smesh.lol/web/common/nostr.Event')?.methods?.set('Serialize', Event$Serialize);
4003  export function Event$Sign(e, seckey, auxRand) {
4004    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33;
4005    let $block = 0;
4006    while (true) {
4007      switch ($block) {
4008        case 0: {
4009          $t0_1 = { $value: $rt.builtin.makeSlice(32, 32, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4010          $t0_1.$set($rt.builtin.cloneValue(seckey));
4011          $t1_2 = { $value: $rt.builtin.makeSlice(32, 32, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4012          $t1_2.$set($rt.builtin.cloneValue(auxRand));
4013          $t2_3 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, undefined, undefined);
4014          $t3_4 = smesh$lol$web$common$jsbridge$schnorr.PubKeyFromSecKey($t2_3);
4015          $t4_5 = $t3_4[0];
4016          $t5_6 = $t3_4[1];
4017          if ($t5_6) {
4018            $block = 2; break;
4019          }
4020          else {
4021            $block = 1; break;
4022          }
4023          break;
4024        }
4025        case 1: {
4026          $t6_7 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, undefined, undefined);
4027          $t7_8 = $rt.builtin.clearSlice($t6_7);
4028          $t8_9 = $rt.builtin.sliceSlice($t1_2.$get(), undefined, undefined, undefined);
4029          $t9_10 = $rt.builtin.clearSlice($t8_9);
4030          return false;
4031          break;
4032        }
4033        case 2: {
4034          $t10_11 = smesh$lol$web$common$helpers.HexEncode($t4_5);
4035          $t11_12 = { $get() { return e.$get().PubKey; }, $set(v) { const obj = e.$get(); obj.PubKey = v; e.$set(obj); } };
4036          $t11_12.$set($t10_11);
4037          $t12_13 = Event$ComputeID(e);
4038          $t13_14 = { $get() { return e.$get().ID; }, $set(v) { const obj = e.$get(); obj.ID = v; e.$set(obj); } };
4039          $t14_15 = $t13_14.$get();
4040          $t15_16 = smesh$lol$web$common$helpers.HexDecode($t14_15);
4041          $t16_17 = $rt.builtin.len($t15_16);
4042          $t17_18 = ($t16_17 !== 32);
4043          if ($t17_18) {
4044            $block = 3; break;
4045          }
4046          else {
4047            $block = 4; break;
4048          }
4049          break;
4050        }
4051        case 3: {
4052          $t18_19 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, undefined, undefined);
4053          $t19_20 = $rt.builtin.clearSlice($t18_19);
4054          $t20_21 = $rt.builtin.sliceSlice($t1_2.$get(), undefined, undefined, undefined);
4055          $t21_22 = $rt.builtin.clearSlice($t20_21);
4056          return false;
4057          break;
4058        }
4059        case 4: {
4060          $t22_23 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, undefined, undefined);
4061          $t23_24 = $rt.builtin.sliceSlice($t1_2.$get(), undefined, undefined, undefined);
4062          $t24_25 = smesh$lol$web$common$jsbridge$schnorr.SignSchnorr($t22_23, $t15_16, $t23_24);
4063          $t25_26 = $t24_25[0];
4064          $t26_27 = $t24_25[1];
4065          $t27_28 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, undefined, undefined);
4066          $t28_29 = $rt.builtin.clearSlice($t27_28);
4067          $t29_30 = $rt.builtin.sliceSlice($t1_2.$get(), undefined, undefined, undefined);
4068          $t30_31 = $rt.builtin.clearSlice($t29_30);
4069          if ($t26_27) {
4070            $block = 6; break;
4071          }
4072          else {
4073            $block = 5; break;
4074          }
4075          break;
4076        }
4077        case 5: {
4078          return false;
4079          break;
4080        }
4081        case 6: {
4082          $t31_32 = smesh$lol$web$common$helpers.HexEncode($t25_26);
4083          $t32_33 = { $get() { return e.$get().Sig; }, $set(v) { const obj = e.$get(); obj.Sig = v; e.$set(obj); } };
4084          $t32_33.$set($t31_32);
4085          return true;
4086          break;
4087        }
4088      }
4089    }
4090  }
4091  
4092  $rt.types.getType('smesh.lol/web/common/nostr.Event')?.methods?.set('Sign', Event$Sign);
4093  export function Event$ToJSON(e) {
4094    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41;
4095    $t0_1 = { $value: $rt.builtin.makeSlice(512, 512, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4096    $t1_2 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, 0, undefined);
4097    $t2_3 = $rt.builtin.appendString($t1_2, '{"id":');
4098    $t3_4 = { $get() { return e.$get().ID; }, $set(v) { const obj = e.$get(); obj.ID = v; e.$set(obj); } };
4099    $t4_5 = $t3_4.$get();
4100    $t5_6 = smesh$lol$web$common$helpers.JsonString($t4_5);
4101    $t6_7 = $rt.builtin.appendString($t2_3, $t5_6);
4102    $t7_8 = $rt.builtin.appendString($t6_7, ',"pubkey":');
4103    $t8_9 = { $get() { return e.$get().PubKey; }, $set(v) { const obj = e.$get(); obj.PubKey = v; e.$set(obj); } };
4104    $t9_10 = $t8_9.$get();
4105    $t10_11 = smesh$lol$web$common$helpers.JsonString($t9_10);
4106    $t11_12 = $rt.builtin.appendString($t7_8, $t10_11);
4107    $t12_13 = $rt.builtin.appendString($t11_12, ',"created_at":');
4108    $t13_14 = { $get() { return e.$get().CreatedAt; }, $set(v) { const obj = e.$get(); obj.CreatedAt = v; e.$set(obj); } };
4109    $t14_15 = $t13_14.$get();
4110    $t15_16 = smesh$lol$web$common$helpers.Itoa($t14_15);
4111    $t16_17 = $rt.builtin.appendString($t12_13, $t15_16);
4112    $t17_18 = $rt.builtin.appendString($t16_17, ',"kind":');
4113    $t18_19 = { $get() { return e.$get().Kind; }, $set(v) { const obj = e.$get(); obj.Kind = v; e.$set(obj); } };
4114    $t19_20 = $t18_19.$get();
4115    $t20_21 = BigInt($t19_20);
4116    $t21_22 = smesh$lol$web$common$helpers.Itoa($t20_21);
4117    $t22_23 = $rt.builtin.appendString($t17_18, $t21_22);
4118    $t23_24 = $rt.builtin.appendString($t22_23, ',"tags":');
4119    $t24_25 = { $get() { return e.$get().Tags; }, $set(v) { const obj = e.$get(); obj.Tags = v; e.$set(obj); } };
4120    $t25_26 = $t24_25.$get();
4121    $t26_27 = serializeTags($t23_24, $t25_26);
4122    $t27_28 = $rt.builtin.appendString($t26_27, ',"content":');
4123    $t28_29 = { $get() { return e.$get().Content; }, $set(v) { const obj = e.$get(); obj.Content = v; e.$set(obj); } };
4124    $t29_30 = $t28_29.$get();
4125    $t30_31 = smesh$lol$web$common$helpers.JsonString($t29_30);
4126    $t31_32 = $rt.builtin.appendString($t27_28, $t30_31);
4127    $t32_33 = $rt.builtin.appendString($t31_32, ',"sig":');
4128    $t33_34 = { $get() { return e.$get().Sig; }, $set(v) { const obj = e.$get(); obj.Sig = v; e.$set(obj); } };
4129    $t34_35 = $t33_34.$get();
4130    $t35_36 = smesh$lol$web$common$helpers.JsonString($t34_35);
4131    $t36_37 = $rt.builtin.appendString($t32_33, $t35_36);
4132    $t37_38 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4133    $t38_39 = $t37_38.$get().addr(0);
4134    $t38_39.$set(125);
4135    $t39_40 = $rt.builtin.sliceSlice($t37_38.$get(), undefined, undefined, undefined);
4136    $t40_41 = $rt.builtin.appendSlice($t36_37, $t39_40);
4137    return $t40_41;
4138  }
4139  
4140  $rt.types.getType('smesh.lol/web/common/nostr.Event')?.methods?.set('ToJSON', Event$ToJSON);
4141  export function Filter$Matches(f, e) {
4142    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60;
4143    let $block = 0;
4144    while (true) {
4145      switch ($block) {
4146        case 0: {
4147          $t0_1 = { $get() { return f.$get().IDs; }, $set(v) { const obj = f.$get(); obj.IDs = v; f.$set(obj); } };
4148          $t1_2 = $t0_1.$get();
4149          $t2_3 = $rt.builtin.len($t1_2);
4150          $t3_4 = ($t2_3 > 0);
4151          if ($t3_4) {
4152            $block = 3; break;
4153          }
4154          else {
4155            $block = 2; break;
4156          }
4157          break;
4158        }
4159        case 1: {
4160          return false;
4161          break;
4162        }
4163        case 2: {
4164          $t4_5 = { $get() { return f.$get().Authors; }, $set(v) { const obj = f.$get(); obj.Authors = v; f.$set(obj); } };
4165          $t5_6 = $t4_5.$get();
4166          $t6_7 = $rt.builtin.len($t5_6);
4167          $t7_8 = ($t6_7 > 0);
4168          if ($t7_8) {
4169            $block = 6; break;
4170          }
4171          else {
4172            $block = 5; break;
4173          }
4174          break;
4175        }
4176        case 3: {
4177          $t8_9 = { $get() { return f.$get().IDs; }, $set(v) { const obj = f.$get(); obj.IDs = v; f.$set(obj); } };
4178          $t9_10 = $t8_9.$get();
4179          $t10_11 = { $get() { return e.$get().ID; }, $set(v) { const obj = e.$get(); obj.ID = v; e.$set(obj); } };
4180          $t11_12 = $t10_11.$get();
4181          $t12_13 = containsStr($t9_10, $t11_12);
4182          if ($t12_13) {
4183            $block = 2; break;
4184          }
4185          else {
4186            $block = 1; break;
4187          }
4188          break;
4189        }
4190        case 4: {
4191          return false;
4192          break;
4193        }
4194        case 5: {
4195          $t13_14 = { $get() { return f.$get().Kinds; }, $set(v) { const obj = f.$get(); obj.Kinds = v; f.$set(obj); } };
4196          $t14_15 = $t13_14.$get();
4197          $t15_16 = $rt.builtin.len($t14_15);
4198          $t16_17 = ($t15_16 > 0);
4199          if ($t16_17) {
4200            $block = 9; break;
4201          }
4202          else {
4203            $block = 8; break;
4204          }
4205          break;
4206        }
4207        case 6: {
4208          $t17_18 = { $get() { return f.$get().Authors; }, $set(v) { const obj = f.$get(); obj.Authors = v; f.$set(obj); } };
4209          $t18_19 = $t17_18.$get();
4210          $t19_20 = { $get() { return e.$get().PubKey; }, $set(v) { const obj = e.$get(); obj.PubKey = v; e.$set(obj); } };
4211          $t20_21 = $t19_20.$get();
4212          $t21_22 = containsStr($t18_19, $t20_21);
4213          if ($t21_22) {
4214            $block = 5; break;
4215          }
4216          else {
4217            $block = 4; break;
4218          }
4219          break;
4220        }
4221        case 7: {
4222          return false;
4223          break;
4224        }
4225        case 8: {
4226          $t22_23 = { $get() { return f.$get().Since; }, $set(v) { const obj = f.$get(); obj.Since = v; f.$set(obj); } };
4227          $t23_24 = $t22_23.$get();
4228          $t24_25 = ($t23_24 > 0n);
4229          if ($t24_25) {
4230            $block = 12; break;
4231          }
4232          else {
4233            $block = 11; break;
4234          }
4235          break;
4236        }
4237        case 9: {
4238          $t25_26 = { $get() { return f.$get().Kinds; }, $set(v) { const obj = f.$get(); obj.Kinds = v; f.$set(obj); } };
4239          $t26_27 = $t25_26.$get();
4240          $t27_28 = { $get() { return e.$get().Kind; }, $set(v) { const obj = e.$get(); obj.Kind = v; e.$set(obj); } };
4241          $t28_29 = $t27_28.$get();
4242          $t29_30 = containsKind($t26_27, $t28_29);
4243          if ($t29_30) {
4244            $block = 8; break;
4245          }
4246          else {
4247            $block = 7; break;
4248          }
4249          break;
4250        }
4251        case 10: {
4252          return false;
4253          break;
4254        }
4255        case 11: {
4256          $t30_31 = { $get() { return f.$get().Until; }, $set(v) { const obj = f.$get(); obj.Until = v; f.$set(obj); } };
4257          $t31_32 = $t30_31.$get();
4258          $t32_33 = ($t31_32 > 0n);
4259          if ($t32_33) {
4260            $block = 15; break;
4261          }
4262          else {
4263            $block = 14; break;
4264          }
4265          break;
4266        }
4267        case 12: {
4268          $t33_34 = { $get() { return e.$get().CreatedAt; }, $set(v) { const obj = e.$get(); obj.CreatedAt = v; e.$set(obj); } };
4269          $t34_35 = $t33_34.$get();
4270          $t35_36 = { $get() { return f.$get().Since; }, $set(v) { const obj = f.$get(); obj.Since = v; f.$set(obj); } };
4271          $t36_37 = $t35_36.$get();
4272          $t37_38 = ($t34_35 < $t36_37);
4273          if ($t37_38) {
4274            $block = 10; break;
4275          }
4276          else {
4277            $block = 11; break;
4278          }
4279          break;
4280        }
4281        case 13: {
4282          return false;
4283          break;
4284        }
4285        case 14: {
4286          $t38_39 = { $get() { return f.$get().Tags; }, $set(v) { const obj = f.$get(); obj.Tags = v; f.$set(obj); } };
4287          $t39_40 = $t38_39.$get();
4288          $t40_41 = ($t39_40 !== null);
4289          if ($t40_41) {
4290            $block = 16; break;
4291          }
4292          else {
4293            $block = 17; break;
4294          }
4295          break;
4296        }
4297        case 15: {
4298          $t41_42 = { $get() { return e.$get().CreatedAt; }, $set(v) { const obj = e.$get(); obj.CreatedAt = v; e.$set(obj); } };
4299          $t42_43 = $t41_42.$get();
4300          $t43_44 = { $get() { return f.$get().Until; }, $set(v) { const obj = f.$get(); obj.Until = v; f.$set(obj); } };
4301          $t44_45 = $t43_44.$get();
4302          $t45_46 = ($t42_43 > $t44_45);
4303          if ($t45_46) {
4304            $block = 13; break;
4305          }
4306          else {
4307            $block = 14; break;
4308          }
4309          break;
4310        }
4311        case 16: {
4312          $t46_47 = { $get() { return f.$get().Tags; }, $set(v) { const obj = f.$get(); obj.Tags = v; f.$set(obj); } };
4313          $t47_48 = $t46_47.$get();
4314          $t48_49 = { $entries: [...$t47_48.entries()], $pos: 0, next() { if (this.$pos >= this.$entries.length) return [false, null, null]; const [k, v] = this.$entries[this.$pos++]; return [true, k, v]; } };
4315          $block = 18; break;
4316          break;
4317        }
4318        case 17: {
4319          return true;
4320          break;
4321        }
4322        case 18: {
4323          $t49_50 = $t48_49.next();
4324          $t50_51 = $t49_50[0];
4325          if ($t50_51) {
4326            $block = 19; break;
4327          }
4328          else {
4329            $block = 17; break;
4330          }
4331          break;
4332        }
4333        case 19: {
4334          $t51_52 = $t49_50[1];
4335          $t52_53 = $t49_50[2];
4336          $t53_54 = $rt.builtin.len($t51_52);
4337          $t54_55 = ($t53_54 < 2);
4338          if ($t54_55) {
4339            $block = 18; break;
4340          }
4341          else {
4342            $block = 21; break;
4343          }
4344          break;
4345        }
4346        case 20: {
4347          $t55_56 = $rt.builtin.stringSlice($t51_52, 1, undefined);
4348          $t56_57 = eventHasTagValue(e, $t55_56, $t52_53);
4349          if ($t56_57) {
4350            $block = 18; break;
4351          }
4352          else {
4353            $block = 22; break;
4354          }
4355          break;
4356        }
4357        case 21: {
4358          $t57_58 = $t51_52.addr(0);
4359          $t58_59 = $t57_58.$get();
4360          $t59_60 = ($t58_59 !== 35);
4361          if ($t59_60) {
4362            $block = 18; break;
4363          }
4364          else {
4365            $block = 20; break;
4366          }
4367          break;
4368        }
4369        case 22: {
4370          return false;
4371          break;
4372        }
4373      }
4374    }
4375  }
4376  
4377  $rt.types.getType('smesh.lol/web/common/nostr.Filter')?.methods?.set('Matches', Filter$Matches);
4378  export function Filter$Serialize(f) {
4379    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68, $t68_69, $t69_70, $t70_71, $t71_72, $t72_73, $t73_74, $t74_75, $t75_76, $t76_77, $t77_78, $t78_79, $t79_80, $t80_81, $t81_82, $t82_83, $t83_84, $t84_85, $t85_86, $t86_87, $t87_88, $t88_89, $t89_90, $t90_91, $t91_92, $t92_93, $t93_94, $t94_95, $t95_96, $t96_97, $t97_98, $t98_99, $t99_100, $t100_101, $t101_102, $t102_103, $t103_104, $t104_105, $t105_106, $t106_107, $t107_108, $t108_109, $t109_110, $t110_111, $t111_112, $t112_113, $t113_114, $t114_115, $t115_116, $t116_117, $t117_118, $t118_119;
4380    let $block = 0;
4381    while (true) {
4382      switch ($block) {
4383        case 0: {
4384          $t0_1 = { $value: $rt.builtin.makeSlice(128, 128, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4385          $t1_2 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, 0, undefined);
4386          $t2_3 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4387          $t3_4 = $t2_3.$get().addr(0);
4388          $t3_4.$set(123);
4389          $t4_5 = $rt.builtin.sliceSlice($t2_3.$get(), undefined, undefined, undefined);
4390          $t5_6 = $rt.builtin.appendSlice($t1_2, $t4_5);
4391          $t6_7 = { $value: false, $get() { return this.$value; }, $set(v) { this.$value = v; } };
4392          $t6_7.$set(true);
4393          $t7_8 = { $get() { return f.$get().IDs; }, $set(v) { const obj = f.$get(); obj.IDs = v; f.$set(obj); } };
4394          $t8_9 = $t7_8.$get();
4395          $t9_10 = $rt.builtin.len($t8_9);
4396          $t10_11 = ($t9_10 > 0);
4397          if ($t10_11) {
4398            $block = 1; break;
4399          }
4400          else {
4401            $t16_17 = $t5_6;
4402            $block = 2; break;
4403          }
4404          break;
4405        }
4406        case 1: {
4407          $t11_12 = appendField($t5_6, $t6_7);
4408          $t12_13 = $rt.builtin.appendString($t11_12, '"ids":');
4409          $t13_14 = { $get() { return f.$get().IDs; }, $set(v) { const obj = f.$get(); obj.IDs = v; f.$set(obj); } };
4410          $t14_15 = $t13_14.$get();
4411          $t15_16 = appendStrArray($t12_13, $t14_15);
4412          $t16_17 = $t15_16;
4413          $block = 2; break;
4414          break;
4415        }
4416        case 2: {
4417          $t17_18 = { $get() { return f.$get().Authors; }, $set(v) { const obj = f.$get(); obj.Authors = v; f.$set(obj); } };
4418          $t18_19 = $t17_18.$get();
4419          $t19_20 = $rt.builtin.len($t18_19);
4420          $t20_21 = ($t19_20 > 0);
4421          if ($t20_21) {
4422            $block = 3; break;
4423          }
4424          else {
4425            $t26_27 = $t16_17;
4426            $block = 4; break;
4427          }
4428          break;
4429        }
4430        case 3: {
4431          $t21_22 = appendField($t16_17, $t6_7);
4432          $t22_23 = $rt.builtin.appendString($t21_22, '"authors":');
4433          $t23_24 = { $get() { return f.$get().Authors; }, $set(v) { const obj = f.$get(); obj.Authors = v; f.$set(obj); } };
4434          $t24_25 = $t23_24.$get();
4435          $t25_26 = appendStrArray($t22_23, $t24_25);
4436          $t26_27 = $t25_26;
4437          $block = 4; break;
4438          break;
4439        }
4440        case 4: {
4441          $t27_28 = { $get() { return f.$get().Kinds; }, $set(v) { const obj = f.$get(); obj.Kinds = v; f.$set(obj); } };
4442          $t28_29 = $t27_28.$get();
4443          $t29_30 = $rt.builtin.len($t28_29);
4444          $t30_31 = ($t29_30 > 0);
4445          if ($t30_31) {
4446            $block = 5; break;
4447          }
4448          else {
4449            $t36_37 = $t26_27;
4450            $block = 6; break;
4451          }
4452          break;
4453        }
4454        case 5: {
4455          $t31_32 = appendField($t26_27, $t6_7);
4456          $t32_33 = $rt.builtin.appendString($t31_32, '"kinds":[');
4457          $t33_34 = { $get() { return f.$get().Kinds; }, $set(v) { const obj = f.$get(); obj.Kinds = v; f.$set(obj); } };
4458          $t34_35 = $t33_34.$get();
4459          $t35_36 = $rt.builtin.len($t34_35);
4460          $t40_41 = $t32_33;
4461          $t41_42 = -1;
4462          $block = 7; break;
4463          break;
4464        }
4465        case 6: {
4466          $t37_38 = { $get() { return f.$get().Tags; }, $set(v) { const obj = f.$get(); obj.Tags = v; f.$set(obj); } };
4467          $t38_39 = $t37_38.$get();
4468          $t39_40 = ($t38_39 !== null);
4469          if ($t39_40) {
4470            $block = 12; break;
4471          }
4472          else {
4473            $t61_62 = $t36_37;
4474            $block = 13; break;
4475          }
4476          break;
4477        }
4478        case 7: {
4479          $t42_43 = ($t41_42 + 1);
4480          $t43_44 = ($t42_43 < $t35_36);
4481          if ($t43_44) {
4482            $block = 8; break;
4483          }
4484          else {
4485            $block = 9; break;
4486          }
4487          break;
4488        }
4489        case 8: {
4490          $t44_45 = $t34_35.addr($t42_43);
4491          $t45_46 = $t44_45.$get();
4492          $t46_47 = ($t42_43 > 0);
4493          if ($t46_47) {
4494            $block = 10; break;
4495          }
4496          else {
4497            $t55_56 = $t40_41;
4498            $block = 11; break;
4499          }
4500          break;
4501        }
4502        case 9: {
4503          $t47_48 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4504          $t48_49 = $t47_48.$get().addr(0);
4505          $t48_49.$set(93);
4506          $t49_50 = $rt.builtin.sliceSlice($t47_48.$get(), undefined, undefined, undefined);
4507          $t50_51 = $rt.builtin.appendSlice($t40_41, $t49_50);
4508          $t36_37 = $t50_51;
4509          $block = 6; break;
4510          break;
4511        }
4512        case 10: {
4513          $t51_52 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4514          $t52_53 = $t51_52.$get().addr(0);
4515          $t52_53.$set(44);
4516          $t53_54 = $rt.builtin.sliceSlice($t51_52.$get(), undefined, undefined, undefined);
4517          $t54_55 = $rt.builtin.appendSlice($t40_41, $t53_54);
4518          $t55_56 = $t54_55;
4519          $block = 11; break;
4520          break;
4521        }
4522        case 11: {
4523          $t56_57 = u32ToStr($t45_46);
4524          $t57_58 = $rt.builtin.appendString($t55_56, $t56_57);
4525          $t40_41 = $t57_58;
4526          $t41_42 = $t42_43;
4527          $block = 7; break;
4528          break;
4529        }
4530        case 12: {
4531          $t58_59 = { $get() { return f.$get().Tags; }, $set(v) { const obj = f.$get(); obj.Tags = v; f.$set(obj); } };
4532          $t59_60 = $t58_59.$get();
4533          $t60_61 = { $entries: [...$t59_60.entries()], $pos: 0, next() { if (this.$pos >= this.$entries.length) return [false, null, null]; const [k, v] = this.$entries[this.$pos++]; return [true, k, v]; } };
4534          $t65_66 = $t36_37;
4535          $block = 14; break;
4536          break;
4537        }
4538        case 13: {
4539          $t62_63 = { $get() { return f.$get().Since; }, $set(v) { const obj = f.$get(); obj.Since = v; f.$set(obj); } };
4540          $t63_64 = $t62_63.$get();
4541          $t64_65 = ($t63_64 > 0n);
4542          if ($t64_65) {
4543            $block = 16; break;
4544          }
4545          else {
4546            $t84_85 = $t61_62;
4547            $block = 17; break;
4548          }
4549          break;
4550        }
4551        case 14: {
4552          $t66_67 = $t60_61.next();
4553          $t67_68 = $t66_67[0];
4554          if ($t67_68) {
4555            $block = 15; break;
4556          }
4557          else {
4558            $t61_62 = $t65_66;
4559            $block = 13; break;
4560          }
4561          break;
4562        }
4563        case 15: {
4564          $t68_69 = $t66_67[1];
4565          $t69_70 = $t66_67[2];
4566          $t70_71 = appendField($t65_66, $t6_7);
4567          $t71_72 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4568          $t72_73 = $t71_72.$get().addr(0);
4569          $t72_73.$set(34);
4570          $t73_74 = $rt.builtin.sliceSlice($t71_72.$get(), undefined, undefined, undefined);
4571          $t74_75 = $rt.builtin.appendSlice($t70_71, $t73_74);
4572          $t75_76 = $rt.builtin.appendString($t74_75, $t68_69);
4573          $t76_77 = $rt.builtin.appendString($t75_76, '":');
4574          $t77_78 = appendStrArray($t76_77, $t69_70);
4575          $t65_66 = $t77_78;
4576          $block = 14; break;
4577          break;
4578        }
4579        case 16: {
4580          $t78_79 = appendField($t61_62, $t6_7);
4581          $t79_80 = $rt.builtin.appendString($t78_79, '"since":');
4582          $t80_81 = { $get() { return f.$get().Since; }, $set(v) { const obj = f.$get(); obj.Since = v; f.$set(obj); } };
4583          $t81_82 = $t80_81.$get();
4584          $t82_83 = i64ToStr($t81_82);
4585          $t83_84 = $rt.builtin.appendString($t79_80, $t82_83);
4586          $t84_85 = $t83_84;
4587          $block = 17; break;
4588          break;
4589        }
4590        case 17: {
4591          $t85_86 = { $get() { return f.$get().Until; }, $set(v) { const obj = f.$get(); obj.Until = v; f.$set(obj); } };
4592          $t86_87 = $t85_86.$get();
4593          $t87_88 = ($t86_87 > 0n);
4594          if ($t87_88) {
4595            $block = 18; break;
4596          }
4597          else {
4598            $t94_95 = $t84_85;
4599            $block = 19; break;
4600          }
4601          break;
4602        }
4603        case 18: {
4604          $t88_89 = appendField($t84_85, $t6_7);
4605          $t89_90 = $rt.builtin.appendString($t88_89, '"until":');
4606          $t90_91 = { $get() { return f.$get().Until; }, $set(v) { const obj = f.$get(); obj.Until = v; f.$set(obj); } };
4607          $t91_92 = $t90_91.$get();
4608          $t92_93 = i64ToStr($t91_92);
4609          $t93_94 = $rt.builtin.appendString($t89_90, $t92_93);
4610          $t94_95 = $t93_94;
4611          $block = 19; break;
4612          break;
4613        }
4614        case 19: {
4615          $t95_96 = { $get() { return f.$get().Limit; }, $set(v) { const obj = f.$get(); obj.Limit = v; f.$set(obj); } };
4616          $t96_97 = $t95_96.$get();
4617          $t97_98 = ($t96_97 > 0);
4618          if ($t97_98) {
4619            $block = 20; break;
4620          }
4621          else {
4622            $t104_105 = $t94_95;
4623            $block = 21; break;
4624          }
4625          break;
4626        }
4627        case 20: {
4628          $t98_99 = appendField($t94_95, $t6_7);
4629          $t99_100 = $rt.builtin.appendString($t98_99, '"limit":');
4630          $t100_101 = { $get() { return f.$get().Limit; }, $set(v) { const obj = f.$get(); obj.Limit = v; f.$set(obj); } };
4631          $t101_102 = $t100_101.$get();
4632          $t102_103 = u32ToStr($t101_102);
4633          $t103_104 = $rt.builtin.appendString($t99_100, $t102_103);
4634          $t104_105 = $t103_104;
4635          $block = 21; break;
4636          break;
4637        }
4638        case 21: {
4639          $t105_106 = { $get() { return f.$get().Proxy; }, $set(v) { const obj = f.$get(); obj.Proxy = v; f.$set(obj); } };
4640          $t106_107 = $t105_106.$get();
4641          $t107_108 = $rt.builtin.len($t106_107);
4642          $t108_109 = ($t107_108 > 0);
4643          if ($t108_109) {
4644            $block = 22; break;
4645          }
4646          else {
4647            $t114_115 = $t104_105;
4648            $block = 23; break;
4649          }
4650          break;
4651        }
4652        case 22: {
4653          $t109_110 = appendField($t104_105, $t6_7);
4654          $t110_111 = $rt.builtin.appendString($t109_110, '"_proxy":');
4655          $t111_112 = { $get() { return f.$get().Proxy; }, $set(v) { const obj = f.$get(); obj.Proxy = v; f.$set(obj); } };
4656          $t112_113 = $t111_112.$get();
4657          $t113_114 = appendStrArray($t110_111, $t112_113);
4658          $t114_115 = $t113_114;
4659          $block = 23; break;
4660          break;
4661        }
4662        case 23: {
4663          $t115_116 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4664          $t116_117 = $t115_116.$get().addr(0);
4665          $t116_117.$set(125);
4666          $t117_118 = $rt.builtin.sliceSlice($t115_116.$get(), undefined, undefined, undefined);
4667          $t118_119 = $rt.builtin.appendSlice($t114_115, $t117_118);
4668          return $t118_119;
4669          break;
4670        }
4671      }
4672    }
4673  }
4674  
4675  $rt.types.getType('smesh.lol/web/common/nostr.Filter')?.methods?.set('Serialize', Filter$Serialize);
4676  export function Tag$Key(t) {
4677    let $t0_1, $t1_2, $t2_3, $t3_4;
4678    let $block = 0;
4679    while (true) {
4680      switch ($block) {
4681        case 0: {
4682          $t0_1 = $rt.builtin.len(t);
4683          $t1_2 = ($t0_1 > 0);
4684          if ($t1_2) {
4685            $block = 1; break;
4686          }
4687          else {
4688            $block = 2; break;
4689          }
4690          break;
4691        }
4692        case 1: {
4693          $t2_3 = t.addr(0);
4694          $t3_4 = $t2_3.$get();
4695          return $t3_4;
4696          break;
4697        }
4698        case 2: {
4699          return '';
4700          break;
4701        }
4702      }
4703    }
4704  }
4705  
4706  $rt.types.getType('smesh.lol/web/common/nostr.Tag')?.methods?.set('Key', Tag$Key);
4707  export function Tag$Marker(t) {
4708    let $t0_1, $t1_2, $t2_3, $t3_4;
4709    let $block = 0;
4710    while (true) {
4711      switch ($block) {
4712        case 0: {
4713          $t0_1 = $rt.builtin.len(t);
4714          $t1_2 = ($t0_1 > 3);
4715          if ($t1_2) {
4716            $block = 1; break;
4717          }
4718          else {
4719            $block = 2; break;
4720          }
4721          break;
4722        }
4723        case 1: {
4724          $t2_3 = t.addr(3);
4725          $t3_4 = $t2_3.$get();
4726          return $t3_4;
4727          break;
4728        }
4729        case 2: {
4730          return '';
4731          break;
4732        }
4733      }
4734    }
4735  }
4736  
4737  $rt.types.getType('smesh.lol/web/common/nostr.Tag')?.methods?.set('Marker', Tag$Marker);
4738  export function Tag$Relay(t) {
4739    let $t0_1, $t1_2, $t2_3, $t3_4;
4740    let $block = 0;
4741    while (true) {
4742      switch ($block) {
4743        case 0: {
4744          $t0_1 = $rt.builtin.len(t);
4745          $t1_2 = ($t0_1 > 2);
4746          if ($t1_2) {
4747            $block = 1; break;
4748          }
4749          else {
4750            $block = 2; break;
4751          }
4752          break;
4753        }
4754        case 1: {
4755          $t2_3 = t.addr(2);
4756          $t3_4 = $t2_3.$get();
4757          return $t3_4;
4758          break;
4759        }
4760        case 2: {
4761          return '';
4762          break;
4763        }
4764      }
4765    }
4766  }
4767  
4768  $rt.types.getType('smesh.lol/web/common/nostr.Tag')?.methods?.set('Relay', Tag$Relay);
4769  export function Tag$Value(t) {
4770    let $t0_1, $t1_2, $t2_3, $t3_4;
4771    let $block = 0;
4772    while (true) {
4773      switch ($block) {
4774        case 0: {
4775          $t0_1 = $rt.builtin.len(t);
4776          $t1_2 = ($t0_1 > 1);
4777          if ($t1_2) {
4778            $block = 1; break;
4779          }
4780          else {
4781            $block = 2; break;
4782          }
4783          break;
4784        }
4785        case 1: {
4786          $t2_3 = t.addr(1);
4787          $t3_4 = $t2_3.$get();
4788          return $t3_4;
4789          break;
4790        }
4791        case 2: {
4792          return '';
4793          break;
4794        }
4795      }
4796    }
4797  }
4798  
4799  $rt.types.getType('smesh.lol/web/common/nostr.Tag')?.methods?.set('Value', Tag$Value);
4800  export function Tags$ContainsValue(ts, key, value) {
4801    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14;
4802    let $block = 0;
4803    while (true) {
4804      switch ($block) {
4805        case 0: {
4806          $t0_1 = $rt.builtin.len(ts);
4807          $t1_2 = -1;
4808          $block = 1; break;
4809          break;
4810        }
4811        case 1: {
4812          $t2_3 = ($t1_2 + 1);
4813          $t3_4 = ($t2_3 < $t0_1);
4814          if ($t3_4) {
4815            $block = 2; break;
4816          }
4817          else {
4818            $block = 3; break;
4819          }
4820          break;
4821        }
4822        case 2: {
4823          $t4_5 = ts.addr($t2_3);
4824          $t5_6 = $t4_5.$get();
4825          $t6_7 = $rt.builtin.len($t5_6);
4826          $t7_8 = ($t6_7 > 1);
4827          if ($t7_8) {
4828            $block = 6; break;
4829          }
4830          else {
4831            $t1_2 = $t2_3;
4832            $block = 1; break;
4833          }
4834          break;
4835        }
4836        case 3: {
4837          return false;
4838          break;
4839        }
4840        case 4: {
4841          return true;
4842          break;
4843        }
4844        case 5: {
4845          $t8_9 = $t5_6.addr(1);
4846          $t9_10 = $t8_9.$get();
4847          $t10_11 = $rt.builtin.stringEqual($t9_10, value);
4848          if ($t10_11) {
4849            $block = 4; break;
4850          }
4851          else {
4852            $t1_2 = $t2_3;
4853            $block = 1; break;
4854          }
4855          break;
4856        }
4857        case 6: {
4858          $t11_12 = $t5_6.addr(0);
4859          $t12_13 = $t11_12.$get();
4860          $t13_14 = $rt.builtin.stringEqual($t12_13, key);
4861          if ($t13_14) {
4862            $block = 5; break;
4863          }
4864          else {
4865            $t1_2 = $t2_3;
4866            $block = 1; break;
4867          }
4868          break;
4869        }
4870      }
4871    }
4872  }
4873  
4874  $rt.types.getType('smesh.lol/web/common/nostr.Tags')?.methods?.set('ContainsValue', Tags$ContainsValue);
4875  export function Tags$GetAll(ts, key) {
4876    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16;
4877    let $block = 0;
4878    while (true) {
4879      switch ($block) {
4880        case 0: {
4881          $t0_1 = $rt.builtin.len(ts);
4882          $t1_2 = null;
4883          $t2_3 = -1;
4884          $block = 1; break;
4885          break;
4886        }
4887        case 1: {
4888          $t3_4 = ($t2_3 + 1);
4889          $t4_5 = ($t3_4 < $t0_1);
4890          if ($t4_5) {
4891            $block = 2; break;
4892          }
4893          else {
4894            $block = 3; break;
4895          }
4896          break;
4897        }
4898        case 2: {
4899          $t5_6 = ts.addr($t3_4);
4900          $t6_7 = $t5_6.$get();
4901          $t7_8 = $rt.builtin.len($t6_7);
4902          $t8_9 = ($t7_8 > 0);
4903          if ($t8_9) {
4904            $block = 5; break;
4905          }
4906          else {
4907            let $phi0 = $t1_2;
4908            let $phi1 = $t3_4;
4909            $t1_2 = $phi0;
4910            $t2_3 = $phi1;
4911            $block = 1; break;
4912          }
4913          break;
4914        }
4915        case 3: {
4916          return $t1_2;
4917          break;
4918        }
4919        case 4: {
4920          $t9_10 = { $value: $rt.builtin.makeSlice(1, 1, null), $get() { return this.$value; }, $set(v) { this.$value = v; } };
4921          $t10_11 = $t9_10.$get().addr(0);
4922          $t10_11.$set($t6_7);
4923          $t11_12 = $rt.builtin.sliceSlice($t9_10.$get(), undefined, undefined, undefined);
4924          $t12_13 = $rt.builtin.appendSlice($t1_2, $t11_12);
4925          $t1_2 = $t12_13;
4926          $t2_3 = $t3_4;
4927          $block = 1; break;
4928          break;
4929        }
4930        case 5: {
4931          $t13_14 = $t6_7.addr(0);
4932          $t14_15 = $t13_14.$get();
4933          $t15_16 = $rt.builtin.stringEqual($t14_15, key);
4934          if ($t15_16) {
4935            $block = 4; break;
4936          }
4937          else {
4938            let $phi0 = $t1_2;
4939            let $phi1 = $t3_4;
4940            $t1_2 = $phi0;
4941            $t2_3 = $phi1;
4942            $block = 1; break;
4943          }
4944          break;
4945        }
4946      }
4947    }
4948  }
4949  
4950  $rt.types.getType('smesh.lol/web/common/nostr.Tags')?.methods?.set('GetAll', Tags$GetAll);
4951  export function Tags$GetD(ts) {
4952    let $t0_1, $t1_2, $t2_3;
4953    let $block = 0;
4954    while (true) {
4955      switch ($block) {
4956        case 0: {
4957          $t0_1 = Tags$GetFirst(ts, 'd');
4958          $t1_2 = ($t0_1 !== null);
4959          if ($t1_2) {
4960            $block = 1; break;
4961          }
4962          else {
4963            $block = 2; break;
4964          }
4965          break;
4966        }
4967        case 1: {
4968          $t2_3 = Tag$Value($t0_1);
4969          return $t2_3;
4970          break;
4971        }
4972        case 2: {
4973          return '';
4974          break;
4975        }
4976      }
4977    }
4978  }
4979  
4980  $rt.types.getType('smesh.lol/web/common/nostr.Tags')?.methods?.set('GetD', Tags$GetD);
4981  export function Tags$GetFirst(ts, key) {
4982    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11;
4983    let $block = 0;
4984    while (true) {
4985      switch ($block) {
4986        case 0: {
4987          $t0_1 = $rt.builtin.len(ts);
4988          $t1_2 = -1;
4989          $block = 1; break;
4990          break;
4991        }
4992        case 1: {
4993          $t2_3 = ($t1_2 + 1);
4994          $t3_4 = ($t2_3 < $t0_1);
4995          if ($t3_4) {
4996            $block = 2; break;
4997          }
4998          else {
4999            $block = 3; break;
5000          }
5001          break;
5002        }
5003        case 2: {
5004          $t4_5 = ts.addr($t2_3);
5005          $t5_6 = $t4_5.$get();
5006          $t6_7 = $rt.builtin.len($t5_6);
5007          $t7_8 = ($t6_7 > 0);
5008          if ($t7_8) {
5009            $block = 5; break;
5010          }
5011          else {
5012            $t1_2 = $t2_3;
5013            $block = 1; break;
5014          }
5015          break;
5016        }
5017        case 3: {
5018          return null;
5019          break;
5020        }
5021        case 4: {
5022          return $t5_6;
5023          break;
5024        }
5025        case 5: {
5026          $t8_9 = $t5_6.addr(0);
5027          $t9_10 = $t8_9.$get();
5028          $t10_11 = $rt.builtin.stringEqual($t9_10, key);
5029          if ($t10_11) {
5030            $block = 4; break;
5031          }
5032          else {
5033            $t1_2 = $t2_3;
5034            $block = 1; break;
5035          }
5036          break;
5037        }
5038      }
5039    }
5040  }
5041  
5042  $rt.types.getType('smesh.lol/web/common/nostr.Tags')?.methods?.set('GetFirst', Tags$GetFirst);
5043