@swmansion/argent 0.22.1 → 0.22.2-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -373,6 +373,18 @@ var init_event_emitter = __esm({
373
373
  this.listeners.get(event2).add(listener);
374
374
  return this;
375
375
  }
376
+ /**
377
+ * @public
378
+ * Every caller is in another workspace — tool-server (the variant-proposal
379
+ * store, the chromium server's frame/fps and network listeners, both
380
+ * js-runtime-debugger blueprints) and telemetry (`registry-listener`, which
381
+ * detaches from `Registry.events`) — and the dead-code gate runs against an
382
+ * unbuilt tree, where a cross-workspace edge cannot form. See `knip.jsonc`.
383
+ *
384
+ * To re-audit whether this tag is still earned, rename the member and read
385
+ * the `Property 'off' does not exist` errors `tsc` reports. Do not grep
386
+ * `.off(`: most hits in this repo are Node `EventEmitter`s.
387
+ */
376
388
  off(event2, listener) {
377
389
  this.listeners.get(event2)?.delete(listener);
378
390
  return this;
@@ -434,6 +446,19 @@ var init_artifacts = __esm({
434
446
  };
435
447
  ArtifactStore = class {
436
448
  entries = /* @__PURE__ */ new Map();
449
+ /**
450
+ * @public
451
+ * Every caller is in tool-server — `tools/flows/flow-visual`,
452
+ * `tools/screenshot`, `tools/screenshot-diff`, `tools/screen-recording-stop`,
453
+ * both `tools/profiler/native-profiler` stop/analyze handlers and
454
+ * `tools/profiler/react/react-profiler-analyze` — and the dead-code gate runs
455
+ * against an unbuilt tree, where a cross-workspace edge cannot form. See
456
+ * `knip.jsonc`.
457
+ *
458
+ * To re-audit whether this tag is still earned, rename the member and read
459
+ * the `Property 'register' does not exist` errors `tsc --build` reports. Do
460
+ * not grep `.register(`: `registerTool` / `registerBlueprint` swamp the hits.
461
+ */
437
462
  async register(opts) {
438
463
  const { hostPath, kind } = opts;
439
464
  const filename = opts.filename ?? (0, import_node_path.basename)(hostPath);
@@ -464,9 +489,21 @@ var init_artifacts = __esm({
464
489
  if (opts.saveDir) handle.saveDir = opts.saveDir;
465
490
  return handle;
466
491
  }
492
+ /**
493
+ * @public
494
+ * The only caller is the tool-server `GET /artifacts/:id` route, and the
495
+ * dead-code gate runs against an unbuilt tree, where a cross-workspace edge
496
+ * cannot form. See `knip.jsonc`.
497
+ */
467
498
  get(id) {
468
499
  return this.entries.get(id);
469
500
  }
501
+ /**
502
+ * @public
503
+ * The only caller is the tool-server `/artifacts` route, and the dead-code
504
+ * gate runs against an unbuilt tree, where a cross-workspace edge cannot
505
+ * form. See `knip.jsonc`.
506
+ */
470
507
  list() {
471
508
  return [...this.entries.entries()].map(([id, entry]) => ({
472
509
  id,
@@ -893,11 +930,9 @@ var init_errors = __esm({
893
930
  FAILURE_SIGNAL_NAME_SET = new Set(FAILURE_SIGNAL_NAMES);
894
931
  FAILURE_SPAWN_CODE_SET = new Set(FAILURE_SPAWN_CODES);
895
932
  ServiceNotFoundError = class extends Error {
896
- serviceId;
897
933
  constructor(serviceId) {
898
934
  super(`Service "${serviceId}" not found`);
899
935
  this.name = "ServiceNotFoundError";
900
- this.serviceId = serviceId;
901
936
  withFailureSignal(this, {
902
937
  error_code: FAILURE_CODES.REGISTRY_SERVICE_NOT_FOUND,
903
938
  failure_stage: "registry_resolve_service",
@@ -907,11 +942,9 @@ var init_errors = __esm({
907
942
  }
908
943
  };
909
944
  ServiceInitializationError = class extends Error {
910
- serviceId;
911
945
  constructor(serviceId, message, options) {
912
946
  super(`[${serviceId}] ${message}`, options);
913
947
  this.name = "ServiceInitializationError";
914
- this.serviceId = serviceId;
915
948
  withFailureSignal(
916
949
  this,
917
950
  getFailureSignalOrFallback(options?.cause, {
@@ -924,6 +957,13 @@ var init_errors = __esm({
924
957
  }
925
958
  };
926
959
  ToolNotFoundError = class extends Error {
960
+ /**
961
+ * @public
962
+ * Knip's `classMembers` pass is workspace-local, so it cannot see the caller:
963
+ * `flow-add-step` keys `isToolNotFound` on this alongside the error identity,
964
+ * so a tool that ran and reported its own "not found" is not read as the
965
+ * command being absent.
966
+ */
927
967
  toolId;
928
968
  constructor(toolId) {
929
969
  super(`Tool "${toolId}" not found`);
@@ -938,11 +978,9 @@ var init_errors = __esm({
938
978
  }
939
979
  };
940
980
  ToolExecutionError = class extends Error {
941
- toolId;
942
981
  constructor(toolId, message, options) {
943
982
  super(`[Tool:${toolId}] ${message}`, options);
944
983
  this.name = "ToolExecutionError";
945
- this.toolId = toolId;
946
984
  withFailureSignal(
947
985
  this,
948
986
  getFailureSignalOrFallback(options?.cause, {
@@ -80506,1909 +80544,6 @@ var require_bunyan = __commonJS({
80506
80544
  }
80507
80545
  });
80508
80546
 
80509
- // ../../node_modules/source-map-js/lib/base64.js
80510
- var require_base64 = __commonJS({
80511
- "../../node_modules/source-map-js/lib/base64.js"(exports2) {
80512
- var intToCharMap = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");
80513
- exports2.encode = function(number4) {
80514
- if (0 <= number4 && number4 < intToCharMap.length) {
80515
- return intToCharMap[number4];
80516
- }
80517
- throw new TypeError("Must be between 0 and 63: " + number4);
80518
- };
80519
- exports2.decode = function(charCode) {
80520
- var bigA = 65;
80521
- var bigZ = 90;
80522
- var littleA = 97;
80523
- var littleZ = 122;
80524
- var zero = 48;
80525
- var nine = 57;
80526
- var plus = 43;
80527
- var slash = 47;
80528
- var littleOffset = 26;
80529
- var numberOffset = 52;
80530
- if (bigA <= charCode && charCode <= bigZ) {
80531
- return charCode - bigA;
80532
- }
80533
- if (littleA <= charCode && charCode <= littleZ) {
80534
- return charCode - littleA + littleOffset;
80535
- }
80536
- if (zero <= charCode && charCode <= nine) {
80537
- return charCode - zero + numberOffset;
80538
- }
80539
- if (charCode == plus) {
80540
- return 62;
80541
- }
80542
- if (charCode == slash) {
80543
- return 63;
80544
- }
80545
- return -1;
80546
- };
80547
- }
80548
- });
80549
-
80550
- // ../../node_modules/source-map-js/lib/base64-vlq.js
80551
- var require_base64_vlq = __commonJS({
80552
- "../../node_modules/source-map-js/lib/base64-vlq.js"(exports2) {
80553
- var base643 = require_base64();
80554
- var VLQ_BASE_SHIFT = 5;
80555
- var VLQ_BASE = 1 << VLQ_BASE_SHIFT;
80556
- var VLQ_BASE_MASK = VLQ_BASE - 1;
80557
- var VLQ_CONTINUATION_BIT = VLQ_BASE;
80558
- function toVLQSigned(aValue) {
80559
- return aValue < 0 ? (-aValue << 1) + 1 : (aValue << 1) + 0;
80560
- }
80561
- function fromVLQSigned(aValue) {
80562
- var isNegative = (aValue & 1) === 1;
80563
- var shifted = aValue >> 1;
80564
- return isNegative ? -shifted : shifted;
80565
- }
80566
- exports2.encode = function base64VLQ_encode(aValue) {
80567
- var encoded = "";
80568
- var digit;
80569
- var vlq = toVLQSigned(aValue);
80570
- do {
80571
- digit = vlq & VLQ_BASE_MASK;
80572
- vlq >>>= VLQ_BASE_SHIFT;
80573
- if (vlq > 0) {
80574
- digit |= VLQ_CONTINUATION_BIT;
80575
- }
80576
- encoded += base643.encode(digit);
80577
- } while (vlq > 0);
80578
- return encoded;
80579
- };
80580
- exports2.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {
80581
- var strLen = aStr.length;
80582
- var result = 0;
80583
- var shift = 0;
80584
- var continuation, digit;
80585
- do {
80586
- if (aIndex >= strLen) {
80587
- throw new Error("Expected more digits in base 64 VLQ value.");
80588
- }
80589
- digit = base643.decode(aStr.charCodeAt(aIndex++));
80590
- if (digit === -1) {
80591
- throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1));
80592
- }
80593
- continuation = !!(digit & VLQ_CONTINUATION_BIT);
80594
- digit &= VLQ_BASE_MASK;
80595
- result = result + (digit << shift);
80596
- shift += VLQ_BASE_SHIFT;
80597
- } while (continuation);
80598
- aOutParam.value = fromVLQSigned(result);
80599
- aOutParam.rest = aIndex;
80600
- };
80601
- }
80602
- });
80603
-
80604
- // ../../node_modules/source-map-js/lib/util.js
80605
- var require_util = __commonJS({
80606
- "../../node_modules/source-map-js/lib/util.js"(exports2) {
80607
- function getArg(aArgs, aName, aDefaultValue) {
80608
- if (aName in aArgs) {
80609
- return aArgs[aName];
80610
- } else if (arguments.length === 3) {
80611
- return aDefaultValue;
80612
- } else {
80613
- throw new Error('"' + aName + '" is a required argument.');
80614
- }
80615
- }
80616
- exports2.getArg = getArg;
80617
- var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/;
80618
- var dataUrlRegexp = /^data:.+\,.+$/;
80619
- function urlParse(aUrl) {
80620
- var match = aUrl.match(urlRegexp);
80621
- if (!match) {
80622
- return null;
80623
- }
80624
- return {
80625
- scheme: match[1],
80626
- auth: match[2],
80627
- host: match[3],
80628
- port: match[4],
80629
- path: match[5]
80630
- };
80631
- }
80632
- exports2.urlParse = urlParse;
80633
- function urlGenerate(aParsedUrl) {
80634
- var url2 = "";
80635
- if (aParsedUrl.scheme) {
80636
- url2 += aParsedUrl.scheme + ":";
80637
- }
80638
- url2 += "//";
80639
- if (aParsedUrl.auth) {
80640
- url2 += aParsedUrl.auth + "@";
80641
- }
80642
- if (aParsedUrl.host) {
80643
- url2 += aParsedUrl.host;
80644
- }
80645
- if (aParsedUrl.port) {
80646
- url2 += ":" + aParsedUrl.port;
80647
- }
80648
- if (aParsedUrl.path) {
80649
- url2 += aParsedUrl.path;
80650
- }
80651
- return url2;
80652
- }
80653
- exports2.urlGenerate = urlGenerate;
80654
- var MAX_CACHED_INPUTS = 32;
80655
- function lruMemoize(f) {
80656
- var cache4 = [];
80657
- return function(input) {
80658
- for (var i = 0; i < cache4.length; i++) {
80659
- if (cache4[i].input === input) {
80660
- var temp = cache4[0];
80661
- cache4[0] = cache4[i];
80662
- cache4[i] = temp;
80663
- return cache4[0].result;
80664
- }
80665
- }
80666
- var result = f(input);
80667
- cache4.unshift({
80668
- input,
80669
- result
80670
- });
80671
- if (cache4.length > MAX_CACHED_INPUTS) {
80672
- cache4.pop();
80673
- }
80674
- return result;
80675
- };
80676
- }
80677
- var normalize = lruMemoize(function normalize2(aPath) {
80678
- var path41 = aPath;
80679
- var url2 = urlParse(aPath);
80680
- if (url2) {
80681
- if (!url2.path) {
80682
- return aPath;
80683
- }
80684
- path41 = url2.path;
80685
- }
80686
- var isAbsolute6 = exports2.isAbsolute(path41);
80687
- var parts2 = [];
80688
- var start2 = 0;
80689
- var i = 0;
80690
- while (true) {
80691
- start2 = i;
80692
- i = path41.indexOf("/", start2);
80693
- if (i === -1) {
80694
- parts2.push(path41.slice(start2));
80695
- break;
80696
- } else {
80697
- parts2.push(path41.slice(start2, i));
80698
- while (i < path41.length && path41[i] === "/") {
80699
- i++;
80700
- }
80701
- }
80702
- }
80703
- for (var part, up = 0, i = parts2.length - 1; i >= 0; i--) {
80704
- part = parts2[i];
80705
- if (part === ".") {
80706
- parts2.splice(i, 1);
80707
- } else if (part === "..") {
80708
- up++;
80709
- } else if (up > 0) {
80710
- if (part === "") {
80711
- parts2.splice(i + 1, up);
80712
- up = 0;
80713
- } else {
80714
- parts2.splice(i, 2);
80715
- up--;
80716
- }
80717
- }
80718
- }
80719
- path41 = parts2.join("/");
80720
- if (path41 === "") {
80721
- path41 = isAbsolute6 ? "/" : ".";
80722
- }
80723
- if (url2) {
80724
- url2.path = path41;
80725
- return urlGenerate(url2);
80726
- }
80727
- return path41;
80728
- });
80729
- exports2.normalize = normalize;
80730
- function join47(aRoot, aPath) {
80731
- if (aRoot === "") {
80732
- aRoot = ".";
80733
- }
80734
- if (aPath === "") {
80735
- aPath = ".";
80736
- }
80737
- var aPathUrl = urlParse(aPath);
80738
- var aRootUrl = urlParse(aRoot);
80739
- if (aRootUrl) {
80740
- aRoot = aRootUrl.path || "/";
80741
- }
80742
- if (aPathUrl && !aPathUrl.scheme) {
80743
- if (aRootUrl) {
80744
- aPathUrl.scheme = aRootUrl.scheme;
80745
- }
80746
- return urlGenerate(aPathUrl);
80747
- }
80748
- if (aPathUrl || aPath.match(dataUrlRegexp)) {
80749
- return aPath;
80750
- }
80751
- if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {
80752
- aRootUrl.host = aPath;
80753
- return urlGenerate(aRootUrl);
80754
- }
80755
- var joined = aPath.charAt(0) === "/" ? aPath : normalize(aRoot.replace(/\/+$/, "") + "/" + aPath);
80756
- if (aRootUrl) {
80757
- aRootUrl.path = joined;
80758
- return urlGenerate(aRootUrl);
80759
- }
80760
- return joined;
80761
- }
80762
- exports2.join = join47;
80763
- exports2.isAbsolute = function(aPath) {
80764
- return aPath.charAt(0) === "/" || urlRegexp.test(aPath);
80765
- };
80766
- function relative3(aRoot, aPath) {
80767
- if (aRoot === "") {
80768
- aRoot = ".";
80769
- }
80770
- aRoot = aRoot.replace(/\/$/, "");
80771
- var level = 0;
80772
- while (aPath.indexOf(aRoot + "/") !== 0) {
80773
- var index = aRoot.lastIndexOf("/");
80774
- if (index < 0) {
80775
- return aPath;
80776
- }
80777
- aRoot = aRoot.slice(0, index);
80778
- if (aRoot.match(/^([^\/]+:\/)?\/*$/)) {
80779
- return aPath;
80780
- }
80781
- ++level;
80782
- }
80783
- return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1);
80784
- }
80785
- exports2.relative = relative3;
80786
- var supportsNullProto = (function() {
80787
- var obj = /* @__PURE__ */ Object.create(null);
80788
- return !("__proto__" in obj);
80789
- })();
80790
- function identity2(s) {
80791
- return s;
80792
- }
80793
- function toSetString(aStr) {
80794
- if (isProtoString(aStr)) {
80795
- return "$" + aStr;
80796
- }
80797
- return aStr;
80798
- }
80799
- exports2.toSetString = supportsNullProto ? identity2 : toSetString;
80800
- function fromSetString(aStr) {
80801
- if (isProtoString(aStr)) {
80802
- return aStr.slice(1);
80803
- }
80804
- return aStr;
80805
- }
80806
- exports2.fromSetString = supportsNullProto ? identity2 : fromSetString;
80807
- function isProtoString(s) {
80808
- if (!s) {
80809
- return false;
80810
- }
80811
- var length = s.length;
80812
- if (length < 9) {
80813
- return false;
80814
- }
80815
- if (s.charCodeAt(length - 1) !== 95 || s.charCodeAt(length - 2) !== 95 || s.charCodeAt(length - 3) !== 111 || s.charCodeAt(length - 4) !== 116 || s.charCodeAt(length - 5) !== 111 || s.charCodeAt(length - 6) !== 114 || s.charCodeAt(length - 7) !== 112 || s.charCodeAt(length - 8) !== 95 || s.charCodeAt(length - 9) !== 95) {
80816
- return false;
80817
- }
80818
- for (var i = length - 10; i >= 0; i--) {
80819
- if (s.charCodeAt(i) !== 36) {
80820
- return false;
80821
- }
80822
- }
80823
- return true;
80824
- }
80825
- function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {
80826
- var cmp = strcmp(mappingA.source, mappingB.source);
80827
- if (cmp !== 0) {
80828
- return cmp;
80829
- }
80830
- cmp = mappingA.originalLine - mappingB.originalLine;
80831
- if (cmp !== 0) {
80832
- return cmp;
80833
- }
80834
- cmp = mappingA.originalColumn - mappingB.originalColumn;
80835
- if (cmp !== 0 || onlyCompareOriginal) {
80836
- return cmp;
80837
- }
80838
- cmp = mappingA.generatedColumn - mappingB.generatedColumn;
80839
- if (cmp !== 0) {
80840
- return cmp;
80841
- }
80842
- cmp = mappingA.generatedLine - mappingB.generatedLine;
80843
- if (cmp !== 0) {
80844
- return cmp;
80845
- }
80846
- return strcmp(mappingA.name, mappingB.name);
80847
- }
80848
- exports2.compareByOriginalPositions = compareByOriginalPositions;
80849
- function compareByOriginalPositionsNoSource(mappingA, mappingB, onlyCompareOriginal) {
80850
- var cmp;
80851
- cmp = mappingA.originalLine - mappingB.originalLine;
80852
- if (cmp !== 0) {
80853
- return cmp;
80854
- }
80855
- cmp = mappingA.originalColumn - mappingB.originalColumn;
80856
- if (cmp !== 0 || onlyCompareOriginal) {
80857
- return cmp;
80858
- }
80859
- cmp = mappingA.generatedColumn - mappingB.generatedColumn;
80860
- if (cmp !== 0) {
80861
- return cmp;
80862
- }
80863
- cmp = mappingA.generatedLine - mappingB.generatedLine;
80864
- if (cmp !== 0) {
80865
- return cmp;
80866
- }
80867
- return strcmp(mappingA.name, mappingB.name);
80868
- }
80869
- exports2.compareByOriginalPositionsNoSource = compareByOriginalPositionsNoSource;
80870
- function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {
80871
- var cmp = mappingA.generatedLine - mappingB.generatedLine;
80872
- if (cmp !== 0) {
80873
- return cmp;
80874
- }
80875
- cmp = mappingA.generatedColumn - mappingB.generatedColumn;
80876
- if (cmp !== 0 || onlyCompareGenerated) {
80877
- return cmp;
80878
- }
80879
- cmp = strcmp(mappingA.source, mappingB.source);
80880
- if (cmp !== 0) {
80881
- return cmp;
80882
- }
80883
- cmp = mappingA.originalLine - mappingB.originalLine;
80884
- if (cmp !== 0) {
80885
- return cmp;
80886
- }
80887
- cmp = mappingA.originalColumn - mappingB.originalColumn;
80888
- if (cmp !== 0) {
80889
- return cmp;
80890
- }
80891
- return strcmp(mappingA.name, mappingB.name);
80892
- }
80893
- exports2.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;
80894
- function compareByGeneratedPositionsDeflatedNoLine(mappingA, mappingB, onlyCompareGenerated) {
80895
- var cmp = mappingA.generatedColumn - mappingB.generatedColumn;
80896
- if (cmp !== 0 || onlyCompareGenerated) {
80897
- return cmp;
80898
- }
80899
- cmp = strcmp(mappingA.source, mappingB.source);
80900
- if (cmp !== 0) {
80901
- return cmp;
80902
- }
80903
- cmp = mappingA.originalLine - mappingB.originalLine;
80904
- if (cmp !== 0) {
80905
- return cmp;
80906
- }
80907
- cmp = mappingA.originalColumn - mappingB.originalColumn;
80908
- if (cmp !== 0) {
80909
- return cmp;
80910
- }
80911
- return strcmp(mappingA.name, mappingB.name);
80912
- }
80913
- exports2.compareByGeneratedPositionsDeflatedNoLine = compareByGeneratedPositionsDeflatedNoLine;
80914
- function strcmp(aStr1, aStr2) {
80915
- if (aStr1 === aStr2) {
80916
- return 0;
80917
- }
80918
- if (aStr1 === null) {
80919
- return 1;
80920
- }
80921
- if (aStr2 === null) {
80922
- return -1;
80923
- }
80924
- if (aStr1 > aStr2) {
80925
- return 1;
80926
- }
80927
- return -1;
80928
- }
80929
- function compareByGeneratedPositionsInflated(mappingA, mappingB) {
80930
- var cmp = mappingA.generatedLine - mappingB.generatedLine;
80931
- if (cmp !== 0) {
80932
- return cmp;
80933
- }
80934
- cmp = mappingA.generatedColumn - mappingB.generatedColumn;
80935
- if (cmp !== 0) {
80936
- return cmp;
80937
- }
80938
- cmp = strcmp(mappingA.source, mappingB.source);
80939
- if (cmp !== 0) {
80940
- return cmp;
80941
- }
80942
- cmp = mappingA.originalLine - mappingB.originalLine;
80943
- if (cmp !== 0) {
80944
- return cmp;
80945
- }
80946
- cmp = mappingA.originalColumn - mappingB.originalColumn;
80947
- if (cmp !== 0) {
80948
- return cmp;
80949
- }
80950
- return strcmp(mappingA.name, mappingB.name);
80951
- }
80952
- exports2.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;
80953
- function parseSourceMapInput(str) {
80954
- return JSON.parse(str.replace(/^\)]}'[^\n]*\n/, ""));
80955
- }
80956
- exports2.parseSourceMapInput = parseSourceMapInput;
80957
- function computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {
80958
- sourceURL = sourceURL || "";
80959
- if (sourceRoot) {
80960
- if (sourceRoot[sourceRoot.length - 1] !== "/" && sourceURL[0] !== "/") {
80961
- sourceRoot += "/";
80962
- }
80963
- sourceURL = sourceRoot + sourceURL;
80964
- }
80965
- if (sourceMapURL) {
80966
- var parsed = urlParse(sourceMapURL);
80967
- if (!parsed) {
80968
- throw new Error("sourceMapURL could not be parsed");
80969
- }
80970
- if (parsed.path) {
80971
- var index = parsed.path.lastIndexOf("/");
80972
- if (index >= 0) {
80973
- parsed.path = parsed.path.substring(0, index + 1);
80974
- }
80975
- }
80976
- sourceURL = join47(urlGenerate(parsed), sourceURL);
80977
- }
80978
- return normalize(sourceURL);
80979
- }
80980
- exports2.computeSourceURL = computeSourceURL;
80981
- }
80982
- });
80983
-
80984
- // ../../node_modules/source-map-js/lib/array-set.js
80985
- var require_array_set = __commonJS({
80986
- "../../node_modules/source-map-js/lib/array-set.js"(exports2) {
80987
- var util = require_util();
80988
- var has = Object.prototype.hasOwnProperty;
80989
- var hasNativeMap = typeof Map !== "undefined";
80990
- function ArraySet() {
80991
- this._array = [];
80992
- this._set = hasNativeMap ? /* @__PURE__ */ new Map() : /* @__PURE__ */ Object.create(null);
80993
- }
80994
- ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {
80995
- var set2 = new ArraySet();
80996
- for (var i = 0, len = aArray.length; i < len; i++) {
80997
- set2.add(aArray[i], aAllowDuplicates);
80998
- }
80999
- return set2;
81000
- };
81001
- ArraySet.prototype.size = function ArraySet_size() {
81002
- return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;
81003
- };
81004
- ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {
81005
- var sStr = hasNativeMap ? aStr : util.toSetString(aStr);
81006
- var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);
81007
- var idx = this._array.length;
81008
- if (!isDuplicate || aAllowDuplicates) {
81009
- this._array.push(aStr);
81010
- }
81011
- if (!isDuplicate) {
81012
- if (hasNativeMap) {
81013
- this._set.set(aStr, idx);
81014
- } else {
81015
- this._set[sStr] = idx;
81016
- }
81017
- }
81018
- };
81019
- ArraySet.prototype.has = function ArraySet_has(aStr) {
81020
- if (hasNativeMap) {
81021
- return this._set.has(aStr);
81022
- } else {
81023
- var sStr = util.toSetString(aStr);
81024
- return has.call(this._set, sStr);
81025
- }
81026
- };
81027
- ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {
81028
- if (hasNativeMap) {
81029
- var idx = this._set.get(aStr);
81030
- if (idx >= 0) {
81031
- return idx;
81032
- }
81033
- } else {
81034
- var sStr = util.toSetString(aStr);
81035
- if (has.call(this._set, sStr)) {
81036
- return this._set[sStr];
81037
- }
81038
- }
81039
- throw new Error('"' + aStr + '" is not in the set.');
81040
- };
81041
- ArraySet.prototype.at = function ArraySet_at(aIdx) {
81042
- if (aIdx >= 0 && aIdx < this._array.length) {
81043
- return this._array[aIdx];
81044
- }
81045
- throw new Error("No element indexed by " + aIdx);
81046
- };
81047
- ArraySet.prototype.toArray = function ArraySet_toArray() {
81048
- return this._array.slice();
81049
- };
81050
- exports2.ArraySet = ArraySet;
81051
- }
81052
- });
81053
-
81054
- // ../../node_modules/source-map-js/lib/mapping-list.js
81055
- var require_mapping_list = __commonJS({
81056
- "../../node_modules/source-map-js/lib/mapping-list.js"(exports2) {
81057
- var util = require_util();
81058
- function generatedPositionAfter(mappingA, mappingB) {
81059
- var lineA = mappingA.generatedLine;
81060
- var lineB = mappingB.generatedLine;
81061
- var columnA = mappingA.generatedColumn;
81062
- var columnB = mappingB.generatedColumn;
81063
- return lineB > lineA || lineB == lineA && columnB >= columnA || util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;
81064
- }
81065
- function MappingList() {
81066
- this._array = [];
81067
- this._sorted = true;
81068
- this._last = { generatedLine: -1, generatedColumn: 0 };
81069
- }
81070
- MappingList.prototype.unsortedForEach = function MappingList_forEach(aCallback, aThisArg) {
81071
- this._array.forEach(aCallback, aThisArg);
81072
- };
81073
- MappingList.prototype.add = function MappingList_add(aMapping) {
81074
- if (generatedPositionAfter(this._last, aMapping)) {
81075
- this._last = aMapping;
81076
- this._array.push(aMapping);
81077
- } else {
81078
- this._sorted = false;
81079
- this._array.push(aMapping);
81080
- }
81081
- };
81082
- MappingList.prototype.toArray = function MappingList_toArray() {
81083
- if (!this._sorted) {
81084
- this._array.sort(util.compareByGeneratedPositionsInflated);
81085
- this._sorted = true;
81086
- }
81087
- return this._array;
81088
- };
81089
- exports2.MappingList = MappingList;
81090
- }
81091
- });
81092
-
81093
- // ../../node_modules/source-map-js/lib/source-map-generator.js
81094
- var require_source_map_generator = __commonJS({
81095
- "../../node_modules/source-map-js/lib/source-map-generator.js"(exports2) {
81096
- var base64VLQ = require_base64_vlq();
81097
- var util = require_util();
81098
- var ArraySet = require_array_set().ArraySet;
81099
- var MappingList = require_mapping_list().MappingList;
81100
- function SourceMapGenerator(aArgs) {
81101
- if (!aArgs) {
81102
- aArgs = {};
81103
- }
81104
- this._file = util.getArg(aArgs, "file", null);
81105
- this._sourceRoot = util.getArg(aArgs, "sourceRoot", null);
81106
- this._skipValidation = util.getArg(aArgs, "skipValidation", false);
81107
- this._ignoreInvalidMapping = util.getArg(aArgs, "ignoreInvalidMapping", false);
81108
- this._sources = new ArraySet();
81109
- this._names = new ArraySet();
81110
- this._mappings = new MappingList();
81111
- this._sourcesContents = null;
81112
- }
81113
- SourceMapGenerator.prototype._version = 3;
81114
- SourceMapGenerator.fromSourceMap = function SourceMapGenerator_fromSourceMap(aSourceMapConsumer, generatorOps) {
81115
- var sourceRoot = aSourceMapConsumer.sourceRoot;
81116
- var generator = new SourceMapGenerator(Object.assign(generatorOps || {}, {
81117
- file: aSourceMapConsumer.file,
81118
- sourceRoot
81119
- }));
81120
- aSourceMapConsumer.eachMapping(function(mapping) {
81121
- var newMapping = {
81122
- generated: {
81123
- line: mapping.generatedLine,
81124
- column: mapping.generatedColumn
81125
- }
81126
- };
81127
- if (mapping.source != null) {
81128
- newMapping.source = mapping.source;
81129
- if (sourceRoot != null) {
81130
- newMapping.source = util.relative(sourceRoot, newMapping.source);
81131
- }
81132
- newMapping.original = {
81133
- line: mapping.originalLine,
81134
- column: mapping.originalColumn
81135
- };
81136
- if (mapping.name != null) {
81137
- newMapping.name = mapping.name;
81138
- }
81139
- }
81140
- generator.addMapping(newMapping);
81141
- });
81142
- aSourceMapConsumer.sources.forEach(function(sourceFile) {
81143
- var sourceRelative = sourceFile;
81144
- if (sourceRoot !== null) {
81145
- sourceRelative = util.relative(sourceRoot, sourceFile);
81146
- }
81147
- if (!generator._sources.has(sourceRelative)) {
81148
- generator._sources.add(sourceRelative);
81149
- }
81150
- var content = aSourceMapConsumer.sourceContentFor(sourceFile);
81151
- if (content != null) {
81152
- generator.setSourceContent(sourceFile, content);
81153
- }
81154
- });
81155
- return generator;
81156
- };
81157
- SourceMapGenerator.prototype.addMapping = function SourceMapGenerator_addMapping(aArgs) {
81158
- var generated = util.getArg(aArgs, "generated");
81159
- var original = util.getArg(aArgs, "original", null);
81160
- var source = util.getArg(aArgs, "source", null);
81161
- var name = util.getArg(aArgs, "name", null);
81162
- if (!this._skipValidation) {
81163
- if (this._validateMapping(generated, original, source, name) === false) {
81164
- return;
81165
- }
81166
- }
81167
- if (source != null) {
81168
- source = String(source);
81169
- if (!this._sources.has(source)) {
81170
- this._sources.add(source);
81171
- }
81172
- }
81173
- if (name != null) {
81174
- name = String(name);
81175
- if (!this._names.has(name)) {
81176
- this._names.add(name);
81177
- }
81178
- }
81179
- this._mappings.add({
81180
- generatedLine: generated.line,
81181
- generatedColumn: generated.column,
81182
- originalLine: original != null && original.line,
81183
- originalColumn: original != null && original.column,
81184
- source,
81185
- name
81186
- });
81187
- };
81188
- SourceMapGenerator.prototype.setSourceContent = function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {
81189
- var source = aSourceFile;
81190
- if (this._sourceRoot != null) {
81191
- source = util.relative(this._sourceRoot, source);
81192
- }
81193
- if (aSourceContent != null) {
81194
- if (!this._sourcesContents) {
81195
- this._sourcesContents = /* @__PURE__ */ Object.create(null);
81196
- }
81197
- this._sourcesContents[util.toSetString(source)] = aSourceContent;
81198
- } else if (this._sourcesContents) {
81199
- delete this._sourcesContents[util.toSetString(source)];
81200
- if (Object.keys(this._sourcesContents).length === 0) {
81201
- this._sourcesContents = null;
81202
- }
81203
- }
81204
- };
81205
- SourceMapGenerator.prototype.applySourceMap = function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {
81206
- var sourceFile = aSourceFile;
81207
- if (aSourceFile == null) {
81208
- if (aSourceMapConsumer.file == null) {
81209
- throw new Error(
81210
- `SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`
81211
- );
81212
- }
81213
- sourceFile = aSourceMapConsumer.file;
81214
- }
81215
- var sourceRoot = this._sourceRoot;
81216
- if (sourceRoot != null) {
81217
- sourceFile = util.relative(sourceRoot, sourceFile);
81218
- }
81219
- var newSources = new ArraySet();
81220
- var newNames = new ArraySet();
81221
- this._mappings.unsortedForEach(function(mapping) {
81222
- if (mapping.source === sourceFile && mapping.originalLine != null) {
81223
- var original = aSourceMapConsumer.originalPositionFor({
81224
- line: mapping.originalLine,
81225
- column: mapping.originalColumn
81226
- });
81227
- if (original.source != null) {
81228
- mapping.source = original.source;
81229
- if (aSourceMapPath != null) {
81230
- mapping.source = util.join(aSourceMapPath, mapping.source);
81231
- }
81232
- if (sourceRoot != null) {
81233
- mapping.source = util.relative(sourceRoot, mapping.source);
81234
- }
81235
- mapping.originalLine = original.line;
81236
- mapping.originalColumn = original.column;
81237
- if (original.name != null) {
81238
- mapping.name = original.name;
81239
- }
81240
- }
81241
- }
81242
- var source = mapping.source;
81243
- if (source != null && !newSources.has(source)) {
81244
- newSources.add(source);
81245
- }
81246
- var name = mapping.name;
81247
- if (name != null && !newNames.has(name)) {
81248
- newNames.add(name);
81249
- }
81250
- }, this);
81251
- this._sources = newSources;
81252
- this._names = newNames;
81253
- aSourceMapConsumer.sources.forEach(function(sourceFile2) {
81254
- var content = aSourceMapConsumer.sourceContentFor(sourceFile2);
81255
- if (content != null) {
81256
- if (aSourceMapPath != null) {
81257
- sourceFile2 = util.join(aSourceMapPath, sourceFile2);
81258
- }
81259
- if (sourceRoot != null) {
81260
- sourceFile2 = util.relative(sourceRoot, sourceFile2);
81261
- }
81262
- this.setSourceContent(sourceFile2, content);
81263
- }
81264
- }, this);
81265
- };
81266
- SourceMapGenerator.prototype._validateMapping = function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource, aName) {
81267
- if (aOriginal && typeof aOriginal.line !== "number" && typeof aOriginal.column !== "number") {
81268
- var message = "original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.";
81269
- if (this._ignoreInvalidMapping) {
81270
- if (typeof console !== "undefined" && console.warn) {
81271
- console.warn(message);
81272
- }
81273
- return false;
81274
- } else {
81275
- throw new Error(message);
81276
- }
81277
- }
81278
- if (aGenerated && "line" in aGenerated && "column" in aGenerated && aGenerated.line > 0 && aGenerated.column >= 0 && !aOriginal && !aSource && !aName) {
81279
- return;
81280
- } else if (aGenerated && "line" in aGenerated && "column" in aGenerated && aOriginal && "line" in aOriginal && "column" in aOriginal && aGenerated.line > 0 && aGenerated.column >= 0 && aOriginal.line > 0 && aOriginal.column >= 0 && aSource) {
81281
- return;
81282
- } else {
81283
- var message = "Invalid mapping: " + JSON.stringify({
81284
- generated: aGenerated,
81285
- source: aSource,
81286
- original: aOriginal,
81287
- name: aName
81288
- });
81289
- if (this._ignoreInvalidMapping) {
81290
- if (typeof console !== "undefined" && console.warn) {
81291
- console.warn(message);
81292
- }
81293
- return false;
81294
- } else {
81295
- throw new Error(message);
81296
- }
81297
- }
81298
- };
81299
- SourceMapGenerator.prototype._serializeMappings = function SourceMapGenerator_serializeMappings() {
81300
- var previousGeneratedColumn = 0;
81301
- var previousGeneratedLine = 1;
81302
- var previousOriginalColumn = 0;
81303
- var previousOriginalLine = 0;
81304
- var previousName = 0;
81305
- var previousSource = 0;
81306
- var result = "";
81307
- var next;
81308
- var mapping;
81309
- var nameIdx;
81310
- var sourceIdx;
81311
- var mappings = this._mappings.toArray();
81312
- for (var i = 0, len = mappings.length; i < len; i++) {
81313
- mapping = mappings[i];
81314
- next = "";
81315
- if (mapping.generatedLine !== previousGeneratedLine) {
81316
- previousGeneratedColumn = 0;
81317
- while (mapping.generatedLine !== previousGeneratedLine) {
81318
- next += ";";
81319
- previousGeneratedLine++;
81320
- }
81321
- } else {
81322
- if (i > 0) {
81323
- if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {
81324
- continue;
81325
- }
81326
- next += ",";
81327
- }
81328
- }
81329
- next += base64VLQ.encode(mapping.generatedColumn - previousGeneratedColumn);
81330
- previousGeneratedColumn = mapping.generatedColumn;
81331
- if (mapping.source != null) {
81332
- sourceIdx = this._sources.indexOf(mapping.source);
81333
- next += base64VLQ.encode(sourceIdx - previousSource);
81334
- previousSource = sourceIdx;
81335
- next += base64VLQ.encode(mapping.originalLine - 1 - previousOriginalLine);
81336
- previousOriginalLine = mapping.originalLine - 1;
81337
- next += base64VLQ.encode(mapping.originalColumn - previousOriginalColumn);
81338
- previousOriginalColumn = mapping.originalColumn;
81339
- if (mapping.name != null) {
81340
- nameIdx = this._names.indexOf(mapping.name);
81341
- next += base64VLQ.encode(nameIdx - previousName);
81342
- previousName = nameIdx;
81343
- }
81344
- }
81345
- result += next;
81346
- }
81347
- return result;
81348
- };
81349
- SourceMapGenerator.prototype._generateSourcesContent = function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {
81350
- return aSources.map(function(source) {
81351
- if (!this._sourcesContents) {
81352
- return null;
81353
- }
81354
- if (aSourceRoot != null) {
81355
- source = util.relative(aSourceRoot, source);
81356
- }
81357
- var key2 = util.toSetString(source);
81358
- return Object.prototype.hasOwnProperty.call(this._sourcesContents, key2) ? this._sourcesContents[key2] : null;
81359
- }, this);
81360
- };
81361
- SourceMapGenerator.prototype.toJSON = function SourceMapGenerator_toJSON() {
81362
- var map2 = {
81363
- version: this._version,
81364
- sources: this._sources.toArray(),
81365
- names: this._names.toArray(),
81366
- mappings: this._serializeMappings()
81367
- };
81368
- if (this._file != null) {
81369
- map2.file = this._file;
81370
- }
81371
- if (this._sourceRoot != null) {
81372
- map2.sourceRoot = this._sourceRoot;
81373
- }
81374
- if (this._sourcesContents) {
81375
- map2.sourcesContent = this._generateSourcesContent(map2.sources, map2.sourceRoot);
81376
- }
81377
- return map2;
81378
- };
81379
- SourceMapGenerator.prototype.toString = function SourceMapGenerator_toString() {
81380
- return JSON.stringify(this.toJSON());
81381
- };
81382
- exports2.SourceMapGenerator = SourceMapGenerator;
81383
- }
81384
- });
81385
-
81386
- // ../../node_modules/source-map-js/lib/binary-search.js
81387
- var require_binary_search = __commonJS({
81388
- "../../node_modules/source-map-js/lib/binary-search.js"(exports2) {
81389
- exports2.GREATEST_LOWER_BOUND = 1;
81390
- exports2.LEAST_UPPER_BOUND = 2;
81391
- function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {
81392
- var mid = Math.floor((aHigh - aLow) / 2) + aLow;
81393
- var cmp = aCompare(aNeedle, aHaystack[mid], true);
81394
- if (cmp === 0) {
81395
- return mid;
81396
- } else if (cmp > 0) {
81397
- if (aHigh - mid > 1) {
81398
- return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);
81399
- }
81400
- if (aBias == exports2.LEAST_UPPER_BOUND) {
81401
- return aHigh < aHaystack.length ? aHigh : -1;
81402
- } else {
81403
- return mid;
81404
- }
81405
- } else {
81406
- if (mid - aLow > 1) {
81407
- return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);
81408
- }
81409
- if (aBias == exports2.LEAST_UPPER_BOUND) {
81410
- return mid;
81411
- } else {
81412
- return aLow < 0 ? -1 : aLow;
81413
- }
81414
- }
81415
- }
81416
- exports2.search = function search(aNeedle, aHaystack, aCompare, aBias) {
81417
- if (aHaystack.length === 0) {
81418
- return -1;
81419
- }
81420
- var index = recursiveSearch(
81421
- -1,
81422
- aHaystack.length,
81423
- aNeedle,
81424
- aHaystack,
81425
- aCompare,
81426
- aBias || exports2.GREATEST_LOWER_BOUND
81427
- );
81428
- if (index < 0) {
81429
- return -1;
81430
- }
81431
- while (index - 1 >= 0) {
81432
- if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {
81433
- break;
81434
- }
81435
- --index;
81436
- }
81437
- return index;
81438
- };
81439
- }
81440
- });
81441
-
81442
- // ../../node_modules/source-map-js/lib/quick-sort.js
81443
- var require_quick_sort = __commonJS({
81444
- "../../node_modules/source-map-js/lib/quick-sort.js"(exports2) {
81445
- function SortTemplate(comparator) {
81446
- function swap(ary, x, y) {
81447
- var temp = ary[x];
81448
- ary[x] = ary[y];
81449
- ary[y] = temp;
81450
- }
81451
- function randomIntInRange(low, high) {
81452
- return Math.round(low + Math.random() * (high - low));
81453
- }
81454
- function doQuickSort(ary, comparator2, p, r) {
81455
- if (p < r) {
81456
- var pivotIndex = randomIntInRange(p, r);
81457
- var i = p - 1;
81458
- swap(ary, pivotIndex, r);
81459
- var pivot = ary[r];
81460
- for (var j = p; j < r; j++) {
81461
- if (comparator2(ary[j], pivot, false) <= 0) {
81462
- i += 1;
81463
- swap(ary, i, j);
81464
- }
81465
- }
81466
- swap(ary, i + 1, j);
81467
- var q = i + 1;
81468
- doQuickSort(ary, comparator2, p, q - 1);
81469
- doQuickSort(ary, comparator2, q + 1, r);
81470
- }
81471
- }
81472
- return doQuickSort;
81473
- }
81474
- function cloneSort(comparator) {
81475
- let template = SortTemplate.toString();
81476
- let templateFn = new Function(`return ${template}`)();
81477
- return templateFn(comparator);
81478
- }
81479
- var sortCache = /* @__PURE__ */ new WeakMap();
81480
- exports2.quickSort = function(ary, comparator, start2 = 0) {
81481
- let doQuickSort = sortCache.get(comparator);
81482
- if (doQuickSort === void 0) {
81483
- doQuickSort = cloneSort(comparator);
81484
- sortCache.set(comparator, doQuickSort);
81485
- }
81486
- doQuickSort(ary, comparator, start2, ary.length - 1);
81487
- };
81488
- }
81489
- });
81490
-
81491
- // ../../node_modules/source-map-js/lib/source-map-consumer.js
81492
- var require_source_map_consumer = __commonJS({
81493
- "../../node_modules/source-map-js/lib/source-map-consumer.js"(exports2) {
81494
- var util = require_util();
81495
- var binarySearch = require_binary_search();
81496
- var ArraySet = require_array_set().ArraySet;
81497
- var base64VLQ = require_base64_vlq();
81498
- var quickSort = require_quick_sort().quickSort;
81499
- function SourceMapConsumer2(aSourceMap, aSourceMapURL) {
81500
- var sourceMap = aSourceMap;
81501
- if (typeof aSourceMap === "string") {
81502
- sourceMap = util.parseSourceMapInput(aSourceMap);
81503
- }
81504
- return sourceMap.sections != null ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL) : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);
81505
- }
81506
- SourceMapConsumer2.fromSourceMap = function(aSourceMap, aSourceMapURL) {
81507
- return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);
81508
- };
81509
- SourceMapConsumer2.prototype._version = 3;
81510
- SourceMapConsumer2.prototype.__generatedMappings = null;
81511
- Object.defineProperty(SourceMapConsumer2.prototype, "_generatedMappings", {
81512
- configurable: true,
81513
- enumerable: true,
81514
- get: function() {
81515
- if (!this.__generatedMappings) {
81516
- this._parseMappings(this._mappings, this.sourceRoot);
81517
- }
81518
- return this.__generatedMappings;
81519
- }
81520
- });
81521
- SourceMapConsumer2.prototype.__originalMappings = null;
81522
- Object.defineProperty(SourceMapConsumer2.prototype, "_originalMappings", {
81523
- configurable: true,
81524
- enumerable: true,
81525
- get: function() {
81526
- if (!this.__originalMappings) {
81527
- this._parseMappings(this._mappings, this.sourceRoot);
81528
- }
81529
- return this.__originalMappings;
81530
- }
81531
- });
81532
- SourceMapConsumer2.prototype._charIsMappingSeparator = function SourceMapConsumer_charIsMappingSeparator(aStr, index) {
81533
- var c = aStr.charAt(index);
81534
- return c === ";" || c === ",";
81535
- };
81536
- SourceMapConsumer2.prototype._parseMappings = function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
81537
- throw new Error("Subclasses must implement _parseMappings");
81538
- };
81539
- SourceMapConsumer2.GENERATED_ORDER = 1;
81540
- SourceMapConsumer2.ORIGINAL_ORDER = 2;
81541
- SourceMapConsumer2.GREATEST_LOWER_BOUND = 1;
81542
- SourceMapConsumer2.LEAST_UPPER_BOUND = 2;
81543
- SourceMapConsumer2.prototype.eachMapping = function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {
81544
- var context2 = aContext || null;
81545
- var order = aOrder || SourceMapConsumer2.GENERATED_ORDER;
81546
- var mappings;
81547
- switch (order) {
81548
- case SourceMapConsumer2.GENERATED_ORDER:
81549
- mappings = this._generatedMappings;
81550
- break;
81551
- case SourceMapConsumer2.ORIGINAL_ORDER:
81552
- mappings = this._originalMappings;
81553
- break;
81554
- default:
81555
- throw new Error("Unknown order of iteration.");
81556
- }
81557
- var sourceRoot = this.sourceRoot;
81558
- var boundCallback = aCallback.bind(context2);
81559
- var names = this._names;
81560
- var sources = this._sources;
81561
- var sourceMapURL = this._sourceMapURL;
81562
- for (var i = 0, n = mappings.length; i < n; i++) {
81563
- var mapping = mappings[i];
81564
- var source = mapping.source === null ? null : sources.at(mapping.source);
81565
- if (source !== null) {
81566
- source = util.computeSourceURL(sourceRoot, source, sourceMapURL);
81567
- }
81568
- boundCallback({
81569
- source,
81570
- generatedLine: mapping.generatedLine,
81571
- generatedColumn: mapping.generatedColumn,
81572
- originalLine: mapping.originalLine,
81573
- originalColumn: mapping.originalColumn,
81574
- name: mapping.name === null ? null : names.at(mapping.name)
81575
- });
81576
- }
81577
- };
81578
- SourceMapConsumer2.prototype.allGeneratedPositionsFor = function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {
81579
- var line = util.getArg(aArgs, "line");
81580
- var needle = {
81581
- source: util.getArg(aArgs, "source"),
81582
- originalLine: line,
81583
- originalColumn: util.getArg(aArgs, "column", 0)
81584
- };
81585
- needle.source = this._findSourceIndex(needle.source);
81586
- if (needle.source < 0) {
81587
- return [];
81588
- }
81589
- var mappings = [];
81590
- var index = this._findMapping(
81591
- needle,
81592
- this._originalMappings,
81593
- "originalLine",
81594
- "originalColumn",
81595
- util.compareByOriginalPositions,
81596
- binarySearch.LEAST_UPPER_BOUND
81597
- );
81598
- if (index >= 0) {
81599
- var mapping = this._originalMappings[index];
81600
- if (aArgs.column === void 0) {
81601
- var originalLine = mapping.originalLine;
81602
- while (mapping && mapping.originalLine === originalLine) {
81603
- mappings.push({
81604
- line: util.getArg(mapping, "generatedLine", null),
81605
- column: util.getArg(mapping, "generatedColumn", null),
81606
- lastColumn: util.getArg(mapping, "lastGeneratedColumn", null)
81607
- });
81608
- mapping = this._originalMappings[++index];
81609
- }
81610
- } else {
81611
- var originalColumn = mapping.originalColumn;
81612
- while (mapping && mapping.originalLine === line && mapping.originalColumn == originalColumn) {
81613
- mappings.push({
81614
- line: util.getArg(mapping, "generatedLine", null),
81615
- column: util.getArg(mapping, "generatedColumn", null),
81616
- lastColumn: util.getArg(mapping, "lastGeneratedColumn", null)
81617
- });
81618
- mapping = this._originalMappings[++index];
81619
- }
81620
- }
81621
- }
81622
- return mappings;
81623
- };
81624
- exports2.SourceMapConsumer = SourceMapConsumer2;
81625
- function BasicSourceMapConsumer(aSourceMap, aSourceMapURL) {
81626
- var sourceMap = aSourceMap;
81627
- if (typeof aSourceMap === "string") {
81628
- sourceMap = util.parseSourceMapInput(aSourceMap);
81629
- }
81630
- var version3 = util.getArg(sourceMap, "version");
81631
- var sources = util.getArg(sourceMap, "sources");
81632
- var names = util.getArg(sourceMap, "names", []);
81633
- var sourceRoot = util.getArg(sourceMap, "sourceRoot", null);
81634
- var sourcesContent = util.getArg(sourceMap, "sourcesContent", null);
81635
- var mappings = util.getArg(sourceMap, "mappings");
81636
- var file2 = util.getArg(sourceMap, "file", null);
81637
- if (version3 != this._version) {
81638
- throw new Error("Unsupported version: " + version3);
81639
- }
81640
- if (sourceRoot) {
81641
- sourceRoot = util.normalize(sourceRoot);
81642
- }
81643
- sources = sources.map(String).map(util.normalize).map(function(source) {
81644
- return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source) ? util.relative(sourceRoot, source) : source;
81645
- });
81646
- this._names = ArraySet.fromArray(names.map(String), true);
81647
- this._sources = ArraySet.fromArray(sources, true);
81648
- this._absoluteSources = this._sources.toArray().map(function(s) {
81649
- return util.computeSourceURL(sourceRoot, s, aSourceMapURL);
81650
- });
81651
- this.sourceRoot = sourceRoot;
81652
- this.sourcesContent = sourcesContent;
81653
- this._mappings = mappings;
81654
- this._sourceMapURL = aSourceMapURL;
81655
- this.file = file2;
81656
- }
81657
- BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer2.prototype);
81658
- BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer2;
81659
- BasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) {
81660
- var relativeSource = aSource;
81661
- if (this.sourceRoot != null) {
81662
- relativeSource = util.relative(this.sourceRoot, relativeSource);
81663
- }
81664
- if (this._sources.has(relativeSource)) {
81665
- return this._sources.indexOf(relativeSource);
81666
- }
81667
- var i;
81668
- for (i = 0; i < this._absoluteSources.length; ++i) {
81669
- if (this._absoluteSources[i] == aSource) {
81670
- return i;
81671
- }
81672
- }
81673
- return -1;
81674
- };
81675
- BasicSourceMapConsumer.fromSourceMap = function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) {
81676
- var smc = Object.create(BasicSourceMapConsumer.prototype);
81677
- var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);
81678
- var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);
81679
- smc.sourceRoot = aSourceMap._sourceRoot;
81680
- smc.sourcesContent = aSourceMap._generateSourcesContent(
81681
- smc._sources.toArray(),
81682
- smc.sourceRoot
81683
- );
81684
- smc.file = aSourceMap._file;
81685
- smc._sourceMapURL = aSourceMapURL;
81686
- smc._absoluteSources = smc._sources.toArray().map(function(s) {
81687
- return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL);
81688
- });
81689
- var generatedMappings = aSourceMap._mappings.toArray().slice();
81690
- var destGeneratedMappings = smc.__generatedMappings = [];
81691
- var destOriginalMappings = smc.__originalMappings = [];
81692
- for (var i = 0, length = generatedMappings.length; i < length; i++) {
81693
- var srcMapping = generatedMappings[i];
81694
- var destMapping = new Mapping();
81695
- destMapping.generatedLine = srcMapping.generatedLine;
81696
- destMapping.generatedColumn = srcMapping.generatedColumn;
81697
- if (srcMapping.source) {
81698
- destMapping.source = sources.indexOf(srcMapping.source);
81699
- destMapping.originalLine = srcMapping.originalLine;
81700
- destMapping.originalColumn = srcMapping.originalColumn;
81701
- if (srcMapping.name) {
81702
- destMapping.name = names.indexOf(srcMapping.name);
81703
- }
81704
- destOriginalMappings.push(destMapping);
81705
- }
81706
- destGeneratedMappings.push(destMapping);
81707
- }
81708
- quickSort(smc.__originalMappings, util.compareByOriginalPositions);
81709
- return smc;
81710
- };
81711
- BasicSourceMapConsumer.prototype._version = 3;
81712
- Object.defineProperty(BasicSourceMapConsumer.prototype, "sources", {
81713
- get: function() {
81714
- return this._absoluteSources.slice();
81715
- }
81716
- });
81717
- function Mapping() {
81718
- this.generatedLine = 0;
81719
- this.generatedColumn = 0;
81720
- this.source = null;
81721
- this.originalLine = null;
81722
- this.originalColumn = null;
81723
- this.name = null;
81724
- }
81725
- var compareGenerated = util.compareByGeneratedPositionsDeflatedNoLine;
81726
- function sortGenerated(array2, start2) {
81727
- let l = array2.length;
81728
- let n = array2.length - start2;
81729
- if (n <= 1) {
81730
- return;
81731
- } else if (n == 2) {
81732
- let a = array2[start2];
81733
- let b = array2[start2 + 1];
81734
- if (compareGenerated(a, b) > 0) {
81735
- array2[start2] = b;
81736
- array2[start2 + 1] = a;
81737
- }
81738
- } else if (n < 20) {
81739
- for (let i = start2; i < l; i++) {
81740
- for (let j = i; j > start2; j--) {
81741
- let a = array2[j - 1];
81742
- let b = array2[j];
81743
- if (compareGenerated(a, b) <= 0) {
81744
- break;
81745
- }
81746
- array2[j - 1] = b;
81747
- array2[j] = a;
81748
- }
81749
- }
81750
- } else {
81751
- quickSort(array2, compareGenerated, start2);
81752
- }
81753
- }
81754
- BasicSourceMapConsumer.prototype._parseMappings = function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
81755
- var generatedLine = 1;
81756
- var previousGeneratedColumn = 0;
81757
- var previousOriginalLine = 0;
81758
- var previousOriginalColumn = 0;
81759
- var previousSource = 0;
81760
- var previousName = 0;
81761
- var length = aStr.length;
81762
- var index = 0;
81763
- var cachedSegments = {};
81764
- var temp = {};
81765
- var originalMappings = [];
81766
- var generatedMappings = [];
81767
- var mapping, str, segment, end, value;
81768
- let subarrayStart = 0;
81769
- while (index < length) {
81770
- if (aStr.charAt(index) === ";") {
81771
- generatedLine++;
81772
- index++;
81773
- previousGeneratedColumn = 0;
81774
- sortGenerated(generatedMappings, subarrayStart);
81775
- subarrayStart = generatedMappings.length;
81776
- } else if (aStr.charAt(index) === ",") {
81777
- index++;
81778
- } else {
81779
- mapping = new Mapping();
81780
- mapping.generatedLine = generatedLine;
81781
- for (end = index; end < length; end++) {
81782
- if (this._charIsMappingSeparator(aStr, end)) {
81783
- break;
81784
- }
81785
- }
81786
- str = aStr.slice(index, end);
81787
- segment = [];
81788
- while (index < end) {
81789
- base64VLQ.decode(aStr, index, temp);
81790
- value = temp.value;
81791
- index = temp.rest;
81792
- segment.push(value);
81793
- }
81794
- if (segment.length === 2) {
81795
- throw new Error("Found a source, but no line and column");
81796
- }
81797
- if (segment.length === 3) {
81798
- throw new Error("Found a source and line, but no column");
81799
- }
81800
- mapping.generatedColumn = previousGeneratedColumn + segment[0];
81801
- previousGeneratedColumn = mapping.generatedColumn;
81802
- if (segment.length > 1) {
81803
- mapping.source = previousSource + segment[1];
81804
- previousSource += segment[1];
81805
- mapping.originalLine = previousOriginalLine + segment[2];
81806
- previousOriginalLine = mapping.originalLine;
81807
- mapping.originalLine += 1;
81808
- mapping.originalColumn = previousOriginalColumn + segment[3];
81809
- previousOriginalColumn = mapping.originalColumn;
81810
- if (segment.length > 4) {
81811
- mapping.name = previousName + segment[4];
81812
- previousName += segment[4];
81813
- }
81814
- }
81815
- generatedMappings.push(mapping);
81816
- if (typeof mapping.originalLine === "number") {
81817
- let currentSource = mapping.source;
81818
- while (originalMappings.length <= currentSource) {
81819
- originalMappings.push(null);
81820
- }
81821
- if (originalMappings[currentSource] === null) {
81822
- originalMappings[currentSource] = [];
81823
- }
81824
- originalMappings[currentSource].push(mapping);
81825
- }
81826
- }
81827
- }
81828
- sortGenerated(generatedMappings, subarrayStart);
81829
- this.__generatedMappings = generatedMappings;
81830
- for (var i = 0; i < originalMappings.length; i++) {
81831
- if (originalMappings[i] != null) {
81832
- quickSort(originalMappings[i], util.compareByOriginalPositionsNoSource);
81833
- }
81834
- }
81835
- this.__originalMappings = [].concat(...originalMappings);
81836
- };
81837
- BasicSourceMapConsumer.prototype._findMapping = function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, aColumnName, aComparator, aBias) {
81838
- if (aNeedle[aLineName] <= 0) {
81839
- throw new TypeError("Line must be greater than or equal to 1, got " + aNeedle[aLineName]);
81840
- }
81841
- if (aNeedle[aColumnName] < 0) {
81842
- throw new TypeError("Column must be greater than or equal to 0, got " + aNeedle[aColumnName]);
81843
- }
81844
- return binarySearch.search(aNeedle, aMappings, aComparator, aBias);
81845
- };
81846
- BasicSourceMapConsumer.prototype.computeColumnSpans = function SourceMapConsumer_computeColumnSpans() {
81847
- for (var index = 0; index < this._generatedMappings.length; ++index) {
81848
- var mapping = this._generatedMappings[index];
81849
- if (index + 1 < this._generatedMappings.length) {
81850
- var nextMapping = this._generatedMappings[index + 1];
81851
- if (mapping.generatedLine === nextMapping.generatedLine) {
81852
- mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;
81853
- continue;
81854
- }
81855
- }
81856
- mapping.lastGeneratedColumn = Infinity;
81857
- }
81858
- };
81859
- BasicSourceMapConsumer.prototype.originalPositionFor = function SourceMapConsumer_originalPositionFor(aArgs) {
81860
- var needle = {
81861
- generatedLine: util.getArg(aArgs, "line"),
81862
- generatedColumn: util.getArg(aArgs, "column")
81863
- };
81864
- var index = this._findMapping(
81865
- needle,
81866
- this._generatedMappings,
81867
- "generatedLine",
81868
- "generatedColumn",
81869
- util.compareByGeneratedPositionsDeflated,
81870
- util.getArg(aArgs, "bias", SourceMapConsumer2.GREATEST_LOWER_BOUND)
81871
- );
81872
- if (index >= 0) {
81873
- var mapping = this._generatedMappings[index];
81874
- if (mapping.generatedLine === needle.generatedLine) {
81875
- var source = util.getArg(mapping, "source", null);
81876
- if (source !== null) {
81877
- source = this._sources.at(source);
81878
- source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);
81879
- }
81880
- var name = util.getArg(mapping, "name", null);
81881
- if (name !== null) {
81882
- name = this._names.at(name);
81883
- }
81884
- return {
81885
- source,
81886
- line: util.getArg(mapping, "originalLine", null),
81887
- column: util.getArg(mapping, "originalColumn", null),
81888
- name
81889
- };
81890
- }
81891
- }
81892
- return {
81893
- source: null,
81894
- line: null,
81895
- column: null,
81896
- name: null
81897
- };
81898
- };
81899
- BasicSourceMapConsumer.prototype.hasContentsOfAllSources = function BasicSourceMapConsumer_hasContentsOfAllSources() {
81900
- if (!this.sourcesContent) {
81901
- return false;
81902
- }
81903
- return this.sourcesContent.length >= this._sources.size() && !this.sourcesContent.some(function(sc) {
81904
- return sc == null;
81905
- });
81906
- };
81907
- BasicSourceMapConsumer.prototype.sourceContentFor = function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {
81908
- if (!this.sourcesContent) {
81909
- return null;
81910
- }
81911
- var index = this._findSourceIndex(aSource);
81912
- if (index >= 0) {
81913
- return this.sourcesContent[index];
81914
- }
81915
- var relativeSource = aSource;
81916
- if (this.sourceRoot != null) {
81917
- relativeSource = util.relative(this.sourceRoot, relativeSource);
81918
- }
81919
- var url2;
81920
- if (this.sourceRoot != null && (url2 = util.urlParse(this.sourceRoot))) {
81921
- var fileUriAbsPath = relativeSource.replace(/^file:\/\//, "");
81922
- if (url2.scheme == "file" && this._sources.has(fileUriAbsPath)) {
81923
- return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)];
81924
- }
81925
- if ((!url2.path || url2.path == "/") && this._sources.has("/" + relativeSource)) {
81926
- return this.sourcesContent[this._sources.indexOf("/" + relativeSource)];
81927
- }
81928
- }
81929
- if (nullOnMissing) {
81930
- return null;
81931
- } else {
81932
- throw new Error('"' + relativeSource + '" is not in the SourceMap.');
81933
- }
81934
- };
81935
- BasicSourceMapConsumer.prototype.generatedPositionFor = function SourceMapConsumer_generatedPositionFor(aArgs) {
81936
- var source = util.getArg(aArgs, "source");
81937
- source = this._findSourceIndex(source);
81938
- if (source < 0) {
81939
- return {
81940
- line: null,
81941
- column: null,
81942
- lastColumn: null
81943
- };
81944
- }
81945
- var needle = {
81946
- source,
81947
- originalLine: util.getArg(aArgs, "line"),
81948
- originalColumn: util.getArg(aArgs, "column")
81949
- };
81950
- var index = this._findMapping(
81951
- needle,
81952
- this._originalMappings,
81953
- "originalLine",
81954
- "originalColumn",
81955
- util.compareByOriginalPositions,
81956
- util.getArg(aArgs, "bias", SourceMapConsumer2.GREATEST_LOWER_BOUND)
81957
- );
81958
- if (index >= 0) {
81959
- var mapping = this._originalMappings[index];
81960
- if (mapping.source === needle.source) {
81961
- return {
81962
- line: util.getArg(mapping, "generatedLine", null),
81963
- column: util.getArg(mapping, "generatedColumn", null),
81964
- lastColumn: util.getArg(mapping, "lastGeneratedColumn", null)
81965
- };
81966
- }
81967
- }
81968
- return {
81969
- line: null,
81970
- column: null,
81971
- lastColumn: null
81972
- };
81973
- };
81974
- exports2.BasicSourceMapConsumer = BasicSourceMapConsumer;
81975
- function IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {
81976
- var sourceMap = aSourceMap;
81977
- if (typeof aSourceMap === "string") {
81978
- sourceMap = util.parseSourceMapInput(aSourceMap);
81979
- }
81980
- var version3 = util.getArg(sourceMap, "version");
81981
- var sections = util.getArg(sourceMap, "sections");
81982
- if (version3 != this._version) {
81983
- throw new Error("Unsupported version: " + version3);
81984
- }
81985
- this._sources = new ArraySet();
81986
- this._names = new ArraySet();
81987
- var lastOffset = {
81988
- line: -1,
81989
- column: 0
81990
- };
81991
- this._sections = sections.map(function(s) {
81992
- if (s.url) {
81993
- throw new Error("Support for url field in sections not implemented.");
81994
- }
81995
- var offset = util.getArg(s, "offset");
81996
- var offsetLine = util.getArg(offset, "line");
81997
- var offsetColumn = util.getArg(offset, "column");
81998
- if (offsetLine < lastOffset.line || offsetLine === lastOffset.line && offsetColumn < lastOffset.column) {
81999
- throw new Error("Section offsets must be ordered and non-overlapping.");
82000
- }
82001
- lastOffset = offset;
82002
- return {
82003
- generatedOffset: {
82004
- // The offset fields are 0-based, but we use 1-based indices when
82005
- // encoding/decoding from VLQ.
82006
- generatedLine: offsetLine + 1,
82007
- generatedColumn: offsetColumn + 1
82008
- },
82009
- consumer: new SourceMapConsumer2(util.getArg(s, "map"), aSourceMapURL)
82010
- };
82011
- });
82012
- }
82013
- IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer2.prototype);
82014
- IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer2;
82015
- IndexedSourceMapConsumer.prototype._version = 3;
82016
- Object.defineProperty(IndexedSourceMapConsumer.prototype, "sources", {
82017
- get: function() {
82018
- var sources = [];
82019
- for (var i = 0; i < this._sections.length; i++) {
82020
- for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {
82021
- sources.push(this._sections[i].consumer.sources[j]);
82022
- }
82023
- }
82024
- return sources;
82025
- }
82026
- });
82027
- IndexedSourceMapConsumer.prototype.originalPositionFor = function IndexedSourceMapConsumer_originalPositionFor(aArgs) {
82028
- var needle = {
82029
- generatedLine: util.getArg(aArgs, "line"),
82030
- generatedColumn: util.getArg(aArgs, "column")
82031
- };
82032
- var sectionIndex = binarySearch.search(
82033
- needle,
82034
- this._sections,
82035
- function(needle2, section2) {
82036
- var cmp = needle2.generatedLine - section2.generatedOffset.generatedLine;
82037
- if (cmp) {
82038
- return cmp;
82039
- }
82040
- return needle2.generatedColumn - section2.generatedOffset.generatedColumn;
82041
- }
82042
- );
82043
- var section = this._sections[sectionIndex];
82044
- if (!section) {
82045
- return {
82046
- source: null,
82047
- line: null,
82048
- column: null,
82049
- name: null
82050
- };
82051
- }
82052
- return section.consumer.originalPositionFor({
82053
- line: needle.generatedLine - (section.generatedOffset.generatedLine - 1),
82054
- column: needle.generatedColumn - (section.generatedOffset.generatedLine === needle.generatedLine ? section.generatedOffset.generatedColumn - 1 : 0),
82055
- bias: aArgs.bias
82056
- });
82057
- };
82058
- IndexedSourceMapConsumer.prototype.hasContentsOfAllSources = function IndexedSourceMapConsumer_hasContentsOfAllSources() {
82059
- return this._sections.every(function(s) {
82060
- return s.consumer.hasContentsOfAllSources();
82061
- });
82062
- };
82063
- IndexedSourceMapConsumer.prototype.sourceContentFor = function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {
82064
- for (var i = 0; i < this._sections.length; i++) {
82065
- var section = this._sections[i];
82066
- var content = section.consumer.sourceContentFor(aSource, true);
82067
- if (content || content === "") {
82068
- return content;
82069
- }
82070
- }
82071
- if (nullOnMissing) {
82072
- return null;
82073
- } else {
82074
- throw new Error('"' + aSource + '" is not in the SourceMap.');
82075
- }
82076
- };
82077
- IndexedSourceMapConsumer.prototype.generatedPositionFor = function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {
82078
- for (var i = 0; i < this._sections.length; i++) {
82079
- var section = this._sections[i];
82080
- if (section.consumer._findSourceIndex(util.getArg(aArgs, "source")) === -1) {
82081
- continue;
82082
- }
82083
- var generatedPosition = section.consumer.generatedPositionFor(aArgs);
82084
- if (generatedPosition) {
82085
- var ret = {
82086
- line: generatedPosition.line + (section.generatedOffset.generatedLine - 1),
82087
- column: generatedPosition.column + (section.generatedOffset.generatedLine === generatedPosition.line ? section.generatedOffset.generatedColumn - 1 : 0)
82088
- };
82089
- return ret;
82090
- }
82091
- }
82092
- return {
82093
- line: null,
82094
- column: null
82095
- };
82096
- };
82097
- IndexedSourceMapConsumer.prototype._parseMappings = function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {
82098
- this.__generatedMappings = [];
82099
- this.__originalMappings = [];
82100
- for (var i = 0; i < this._sections.length; i++) {
82101
- var section = this._sections[i];
82102
- var sectionMappings = section.consumer._generatedMappings;
82103
- for (var j = 0; j < sectionMappings.length; j++) {
82104
- var mapping = sectionMappings[j];
82105
- var source = section.consumer._sources.at(mapping.source);
82106
- if (source !== null) {
82107
- source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL);
82108
- }
82109
- this._sources.add(source);
82110
- source = this._sources.indexOf(source);
82111
- var name = null;
82112
- if (mapping.name) {
82113
- name = section.consumer._names.at(mapping.name);
82114
- this._names.add(name);
82115
- name = this._names.indexOf(name);
82116
- }
82117
- var adjustedMapping = {
82118
- source,
82119
- generatedLine: mapping.generatedLine + (section.generatedOffset.generatedLine - 1),
82120
- generatedColumn: mapping.generatedColumn + (section.generatedOffset.generatedLine === mapping.generatedLine ? section.generatedOffset.generatedColumn - 1 : 0),
82121
- originalLine: mapping.originalLine,
82122
- originalColumn: mapping.originalColumn,
82123
- name
82124
- };
82125
- this.__generatedMappings.push(adjustedMapping);
82126
- if (typeof adjustedMapping.originalLine === "number") {
82127
- this.__originalMappings.push(adjustedMapping);
82128
- }
82129
- }
82130
- }
82131
- quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);
82132
- quickSort(this.__originalMappings, util.compareByOriginalPositions);
82133
- };
82134
- exports2.IndexedSourceMapConsumer = IndexedSourceMapConsumer;
82135
- }
82136
- });
82137
-
82138
- // ../../node_modules/source-map-js/lib/source-node.js
82139
- var require_source_node = __commonJS({
82140
- "../../node_modules/source-map-js/lib/source-node.js"(exports2) {
82141
- var SourceMapGenerator = require_source_map_generator().SourceMapGenerator;
82142
- var util = require_util();
82143
- var REGEX_NEWLINE = /(\r?\n)/;
82144
- var NEWLINE_CODE = 10;
82145
- var isSourceNode = "$$$isSourceNode$$$";
82146
- function SourceNode(aLine, aColumn, aSource, aChunks, aName) {
82147
- this.children = [];
82148
- this.sourceContents = {};
82149
- this.line = aLine == null ? null : aLine;
82150
- this.column = aColumn == null ? null : aColumn;
82151
- this.source = aSource == null ? null : aSource;
82152
- this.name = aName == null ? null : aName;
82153
- this[isSourceNode] = true;
82154
- if (aChunks != null) this.add(aChunks);
82155
- }
82156
- SourceNode.fromStringWithSourceMap = function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {
82157
- var node = new SourceNode();
82158
- var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);
82159
- var remainingLinesIndex = 0;
82160
- var shiftNextLine = function() {
82161
- var lineContents = getNextLine();
82162
- var newLine = getNextLine() || "";
82163
- return lineContents + newLine;
82164
- function getNextLine() {
82165
- return remainingLinesIndex < remainingLines.length ? remainingLines[remainingLinesIndex++] : void 0;
82166
- }
82167
- };
82168
- var lastGeneratedLine = 1, lastGeneratedColumn = 0;
82169
- var lastMapping = null;
82170
- aSourceMapConsumer.eachMapping(function(mapping) {
82171
- if (lastMapping !== null) {
82172
- if (lastGeneratedLine < mapping.generatedLine) {
82173
- addMappingWithCode(lastMapping, shiftNextLine());
82174
- lastGeneratedLine++;
82175
- lastGeneratedColumn = 0;
82176
- } else {
82177
- var nextLine = remainingLines[remainingLinesIndex] || "";
82178
- var code = nextLine.substr(0, mapping.generatedColumn - lastGeneratedColumn);
82179
- remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - lastGeneratedColumn);
82180
- lastGeneratedColumn = mapping.generatedColumn;
82181
- addMappingWithCode(lastMapping, code);
82182
- lastMapping = mapping;
82183
- return;
82184
- }
82185
- }
82186
- while (lastGeneratedLine < mapping.generatedLine) {
82187
- node.add(shiftNextLine());
82188
- lastGeneratedLine++;
82189
- }
82190
- if (lastGeneratedColumn < mapping.generatedColumn) {
82191
- var nextLine = remainingLines[remainingLinesIndex] || "";
82192
- node.add(nextLine.substr(0, mapping.generatedColumn));
82193
- remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);
82194
- lastGeneratedColumn = mapping.generatedColumn;
82195
- }
82196
- lastMapping = mapping;
82197
- }, this);
82198
- if (remainingLinesIndex < remainingLines.length) {
82199
- if (lastMapping) {
82200
- addMappingWithCode(lastMapping, shiftNextLine());
82201
- }
82202
- node.add(remainingLines.splice(remainingLinesIndex).join(""));
82203
- }
82204
- aSourceMapConsumer.sources.forEach(function(sourceFile) {
82205
- var content = aSourceMapConsumer.sourceContentFor(sourceFile);
82206
- if (content != null) {
82207
- if (aRelativePath != null) {
82208
- sourceFile = util.join(aRelativePath, sourceFile);
82209
- }
82210
- node.setSourceContent(sourceFile, content);
82211
- }
82212
- });
82213
- return node;
82214
- function addMappingWithCode(mapping, code) {
82215
- if (mapping === null || mapping.source === void 0) {
82216
- node.add(code);
82217
- } else {
82218
- var source = aRelativePath ? util.join(aRelativePath, mapping.source) : mapping.source;
82219
- node.add(new SourceNode(
82220
- mapping.originalLine,
82221
- mapping.originalColumn,
82222
- source,
82223
- code,
82224
- mapping.name
82225
- ));
82226
- }
82227
- }
82228
- };
82229
- SourceNode.prototype.add = function SourceNode_add(aChunk) {
82230
- if (Array.isArray(aChunk)) {
82231
- aChunk.forEach(function(chunk) {
82232
- this.add(chunk);
82233
- }, this);
82234
- } else if (aChunk[isSourceNode] || typeof aChunk === "string") {
82235
- if (aChunk) {
82236
- this.children.push(aChunk);
82237
- }
82238
- } else {
82239
- throw new TypeError(
82240
- "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
82241
- );
82242
- }
82243
- return this;
82244
- };
82245
- SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {
82246
- if (Array.isArray(aChunk)) {
82247
- for (var i = aChunk.length - 1; i >= 0; i--) {
82248
- this.prepend(aChunk[i]);
82249
- }
82250
- } else if (aChunk[isSourceNode] || typeof aChunk === "string") {
82251
- this.children.unshift(aChunk);
82252
- } else {
82253
- throw new TypeError(
82254
- "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
82255
- );
82256
- }
82257
- return this;
82258
- };
82259
- SourceNode.prototype.walk = function SourceNode_walk(aFn) {
82260
- var chunk;
82261
- for (var i = 0, len = this.children.length; i < len; i++) {
82262
- chunk = this.children[i];
82263
- if (chunk[isSourceNode]) {
82264
- chunk.walk(aFn);
82265
- } else {
82266
- if (chunk !== "") {
82267
- aFn(chunk, {
82268
- source: this.source,
82269
- line: this.line,
82270
- column: this.column,
82271
- name: this.name
82272
- });
82273
- }
82274
- }
82275
- }
82276
- };
82277
- SourceNode.prototype.join = function SourceNode_join(aSep) {
82278
- var newChildren;
82279
- var i;
82280
- var len = this.children.length;
82281
- if (len > 0) {
82282
- newChildren = [];
82283
- for (i = 0; i < len - 1; i++) {
82284
- newChildren.push(this.children[i]);
82285
- newChildren.push(aSep);
82286
- }
82287
- newChildren.push(this.children[i]);
82288
- this.children = newChildren;
82289
- }
82290
- return this;
82291
- };
82292
- SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {
82293
- var lastChild = this.children[this.children.length - 1];
82294
- if (lastChild[isSourceNode]) {
82295
- lastChild.replaceRight(aPattern, aReplacement);
82296
- } else if (typeof lastChild === "string") {
82297
- this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);
82298
- } else {
82299
- this.children.push("".replace(aPattern, aReplacement));
82300
- }
82301
- return this;
82302
- };
82303
- SourceNode.prototype.setSourceContent = function SourceNode_setSourceContent(aSourceFile, aSourceContent) {
82304
- this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;
82305
- };
82306
- SourceNode.prototype.walkSourceContents = function SourceNode_walkSourceContents(aFn) {
82307
- for (var i = 0, len = this.children.length; i < len; i++) {
82308
- if (this.children[i][isSourceNode]) {
82309
- this.children[i].walkSourceContents(aFn);
82310
- }
82311
- }
82312
- var sources = Object.keys(this.sourceContents);
82313
- for (var i = 0, len = sources.length; i < len; i++) {
82314
- aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);
82315
- }
82316
- };
82317
- SourceNode.prototype.toString = function SourceNode_toString() {
82318
- var str = "";
82319
- this.walk(function(chunk) {
82320
- str += chunk;
82321
- });
82322
- return str;
82323
- };
82324
- SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {
82325
- var generated = {
82326
- code: "",
82327
- line: 1,
82328
- column: 0
82329
- };
82330
- var map2 = new SourceMapGenerator(aArgs);
82331
- var sourceMappingActive = false;
82332
- var lastOriginalSource = null;
82333
- var lastOriginalLine = null;
82334
- var lastOriginalColumn = null;
82335
- var lastOriginalName = null;
82336
- this.walk(function(chunk, original) {
82337
- generated.code += chunk;
82338
- if (original.source !== null && original.line !== null && original.column !== null) {
82339
- if (lastOriginalSource !== original.source || lastOriginalLine !== original.line || lastOriginalColumn !== original.column || lastOriginalName !== original.name) {
82340
- map2.addMapping({
82341
- source: original.source,
82342
- original: {
82343
- line: original.line,
82344
- column: original.column
82345
- },
82346
- generated: {
82347
- line: generated.line,
82348
- column: generated.column
82349
- },
82350
- name: original.name
82351
- });
82352
- }
82353
- lastOriginalSource = original.source;
82354
- lastOriginalLine = original.line;
82355
- lastOriginalColumn = original.column;
82356
- lastOriginalName = original.name;
82357
- sourceMappingActive = true;
82358
- } else if (sourceMappingActive) {
82359
- map2.addMapping({
82360
- generated: {
82361
- line: generated.line,
82362
- column: generated.column
82363
- }
82364
- });
82365
- lastOriginalSource = null;
82366
- sourceMappingActive = false;
82367
- }
82368
- for (var idx = 0, length = chunk.length; idx < length; idx++) {
82369
- if (chunk.charCodeAt(idx) === NEWLINE_CODE) {
82370
- generated.line++;
82371
- generated.column = 0;
82372
- if (idx + 1 === length) {
82373
- lastOriginalSource = null;
82374
- sourceMappingActive = false;
82375
- } else if (sourceMappingActive) {
82376
- map2.addMapping({
82377
- source: original.source,
82378
- original: {
82379
- line: original.line,
82380
- column: original.column
82381
- },
82382
- generated: {
82383
- line: generated.line,
82384
- column: generated.column
82385
- },
82386
- name: original.name
82387
- });
82388
- }
82389
- } else {
82390
- generated.column++;
82391
- }
82392
- }
82393
- });
82394
- this.walkSourceContents(function(sourceFile, sourceContent) {
82395
- map2.setSourceContent(sourceFile, sourceContent);
82396
- });
82397
- return { code: generated.code, map: map2 };
82398
- };
82399
- exports2.SourceNode = SourceNode;
82400
- }
82401
- });
82402
-
82403
- // ../../node_modules/source-map-js/source-map.js
82404
- var require_source_map = __commonJS({
82405
- "../../node_modules/source-map-js/source-map.js"(exports2) {
82406
- exports2.SourceMapGenerator = require_source_map_generator().SourceMapGenerator;
82407
- exports2.SourceMapConsumer = require_source_map_consumer().SourceMapConsumer;
82408
- exports2.SourceNode = require_source_node().SourceNode;
82409
- }
82410
- });
82411
-
82412
80547
  // ../../node_modules/pngjs/lib/chunkstream.js
82413
80548
  var require_chunkstream = __commonJS({
82414
80549
  "../../node_modules/pngjs/lib/chunkstream.js"(exports2, module2) {
@@ -95734,7 +93869,7 @@ var _CI_VENDOR_COUNT_FOR_TEST = vendors_default.length;
95734
93869
  var SESSION_ID = (0, import_node_crypto3.randomUUID)();
95735
93870
  function readCliVersion() {
95736
93871
  if (true) {
95737
- return "0.22.1";
93872
+ return "0.22.2-next.0";
95738
93873
  }
95739
93874
  return "0.0.0";
95740
93875
  }
@@ -98275,14 +96410,10 @@ var axServiceBlueprint = {
98275
96410
  // ../tool-server/src/utils/capability.ts
98276
96411
  init_src();
98277
96412
  var UnsupportedOperationError = class extends Error {
98278
- toolId;
98279
- device;
98280
96413
  constructor(toolId, device, reason) {
98281
96414
  const detail = reason ? ` (${reason})` : "";
98282
96415
  super(`Tool '${toolId}' is not supported on ${device.platform} ${device.kind}${detail}.`);
98283
96416
  this.name = "UnsupportedOperationError";
98284
- this.toolId = toolId;
98285
- this.device = device;
98286
96417
  withFailureSignal(this, {
98287
96418
  error_code: FAILURE_CODES.TOOL_CAPABILITY_UNSUPPORTED_OPERATION,
98288
96419
  failure_stage: "tool_capability_assert_supported",
@@ -109239,12 +107370,7 @@ async function setClipboardText(cdp, text) {
109239
107370
  }
109240
107371
  }
109241
107372
  var ClipboardSyncState = class {
109242
- enabled = false;
109243
- set(enabled) {
109244
- this.enabled = enabled;
109245
- }
109246
- isEnabled() {
109247
- return this.enabled;
107373
+ set(_enabled) {
109248
107374
  }
109249
107375
  };
109250
107376
 
@@ -115033,7 +113159,6 @@ var http = __toESM(require("node:http"));
115033
113159
  init_src();
115034
113160
 
115035
113161
  // ../tool-server/src/utils/debugger/source-maps.ts
115036
- var import_source_map_js = __toESM(require_source_map());
115037
113162
  var ALLOWED_SOURCE_MAP_HOSTS = /* @__PURE__ */ new Set(["localhost", "127.0.0.1", "::1"]);
115038
113163
  function isAllowedSourceMapURL(raw) {
115039
113164
  let parsed;
@@ -115048,17 +113173,14 @@ function isAllowedSourceMapURL(raw) {
115048
113173
  return ALLOWED_SOURCE_MAP_HOSTS.has(hostname3);
115049
113174
  }
115050
113175
  var MAX_SOURCE_MAP_BYTES = 64 * 1024 * 1024;
115051
- async function readCappedJson(res, maxBytes = MAX_SOURCE_MAP_BYTES) {
113176
+ async function drainCappedBody(res, maxBytes = MAX_SOURCE_MAP_BYTES) {
115052
113177
  const declared = Number(res.headers.get("content-length"));
115053
113178
  if (Number.isFinite(declared) && declared > maxBytes) {
115054
113179
  throw new Error(`source map body too large (content-length ${declared} > ${maxBytes})`);
115055
113180
  }
115056
113181
  const body = res.body;
115057
- if (!body || typeof body.getReader !== "function") {
115058
- return res.json();
115059
- }
113182
+ if (!body || typeof body.getReader !== "function") return;
115060
113183
  const reader = body.getReader();
115061
- const chunks = [];
115062
113184
  let total = 0;
115063
113185
  for (; ; ) {
115064
113186
  const { done, value } = await reader.read();
@@ -115069,112 +113191,32 @@ async function readCappedJson(res, maxBytes = MAX_SOURCE_MAP_BYTES) {
115069
113191
  await reader.cancel();
115070
113192
  throw new Error(`source map body exceeded ${maxBytes} bytes`);
115071
113193
  }
115072
- chunks.push(value);
115073
113194
  }
115074
113195
  }
115075
- return JSON.parse(Buffer.concat(chunks).toString("utf-8"));
115076
113196
  }
115077
113197
  var SourceMapsRegistry = class {
115078
- maps = [];
115079
113198
  pendingRegistrations = [];
115080
- projectRoot;
115081
- constructor(projectRoot) {
115082
- this.projectRoot = projectRoot;
115083
- }
115084
113199
  /**
115085
- * Begin fetching and registering a source map from a Debugger.scriptParsed event.
115086
- * Returns immediately; `waitForPending()` blocks until all maps are loaded.
113200
+ * Begin fetching the source map a Debugger.scriptParsed event points at.
113201
+ * Takes the whole event shape, though only the URL is read now. Returns
113202
+ * immediately; use `waitForPending()` to block until every fetch has settled.
115087
113203
  */
115088
113204
  registerFromScriptParsed(scriptUrl, scriptId, sourceMapURL) {
115089
113205
  if (!sourceMapURL) return;
115090
- const p = this.doRegister(scriptUrl, scriptId, sourceMapURL);
113206
+ const p = this.doRegister(sourceMapURL);
115091
113207
  this.pendingRegistrations.push(p);
115092
113208
  }
115093
113209
  async waitForPending() {
115094
113210
  await Promise.allSettled(this.pendingRegistrations);
115095
113211
  this.pendingRegistrations = [];
115096
113212
  }
115097
- /**
115098
- * Resolve an original source file + line to its generated position in the bundle.
115099
- *
115100
- * `filePath` may be project-relative ("src/Foo.tsx"), absolute, or aliased
115101
- * ("/[metro-project]/App.tsx").
115102
- */
115103
- toGeneratedPosition(filePath, line1Based, column0Based = 0) {
115104
- const candidates = this.buildSourceCandidates(filePath);
115105
- for (const map2 of this.maps) {
115106
- for (const candidate of candidates) {
115107
- if (!map2.sources.some((s) => s === candidate)) continue;
115108
- try {
115109
- const pos = map2.consumer.generatedPositionFor({
115110
- source: candidate,
115111
- line: line1Based,
115112
- column: column0Based,
115113
- bias: import_source_map_js.SourceMapConsumer.LEAST_UPPER_BOUND
115114
- });
115115
- if (pos.line !== null) {
115116
- return {
115117
- scriptUrl: map2.scriptUrl,
115118
- scriptId: map2.scriptId,
115119
- line1Based: pos.line,
115120
- column0Based: pos.column ?? 0
115121
- };
115122
- }
115123
- } catch {
115124
- }
115125
- }
115126
- }
115127
- return null;
115128
- }
115129
- /** Matching entry in a registered map's `sources`, or null. */
115130
- findMatchingSource(filePath) {
115131
- const candidates = this.buildSourceCandidates(filePath);
115132
- for (const map2 of this.maps) {
115133
- for (const candidate of candidates) {
115134
- if (map2.sources.includes(candidate)) return candidate;
115135
- }
115136
- }
115137
- return null;
115138
- }
115139
- buildSourceCandidates(filePath) {
115140
- const normalized = filePath.replace(/\\/g, "/").replace(/^\.\//, "");
115141
- const candidates = [];
115142
- if (normalized.startsWith("/")) {
115143
- candidates.push(normalized);
115144
- }
115145
- candidates.push(`/[metro-project]/${normalized}`);
115146
- if (this.projectRoot) {
115147
- candidates.push(`${this.projectRoot}/${normalized}`);
115148
- }
115149
- const suffix = normalized.startsWith("/") ? normalized : `/${normalized}`;
115150
- for (const map2 of this.maps) {
115151
- for (const src of map2.sources) {
115152
- if (src.endsWith(suffix) && !candidates.includes(src)) {
115153
- candidates.push(src);
115154
- }
115155
- }
115156
- }
115157
- return candidates;
115158
- }
115159
- async doRegister(scriptUrl, scriptId, sourceMapURL) {
113213
+ async doRegister(sourceMapURL) {
115160
113214
  try {
115161
- let rawData;
115162
- if (sourceMapURL.startsWith("data:")) {
115163
- const base64Part = sourceMapURL.split(",")[1];
115164
- if (!base64Part) return;
115165
- const decoded = Buffer.from(base64Part, "base64").toString("utf-8");
115166
- rawData = JSON.parse(decoded);
115167
- } else {
115168
- if (!isAllowedSourceMapURL(sourceMapURL)) return;
115169
- const res = await fetch(sourceMapURL, { redirect: "error" });
115170
- if (!res.ok) return;
115171
- rawData = await readCappedJson(res);
115172
- }
115173
- const consumer = new import_source_map_js.SourceMapConsumer(rawData);
115174
- const consumerSources = consumer.sources;
115175
- const rawSources = rawData?.sources;
115176
- const sources = Array.isArray(consumerSources) ? Array.from(consumerSources) : Array.isArray(rawSources) ? rawSources.slice() : [];
115177
- this.maps.push({ scriptUrl, scriptId, consumer, sources });
113215
+ if (sourceMapURL.startsWith("data:")) return;
113216
+ if (!isAllowedSourceMapURL(sourceMapURL)) return;
113217
+ const res = await fetch(sourceMapURL, { redirect: "error" });
113218
+ if (!res.ok) return;
113219
+ await drainCappedBody(res);
115178
113220
  } catch {
115179
113221
  }
115180
113222
  }
@@ -115454,13 +113496,6 @@ function makeStubSourceResolver() {
115454
113496
  readSourceFragment: unsupported
115455
113497
  };
115456
113498
  }
115457
- var StubSourceMapsRegistry = class extends SourceMapsRegistry {
115458
- constructor() {
115459
- super("");
115460
- }
115461
- async waitForPending() {
115462
- }
115463
- };
115464
113499
  var chromiumJsRuntimeDebuggerBlueprint = {
115465
113500
  namespace: CHROMIUM_JS_RUNTIME_DEBUGGER_NAMESPACE,
115466
113501
  getURN(payload) {
@@ -115526,7 +113561,7 @@ var chromiumJsRuntimeDebuggerBlueprint = {
115526
113561
  const consoleServer = await createConsoleLogServer(consoleEvents, logWriter);
115527
113562
  await cdp.addBinding("__argent_callback").catch(() => {
115528
113563
  });
115529
- const sourceMaps = new StubSourceMapsRegistry();
113564
+ const sourceMaps = new SourceMapsRegistry();
115530
113565
  const sourceResolver = makeStubSourceResolver();
115531
113566
  const api = {
115532
113567
  port,
@@ -117225,7 +115260,7 @@ var jsRuntimeDebuggerBlueprint = {
117225
115260
  });
117226
115261
  const cdp = new CDPClient(selected.webSocketUrl);
117227
115262
  await cdp.connect();
117228
- const sourceMaps = new SourceMapsRegistry(metro.projectRoot);
115263
+ const sourceMaps = new SourceMapsRegistry();
117229
115264
  cdp.events.on("scriptParsed", (script) => {
117230
115265
  sourceMaps.registerFromScriptParsed(script.url, script.scriptId, script.sourceMapURL);
117231
115266
  });
@@ -119705,9 +117740,6 @@ function makeIosImpl(registry2) {
119705
117740
  }
119706
117741
 
119707
117742
  // ../tool-server/src/utils/simctl-backend.ts
119708
- var import_node_child_process20 = require("node:child_process");
119709
- var import_node_util14 = require("node:util");
119710
- var execFileAsync14 = (0, import_node_util14.promisify)(import_node_child_process20.execFile);
119711
117743
  var remoteSimctl = {
119712
117744
  launch: simctlLaunch,
119713
117745
  terminate: simctlTerminate
@@ -119909,10 +117941,10 @@ Common Android packages: com.android.settings, com.android.chrome, com.google.an
119909
117941
  init_zod();
119910
117942
 
119911
117943
  // ../tool-server/src/tools/restart-app/platforms/ios.ts
119912
- var import_node_child_process21 = require("node:child_process");
119913
- var import_node_util15 = require("node:util");
117944
+ var import_node_child_process20 = require("node:child_process");
117945
+ var import_node_util14 = require("node:util");
119914
117946
  init_src();
119915
- var execFileAsync15 = (0, import_node_util15.promisify)(import_node_child_process21.execFile);
117947
+ var execFileAsync14 = (0, import_node_util14.promisify)(import_node_child_process20.execFile);
119916
117948
  function makeIosImpl2(registry2) {
119917
117949
  return {
119918
117950
  requires: ["xcrun"],
@@ -119926,11 +117958,11 @@ function makeIosImpl2(registry2) {
119926
117958
  const blocked = await precheckNativeDevtools(nativeDevtools, udid);
119927
117959
  if (blocked) return blocked;
119928
117960
  try {
119929
- await execFileAsync15("xcrun", await simctlArgsForUdid(udid, ["terminate", udid, bundleId]));
117961
+ await execFileAsync14("xcrun", await simctlArgsForUdid(udid, ["terminate", udid, bundleId]));
119930
117962
  } catch {
119931
117963
  }
119932
117964
  try {
119933
- await execFileAsync15("xcrun", await simctlArgsForUdid(udid, ["launch", udid, bundleId]));
117965
+ await execFileAsync14("xcrun", await simctlArgsForUdid(udid, ["launch", udid, bundleId]));
119934
117966
  } catch (err) {
119935
117967
  throw new FailureError(
119936
117968
  `Failed to restart iOS app ${bundleId} on ${udid}.`,
@@ -120089,11 +118121,11 @@ Returns { restarted, bundleId }. Fails if the app is not installed.`,
120089
118121
  init_zod();
120090
118122
 
120091
118123
  // ../tool-server/src/tools/reinstall-app/platforms/ios.ts
120092
- var import_node_child_process22 = require("node:child_process");
120093
- var import_node_util16 = require("node:util");
118124
+ var import_node_child_process21 = require("node:child_process");
118125
+ var import_node_util15 = require("node:util");
120094
118126
  var import_node_path15 = require("node:path");
120095
118127
  init_src();
120096
- var execFileAsync16 = (0, import_node_util16.promisify)(import_node_child_process22.execFile);
118128
+ var execFileAsync15 = (0, import_node_util15.promisify)(import_node_child_process21.execFile);
120097
118129
  var iosImpl = {
120098
118130
  requires: ["xcrun"],
120099
118131
  handler: async (_services, params) => {
@@ -120101,11 +118133,11 @@ var iosImpl = {
120101
118133
  const absolute = (0, import_node_path15.resolve)(appPath);
120102
118134
  const prefix = simctlPrefix(await deviceSetForUdid(udid));
120103
118135
  try {
120104
- await execFileAsync16("xcrun", [...prefix, "uninstall", udid, bundleId]);
118136
+ await execFileAsync15("xcrun", [...prefix, "uninstall", udid, bundleId]);
120105
118137
  } catch {
120106
118138
  }
120107
118139
  try {
120108
- await execFileAsync16("xcrun", [...prefix, "install", udid, absolute]);
118140
+ await execFileAsync15("xcrun", [...prefix, "install", udid, absolute]);
120109
118141
  } catch (err) {
120110
118142
  throw new FailureError(
120111
118143
  `Failed to install iOS app bundle on ${udid}.`,
@@ -120261,10 +118293,10 @@ var PERMISSION_NAMES = [
120261
118293
  ];
120262
118294
 
120263
118295
  // ../tool-server/src/tools/settings-permissions/platforms/ios.ts
120264
- var import_node_child_process23 = require("node:child_process");
120265
- var import_node_util17 = require("node:util");
118296
+ var import_node_child_process22 = require("node:child_process");
118297
+ var import_node_util16 = require("node:util");
120266
118298
  init_src();
120267
- var execFileAsync17 = (0, import_node_util17.promisify)(import_node_child_process23.execFile);
118299
+ var execFileAsync16 = (0, import_node_util16.promisify)(import_node_child_process22.execFile);
120268
118300
  var SIMCTL_ACTION = {
120269
118301
  grant: "grant",
120270
118302
  deny: "revoke",
@@ -120289,7 +118321,7 @@ var NON_TCC_GRANT_NEEDS_INSTALL = /* @__PURE__ */ new Set([
120289
118321
  ]);
120290
118322
  var localBackend = {
120291
118323
  async run(udid, simctlAction, service, bundleId) {
120292
- await execFileAsync17(
118324
+ await execFileAsync16(
120293
118325
  "xcrun",
120294
118326
  await simctlArgsForUdid(udid, ["privacy", udid, simctlAction, service, bundleId]),
120295
118327
  { timeout: 3e4 }
@@ -120297,7 +118329,7 @@ var localBackend = {
120297
118329
  },
120298
118330
  async isInstalled(udid, bundleId) {
120299
118331
  try {
120300
- await execFileAsync17(
118332
+ await execFileAsync16(
120301
118333
  "xcrun",
120302
118334
  await simctlArgsForUdid(udid, ["get_app_container", udid, bundleId]),
120303
118335
  { timeout: 15e3 }
@@ -120580,8 +118612,8 @@ Returns { action, permission, bundleId, applied, skipped? }: \`applied\` lists t
120580
118612
  init_zod();
120581
118613
 
120582
118614
  // ../tool-server/src/tools/open-url/platforms/ios.ts
120583
- var import_node_child_process24 = require("node:child_process");
120584
- var import_node_util18 = require("node:util");
118615
+ var import_node_child_process23 = require("node:child_process");
118616
+ var import_node_util17 = require("node:util");
120585
118617
  init_src();
120586
118618
 
120587
118619
  // ../tool-server/src/tools/open-url/deep-link-note.ts
@@ -120591,12 +118623,12 @@ function httpDeepLinkNote(url2) {
120591
118623
  }
120592
118624
 
120593
118625
  // ../tool-server/src/tools/open-url/platforms/ios.ts
120594
- var execFileAsync18 = (0, import_node_util18.promisify)(import_node_child_process24.execFile);
118626
+ var execFileAsync17 = (0, import_node_util17.promisify)(import_node_child_process23.execFile);
120595
118627
  var iosImpl3 = {
120596
118628
  requires: ["xcrun"],
120597
118629
  handler: async (_services, params) => {
120598
118630
  try {
120599
- await execFileAsync18(
118631
+ await execFileAsync17(
120600
118632
  "xcrun",
120601
118633
  await simctlArgsForUdid(params.udid, ["openurl", params.udid, params.url])
120602
118634
  );
@@ -120712,8 +118744,8 @@ Returns { opened, url, note? }. note carries the deep-linking caveat when a web
120712
118744
  };
120713
118745
 
120714
118746
  // ../tool-server/src/tools/screenshot/index.ts
120715
- var import_node_child_process25 = require("node:child_process");
120716
- var import_node_util19 = require("node:util");
118747
+ var import_node_child_process24 = require("node:child_process");
118748
+ var import_node_util18 = require("node:util");
120717
118749
  var os9 = __toESM(require("node:os"));
120718
118750
  var path22 = __toESM(require("node:path"));
120719
118751
  init_zod();
@@ -121127,7 +119159,7 @@ function scalePng(src, scale) {
121127
119159
  }
121128
119160
 
121129
119161
  // ../tool-server/src/tools/screenshot/index.ts
121130
- var execFileAsync19 = (0, import_node_util19.promisify)(import_node_child_process25.execFile);
119162
+ var execFileAsync18 = (0, import_node_util18.promisify)(import_node_child_process24.execFile);
121131
119163
  var zodSchema15 = external_exports.object({
121132
119164
  udid: external_exports.string().describe(
121133
119165
  "Target device id from `list-devices` (iOS UDID, Android serial, Apple TV UDID, Vega serial, or Chromium id)."
@@ -121157,11 +119189,11 @@ async function tvScreenshot(udid, scale, signal) {
121157
119189
  os9.tmpdir(),
121158
119190
  `argent-tv-screenshot-${udid.slice(0, 8)}-${process.hrtime.bigint()}.png`
121159
119191
  );
121160
- await execFileAsync19("xcrun", await simctlArgsForUdid(udid, ["io", udid, "screenshot", file2]), {
119192
+ await execFileAsync18("xcrun", await simctlArgsForUdid(udid, ["io", udid, "screenshot", file2]), {
121161
119193
  signal
121162
119194
  });
121163
119195
  if (scale < 1) {
121164
- await execFileAsync19("sips", ["-Z", String(await tvTargetLongSide(file2, scale)), file2], {
119196
+ await execFileAsync18("sips", ["-Z", String(await tvTargetLongSide(file2, scale)), file2], {
121165
119197
  signal
121166
119198
  }).catch(() => {
121167
119199
  });
@@ -121171,7 +119203,7 @@ async function tvScreenshot(udid, scale, signal) {
121171
119203
  async function tvTargetLongSide(file2, scale) {
121172
119204
  let longSide = 3840;
121173
119205
  try {
121174
- const { stdout } = await execFileAsync19("sips", ["-g", "pixelWidth", "-g", "pixelHeight", file2]);
119206
+ const { stdout } = await execFileAsync18("sips", ["-g", "pixelWidth", "-g", "pixelHeight", file2]);
121175
119207
  const width = Number(/pixelWidth:\s*(\d+)/.exec(stdout)?.[1]);
121176
119208
  const height = Number(/pixelHeight:\s*(\d+)/.exec(stdout)?.[1]);
121177
119209
  if (Number.isFinite(width) && Number.isFinite(height) && width > 0 && height > 0) {
@@ -122771,12 +120803,12 @@ var shakeZodSchema = external_exports.object({
122771
120803
  });
122772
120804
 
122773
120805
  // ../tool-server/src/tools/shake/platforms/ios.ts
122774
- var import_node_child_process27 = require("node:child_process");
122775
- var import_node_util20 = require("node:util");
120806
+ var import_node_child_process26 = require("node:child_process");
120807
+ var import_node_util19 = require("node:util");
122776
120808
  init_src();
122777
120809
 
122778
120810
  // ../tool-server/src/utils/window-shake.ts
122779
- var import_node_child_process26 = require("node:child_process");
120811
+ var import_node_child_process25 = require("node:child_process");
122780
120812
  var MICROINTERACTIONS_FLAG = "microinteractions";
122781
120813
  var AMPLITUDE = 22;
122782
120814
  var STEPS = 60;
@@ -122882,7 +120914,7 @@ end run
122882
120914
  }
122883
120915
  function runOsascript(script) {
122884
120916
  return new Promise((resolve12, reject) => {
122885
- const child = (0, import_node_child_process26.execFile)(
120917
+ const child = (0, import_node_child_process25.execFile)(
122886
120918
  "/usr/bin/osascript",
122887
120919
  ["-"],
122888
120920
  { timeout: OSASCRIPT_TIMEOUT_MS },
@@ -122975,7 +121007,7 @@ async function prepareHostWindowShake(target) {
122975
121007
  }
122976
121008
 
122977
121009
  // ../tool-server/src/tools/shake/platforms/ios.ts
122978
- var execFileAsync20 = (0, import_node_util20.promisify)(import_node_child_process27.execFile);
121010
+ var execFileAsync19 = (0, import_node_util19.promisify)(import_node_child_process26.execFile);
122979
121011
  var SHAKE_NOTIFICATION = "com.apple.UIKit.SimulatorShake";
122980
121012
  var SHAKE_INTERVAL_MS = 400;
122981
121013
  var sleep11 = (ms) => new Promise((r) => setTimeout(r, ms));
@@ -123015,7 +121047,7 @@ var iosImpl4 = {
123015
121047
  if (i > 0) await sleep11(SHAKE_INTERVAL_MS);
123016
121048
  shaker.begin();
123017
121049
  try {
123018
- await execFileAsync20("xcrun", args, { timeout: 15e3 });
121050
+ await execFileAsync19("xcrun", args, { timeout: 15e3 });
123019
121051
  } catch (err) {
123020
121052
  const error52 = err instanceof Error ? err : new Error(String(err));
123021
121053
  throw shakeFailure(udid, error52.message, error52);
@@ -135733,8 +133765,8 @@ var import_util8 = require("util");
135733
133765
  var DEFAULT_EXEC_TIMEOUT_MS = 6e4;
135734
133766
  var DEFAULT_EXEC_MAX_BUFFER = 256 * 1024 * 1024;
135735
133767
  async function execFileAsyncWithTimeout(file2, args, options = {}) {
135736
- const execFileAsync25 = (0, import_util8.promisify)(import_child_process2.execFile);
135737
- const { stdout, stderr } = await execFileAsync25(file2, args, {
133768
+ const execFileAsync24 = (0, import_util8.promisify)(import_child_process2.execFile);
133769
+ const { stdout, stderr } = await execFileAsync24(file2, args, {
135738
133770
  encoding: "utf-8",
135739
133771
  ...options,
135740
133772
  // Applied after ...options so a caller cannot weaken the guards; maxBuffer
@@ -139747,7 +137779,7 @@ var WATERMARK_PNG_HEIGHT = 277;
139747
137779
  var WATERMARK_PNG_BASE64 = "iVBORw0KGgoAAAANSUhEUgAAA4QAAAEVCAYAAAC46yv0AAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOydd7xkRbX916qGIcwQBAaQDEPOacgqIgoCgxJEQRiCCuJ7CCoIzwQYfoIYAJ8BFAUERYLwAEUBMcCoMAwZiUMSkJwGJMycWr8/ui709D23Y1Wf7tP7+/ncz3zm3HN27e7b4eyqXWsRhtEiksYBmCrp8wBWKzqffoLkqiRnFp2HYRiGYRiGYbTDPEUnYPQ/ksYD+LikzwFYvuh8+pTNAVhBaBiGYRiGYQwUVhAaYyJpMe/9YZIOA7B40fn0M977zQD8sug8jOFB0ju89zunHsc5dwHJGanHMQzDMAyjGKwgNEYhaSnv/aGSjiC5SNH5DAIkNy86B2O4kHQcye1Sj+O9XxnAh1OPYxiGYRhGMbDoBIz+QdKq3vvPk5wKYL4mp2cAXupBWkXwtg6ueY3kIiTfiJ6NYdQhaUVJDwBwPRjuDZLLkHy2B2MZhmEYhmEYvUbSBlmWnee9n+O9V5Of17Is+5GkVYrOOyaSnKQ9vPc3tvAc5P5Imlz04zCGgyzLju30ddrha/tTRT9mwzAMwzAMIzKStvHeX+arNLspnJVl2SmSli0675hImlfSVO/9P1u8OX5A0uFZlv0y56b5v4p+PEb5kUTv/f29LAi99zcU/bgNwzAMwzCMSIRC8KoWbwSfzrLsOEmLFZ13TCTNJ+lg7/0jLT4Pt0maKmmecP0n68/Jsuysoh+XUX4kvbvHxeDIhMd6RT92wzAMwzAMo0NCS+QU7/0NLd4A/lvS0cFyojRIWljS4d77x1t8Hq6TNEUS6+JslHPu3UU9LmN4yLLsrCIKwizLTir6sRuGYRiGYRhtImlcaIm8u8Ubv5mSDpc0f9G5x0TSklmWHee9f76dQrBBvHm89y/XXeMldSJIYxgtIWmC935WEQWh9/4JSfMW/RwYhmEYhhEXs50oKZImAPiYpCMBLNfCJbeS/C6Ac0lmabPrHZJW8t5/RtInSC7Q5HQP4Hckv0pyeqMTSc7x3t8MYJvawwAmA7iyu6wNY0w+DGBCQWMvBWAHAJcXNL5hGIZhFI6kpdDavXWrzCF5a8R4xrATWiKP9t4/001L5KAjad0sy8723s9u4Tl4PcuysyWt2c4YWZZ9pz6WpC+nekyG4b2/rqDVwZGfC4t+DgzDMAyjSCQdFfm7tXBbJ1shLAm1ZvIAmpnJC8BvSX6T5N96kF7PkLSxpGMk7UmyWZH7iqQznHMnOecebXcs59z1kurH36zdOIbRCpJWk7RVwWlMkTSR5NMF52EYhmEYRiSsIBxwJK3ivT9c0sEkm+37G2mJPI7kjF7k1yskbRNEcHZp4fSXJP0oFILdzMpcn3Ns8y7iGcaYeO8PaGGSIzXjAOwN4NSC8zAMwzAMwxhuJK3fQUvk6kXnHZMa5dTrWxXFCBYazVZQW8Z7/0RO2+jKseIbBlB9rfvWLVJS/9xU9PNhGIZhGEVhLaNG4dSshO3cwmrBy5J+5pz7lnPusZ4k2AOC0uHeko4BsFYLlzxI8hQApznnXouczg0A6tVINwPwYORxjOHmvQCWLzqJwEaSNrAN8IZhGIZRDlzRCRitEczkr5Z0LYBdUFW0HItnJB1PcsVKpXI4yVIUg5LGB0uMmZLOQvNi8DaS+5NcneQpJGMXgyA5qm3Ue29to0ZUvPcHFp1DLd77A4rOwTAMwzCMONgKYR8jyQHYWdJXJG3awiVPkDwZwPedc/9JnF7PkLQwgAPDiuDSLVwyjeSJAC4nqaZnd8cN9QdImrCMEQ1Ji0jateg8aiG5n6SjSb5RdC6GYRiGYXSHFYR9iKRxAD4i6QsA1mjhkpkkvw/gtBSrYEUhaUnv/ackHQ5g0RYumUbyWJJ/TJ1bDTegKtZTu9q+iaR5Sc7uYR5GefkogGYemr1mcQA7Abik6EQMwzAMw+gOaxntIyRNqGuJbFYM3hpaItdI1RJZBJJWzrLsFEkPkTwWjYtBj+pK4GTn3DY9LgZB8kUA99Ydnh/Aer3Mwygvkg4oOoc8+jUvwzAMwzDaw1YI+wBJS3jv/1vSYQAWa+GSXrZE9gxJ63nvj5K0N8lmr803JP3aOfcNkvf0JMExkHQ9yXpT+80BmBqj0RWS1pE0ueg8xmBnSUuTfKLoRAzDMAzD6BxbISwQSUsFG4SZYSWsUTEoVAvArcJK2GVlKQYlbe29v0zSrST3Q+OJipclnUpyUqVSmVp0MQgAzrlR+wi997aP0OiafhOTqWMeVD0JDcMwDMMYYGyFsAA6NJM/lmSpVpzaNJN/VtL/OudOdc49lzy59hilNErSlEaNrpA0j6SPFp1HIyQdBOB7RedhGIZhGEbnWEHYQySt770/UtI+JCtNTh9pifwayft6kmAPqFFO/XKLrXBPSvqxc+57zrkXU+fXIbcBeBVzC3+sKWlRki8UlJMx+OyE1lR1i2RdSRuXbbLKMAzDMIYJaxntAcFD8DJJt4SWyEbF4EhL5MqhJbIUxaCkcZKmSrpT0qUAmhWDD5A8guRKlUrluCDe0pcENdFb6g8D2KSAdIySIKmf20XfxDwJDcMwDGOwsYIwIZK2995Pa9NMfoVgJv94j9JMSo2Z/P1BObVefKWeETP5gVJOlTSqbRRVYRnDaBtJE1FdIYzJQ5HjAQBI7iNpvhSxDcMwDMNIjxWEkZHkJE3x3t8o6SoAWzW55JGwErZiWAl7vhd5pkbSwjWF4MkAlm9yyTSSu5LckOTZJOf0Is9Y5AnLSDJhGaNTPgpgXMyAQZl4esyYgcUBTEkQ1zAMwzCMHmB7CCNRYyb/RQCrt3DJiJn8j0m+nja73lFjJn8EgEVauOTqIJjzt9S5JcZWCI1oJPD4ewPABSQrKWwsQr4Xxo5rGIZhGIbR94yYyXvvH/Xeq4Wfm8NeumaiMgPFiJm89/4/LTwHWdhTuWnRecfEe/9k/WOVtELReRmDhaSNW/wsaefnghB7Me/9awniz5b09qKfO8MwDMNIjaSjIn+HPlv0Y7KW0Q6RtETwEHw4tEQu2+SSkZbIjUNLZNaLPFMjab0sy86WdC/JT2Nupc163pD0C5JrO+emkLyxV3n2iLx2PFslNNoihfcgyV+Ef58D8NvY8VHtNtk3QVzDMAzDMBJjBWGbSFo6y7ITJD3Uhpn8liU0kx9RTm3HTH6VfjGTTwFJM6g3ukLSOJIfiRz2aQBXjPyH5FmR4wMAJH0sRVzDMAzDMNJiewhbpAMz+YtIHk/yzl7k1yvaNJN/RtIP+tRMPgVmUG90ywcALBEzoKRfOedm1xz6HYAnASwVcxwAa0jaLG9ixDAMwzCM/sVWCJsgaYO6lshGxeDroSVyTefcXmUpBmuUU2+osdBoxBPBQmNSUE4dhmIQqLaM1q8AbyLJJl6MlkggJgPn3Nm1/yc5R9J5sccBzJPQMAzDMIwSMdIS6as02wz6UpZlp0hapui8YzJiJu+9v6vFTbEzg9VEsxXU0uK9vzdHWGbDovMy+h9JS3vvZ0feqJ47KSVpowTCMvLevyCp0T5iwzAMwxhoTFSm5EhiWAlr1Uz+6bAStmJJzeRntmgmf2swk199kMzkUzCGQb3tIzRaYX9EbuMnefYYx28GcFvMsQKLANg1QVzDMAzDMBJhBSHeaomUNF3SpWhuJv9wMJNfqYRm8kfXKKcu1+SSEeXUjcqknNoNeQb13nvbR2g0RdL+kUN6AL8c65djFYvdkqLt1TAMwzCMdAz13qYOzOTvJ3kSgJ+TnN307AFB0lLe+0OH0Ew+BXnCMrZCaDRE0paS1ooc9o8k/9Xg9+cAOAHxvwfeJ2n5JmMbxlxIWhzVbpS1vPcrAFiG5JKoKnnPD2BeAPMBeBnA8wBmSXoZwAvOubsB3AXgDpJPF/IADIT98isDWAPAqt775QBMJDkRwNtQ/RuOAzAewAuo7rmfg6oA3TMAnnHOPQrgAQAzUb3ner33j8SQtBCAVUd+vPerklwIwKKovh8XRPV+8UUAbwB4BcArkv7lnHsIwMOo/h1vL9P9cpkZyoJQ0gQAH5N0FJr7BwLALSS/B+DcMq2CSVrZe39EG8qpvyN5HMkZvchvQLkFwOuo3riMsLakhUm+VFBORp/jvT+AbNSd3j4j3oMNfv+k9/5KADtFHbjaebIvgG9GjtsTJB0s6UPdxiH5U5K/jpFTLZLmQ/WGew0Aa3jvJ6B6s70AyQVQvWGrz+U7JH8fO5dukLQOgPd477ciuZWk5Ud+1+p7YeQ86S0tL+/9MwBuCo/3cpL3Rc57QUn/122cYEN1aoycikLSEqj+DbckubmkjVDz3dfOZ1re3xLAHO/9nZJmOOeuB3ANyfujJF8QkiqSun4vkryK5Ldi5AQAkt4OYFvv/bYk3yVpjbrxWs2r/m/4mvd+hqTrnXN/BXAlyVdj5d0JkhbvVlhN0oqx8gks5L2/KnLMEWY553ZvdlLcO5A+R9IS3vv/JnkYGvsHjjCN5IkkL0udWy+RtL73/kiSe6P5pMAbkn7tnPs6yXt7kd+g473/B+oM6UluR/JPBaVk9DGSFpD0OHJu5LvgFZJLk3y5ydh7SYpetAC4l+Sag+i7mmXZSSSP7DaOpJ9UKpWDI8RZBcCOkt4NYGMAK6HN7R4kP0byZ93m0i2StvDe701yCqorSb3gPkmXO+fOIXlTt8EkbSDplghxflipVP6r2zi9RtKqAPaWtDOAyej91qNHJP3eOXcRqgXinB6P3xWS5pEUY8XsBudcV9tRJE0EsE/YrrBRhJxa4RUAV5C8GMDFRRSHkpaR9Fivxy2Q55xzizc7aShWCCWt4L3/nKSPk1ywxcueBPCqpE977z+dMr8es1DwCms2GTBL0o+dc991zj3Rk8xKgqQbcvwHNwNgBaGRx+6IWwxC0gXOuYbFYOBSVNvv3hZzfFRb8LcEMLRt5SSbiXGNSWjX2l/SVEmTI6bVcyQtAuATkg6StFbslfAWWI3kZyR9xns/neR3AVzQRbfPGs1PKReSFgSwr6T9JTXTWEjNCiQPlnQwgGezLDvfOXcayVsLzqvXrCPJkfTtXihpO0mHSdoJ1RbeXjIewJ6S9kT17/cT59wPSD7a4zyMOoalIPwjyVXbvGwpxDduHgSGzUw+Os656yUdVntMkgnLGLlIOjB2TOdcw3bREUi+lmXZ+SQPiZ1D8CQc2oIQzdWZRyFpgvf+yDb2c/ctkt7uvf+MpEMALFx0PoHJkn4F4HhJR3bY/dOK3kApCFY4nw7FV9MVhgJYnOShkg713v8jFPsXdVIkDSDjUd3f13LnlqStJX1d0rbJsmqPxUkeI+nILMvOcc59ieQwrdz1FaVXGZX0NgCTis5jAHgkKKeuOGRm8ikYpTQKs54wcpC0HIBtI4d9DMBfWj3ZOXdW5PEBACQ/HFYWhpWJQSilJSTtIek+ksdigIvBsMfuaEl3kzwK/VMM1rK6pEu995dJakVH4E2896VfIZT0tizLvilpJsn/QX8Wg/VsIel8SXeGlfXS398CWL+VkySt6r2/QtJ1iP99E4N5SB4g6d4sy74adD6MHjMMb5hNMWR7JdvkHpIHkVw1eAj+p+iESsD9AOpNRpcNN/+GUctBACoxA0o6q512OJJ/B3B3zBwCCwPYLUHcQaLpKmFQeT5f0oUAlu5BTskIe1Lvk3QC+rMQrGcXSbdJmtrqBSRLu0IYBE/+OxSCx6CqJDlorCnpLEkzwr7b0uK9b1gQquqtfbCkmwHs2KO0umFBkl8ORf27ik5m2BiGgtBWZsYmI7kxyVLZaBRNENKYnvMrey0abxK+rFu+EW2VVttFayF5Tuw8APMkRJOCUNJ7Jf0TQNeqpkUS9ulfHgSKlik6nzZZTNJZWZadpqoVVTNKuUIoaRNJ10v6PuLvKS6CDSVdk2XZeUE8pXSQHLMglLSspD9IOg3AoK24rSDpj2GVet6ikxkWSr+HMG9DPsmjAfyxgHQKRdLZANauOVQBsCGGe59PEiRdT3LHumOHSFqthcvnDVLyrbIQWnsvyzl3mBX/fcM7Eb+d/QaSnaz2nQXgeERerQSwnaQVSD4SOe5A4L0fsyCU9HFJP0TVm21gkbS7pJ9iwIuIIFSyjqQ9SD6Zd46kpYNITmmQVAFwjKTjUMJ7wtC6vp2kT5G8sOh8IpNbEKqqhPtbtGar1q9Uwv7Cd0j6IMlnik6o7JTuzZ9DnkLbbwbdy6YTsiy7juTadYc3hxWE0XHOPSWNUtx/n6T3tXJ9QiW+0wF0Lb1udI/3/sAE3oNnd3jdo977vwDYLmpC1S6UqQC+HjnuQEByrbzjWZZ9W9Lnep1PTCTN570/NQiOlIWtJf1D0o4k78n5fanaRVWV3/8VqpNTZWaipAuyLPtf59znSL5RdEKRWEnSoiRfGDkgafvQfl6WiYutw8r1TmO8J41IlLplNOzZqm9feQ7AzALSKZxg7DoX3ntTv4yIpHd476+U9IOicxmDgZawLwuSJpDcI3LYNwB07ClIMom4jKp2A8O6j3vUCmGWZV8nOejF4OKS/kCyTMXgCCtJ+qOkvNX70rSLStpU0g0ofzH4JiT/W9JfJA30Xt0aCGDdkf9I2kfS71CeYnCEVSRdK6lXXolDSakLQuTf/E4fRLPkSIwqCHP88owOkLS99/7Pkv4K4L1F5zMW3nsrCPuDvRB/X8dvu2yruQjArFjJ1LAygG0SxB0EVpY0/8h/JB1K8otFJtQtktaQdCOAMos+LBuKwhVrD5ZFYTS0+f4Vg91S2ClbSPqbpFL8LRHaRiW9R9LPMeAt6A2YGPZEtmshZ7RIqQvCvJtfSXliH8PCXQBeqju2Uolmy3pKEAXZ2Xv/d0lXYQBukEhaQdgHpBBbIdm2mEzd9a9I+k2sfGoJnoTDiAOwGgBI2lnS/xacT1dIWlfSXwCsVHQuPWDFUBS++f1YBoVRSR8N4j8LFJ1LgawsaZqkTYpOpFu89+uH1d5L0HuT+V4zUdIVkpYsOpEyUuo9hCRHqTo654a2ICTpvffTAbyn7lebA/i/AlIaSEL72wclfQnAxi1cclPYzN6qWe6LTc6lpF0B7NRivFrWlrSg2YsUh6SVJcVeMXsOwO+6DeKcO0vS/hHymQuSe0k6nOTLsWMPAGtKejwIrwzsJKyk9SRdA2CJonPpIZMknSdpe5JzMOAto5IOkHQGBvh1GJHFJV0p6T0kbyk6mU4huZ2k3TB4SqKdsqqqfpPbkWz1nspogdIWhGH1Jm/2J880fGgI6pdzFYRhH6EVhE1Q1eh2L0lfRE3ffgP+TvIbAH4Xo005jL9nGL8VQ9obACyJuWfz5wGwEYBp3eZjdIb3/mOMrCYj6VfOudcjhPozgAdRbfOMyQQAe6CqZjpsrOW935PkwHZiSFo+qBYOUzE4wru899+U9AVJsd8XPUPSFEk/gRWDtSwm6SpJ7yR5V9HJdEgryuVl410APgvg20UnUibK/MGwBoBF6449QvKJIpLpF5xz/6g/ZvsIGyPJSfqQqmapv0LzYnAayV2dc1uR/G23xWDN+HeEVp9mxeDI+JtL+kPO761ttCAkOZL7xY7bifdgHiQl6dwYsepJ0SY7CEg6mOReRefRKUFA5ioAyxedS1EEEaCjMKD7syRtGb47SrsI0AVLSLpcJfUqLCuSvi5pvaLzKBNl/nDIMwEf2nbRGkYJywCYLKlCMut5Nn2Mqoaoe4cVuVb2jkwjeSzJKB6XHY5/IsnLRg4456ZLOqT2JBOWKZTtAawQOea9iNj5ENpGv4iqgl1M3iVpEslhU3keWOGOMBl1Lga8VTIClPSNopPoBFW9Ey9CMXsGXwdws6TbnHMPA3gEwCt4S7xqAQALAljae78CyUkANgGwXI/zXEXSJaENMUanhZGe+SSdIWkLax2NQ2kLQu/95PquLJJDXxCSfMp7X98SthCAtQDcUUxW/YWkcQA+IukraM04/GqSXyY5avW1y/G/DKAVRa1pYfw/5fxu1GvehGWKI5H34FkxlZNJ3u+9/xuArWPFHAntvd8PwHGR4xqJ8N4fT3KHgoYXgLsk/dU5dweA+wE8BOAZAK8FEaR5UW1HXgjViZbVvPdrkNwG1UnhgVzRi4WkeSSdB+DtPRz2YUkXOucuA/A3krPbDRCEfHaUtBOAXdCbYnYr7/23ABzeg7H6mdkA/glgpqT7nXPPoapr8BqqojXjACwSCviVAawHoKh2+MkAPoQu7JaMtyhtQTjGTe9Q7x8cIewjrN8LsQWGvCCUNB7AxyUdheaz+kJV5v+rsSYaJM0HYP9QCDabIR0Z/2skG72u70R1RnZ8zbFVJS1O8tnuMjbaQdIikj4QOyyAX0aOCZJnSYpdEILkAZK+ajO6/Y+kbSV9odfDArg2eGJeTvKpRieHYuP58PMIgOveDFT9PN9O0lQAUwDMlyzrPsV7/0WSvVK/vorkKQCucM519f4OW3vOBHCmpEUBfFTSEWhtgrSbcQ+T9BeSSdSW+5hHJP3SOXcNqkX8K+1cLGk1ANtK+giAbdHD7WiSjpd0YZsdbnMAPNDl0IsCWKzLGLV4VCe8UvBCorj9j6R5vfeveu9V85NJWrjo3PoBSUfUPTfKsuwnRedVFJImSDrce/94/fOS85N57y9TRINUSePD+I+1MX7Lctne+2vr40jqW6/EsiLpky38fdv9idKenJPrwt77VxLkK0nvTpFzLLIsOynF407481yzH0kfbec5kLSQ9/7BHj6GN7IsO135ZvBdI2mxLMuO9d4/3wd/L3nvlWXZD1I81prHvKH3/o0ePJZ/SEpubh9WOw/0rX1PdvPzrBJacUmap+jXXs3P5ZK2C4J1sR7fclmWfc8n+v7I+5F0YKz823icR8V+3fX6MdRTVlGZDQDMX3fsHpL1HnzDihnUo3rTI+loSQ9LOhmN22pmS/oFyXWcc1NI3hxp/MMlzQzjL9PgdA/gApLrhvFntDFO3gqmtY32mBRfWt16DzaI+5KkS1PE9sPrSdgpswD8nuSXSH6I5MYkJ5KczzlH59xizX5ItiUU5KutcysleTSjuYDk6pVK5eBU+0tJPlepVI4nuYqkk1BdISgtoXg6E2lbZl8meTjJrUj+NeE4AACSc0j+nORaqvp5RmuTr2MxST9MFLtfmEZyS+fcLiSvidmxQfLRSqXyGZKTJJ0fK24jwn1c7D3vQ0dZC8I8Q3prF32Lm1Dd7F3LOsOygippiSzLjpP0iKQT0HjZ/42RQrBSqUwleXeE8RcP448Uoks1OH2kEF3LObdXJ9LYed6bkqwg7CGS1ka+0FU3/AfARZFjvolzLolFBMk9JC2UInaJeE3Sr0i+j+Rizrn3k/wGyQtJ3kzyGZJvpBhY0sYkD04Ru44nSO4ePtce6sF4IPl8pVL5PMktAdzeizEL4mBUJ8ZTcSfJySRP7XX7N8mXKpXKYSSnAEi1qrKbpD0SxS6SV0l+juQ7Y2kejAXJJyqVyodJ7om3RIRSsQbi73kfOkpZEPocFcVhNqSvJ6ho3Vp32KGq7lVaJC0ZCrGZJI/FaFuSWl6XdDrJVUMheF+E8SfWjf+2BqePFKJrh/Hv7WJoWyEsGO999NVBSb8hmfKL9koAjyaIOx5VIQBjNLPD584qlUplH5JXsWqI3hNU9e/9HtLfG9xMcjOSFyceJxeSN5KcLOnsIsZPiaRFJR2fcIj/I7l5jMnRbmDV0mkyqirL0ZF0YhB4Kwv/JrkNye/2sogneRHJrQE8nHIc7/1BKeMPA6UsCEnmzcTbCmENkvLsJ7boeSI9QNLyWZadIumhUIg1Wgl9RdKp4YbsEJL/ijD+klmWnVAz/iINTn+95oZwKsn7ux0fwEyMnkldVlKjFlUjEpLmIdnWHq5WcM4lvZkl6VX13YyOhtSTsAk3klw3fO78u6AcPgAg6X4wSeeFNsOuP1u7geTrzrkDSH4R6doPe473/hgAS6SILekMknu0KzqSCpIPknwHgFsShJ8E4FMJ4hbBP0luQfKmIgYneTvJ7QA8lnCMvazzpDtKVxBKmgBgzbrDbwC4rYB0+hbn3KiCUFKp9hFKWikUgveS/DQaS1e/HArBVSuVyuEkH48w/go1hejRqPotNRt/5XBDGO2Dk1VLgrwvgk1jjWE05P2IL/v+OIBrIscchXPuzESh3yFp2L3t3kTS90lu3WUnQIw8vph4iAudc/uRfC3xOC1BUiT/H8kjis4lBkE9+r8SxT7HOfeJNtUck0PyKZI7ojrxGRVJ/yOpCP/GmDwcWs8fKTIJkg+QfB+qqucpGI+qRYnRIaUrCFFte6zUHbuVZjZaT94K4ZY9zyIBklbJsuw0SfeFQrBeYKiWlySdSHKFUAg+EWH8dgrRWWH8FcP4SVYG8oRl8lqrjfikWA0L7cTJb8xI/hNAywJG7eC93zdF3EFD0omVSuXTqfYEtpHHLkg7SXQJyb172QLbKmEv3FFF59Et3vvPoOrLGJtrnHMfY0S/05iQfJLkTgBiCwcuCeCAyDF7yfMkd4w5wdwNJP9J8shU8b3370sVexgoY0E4ql3UBGVymYmqwW8tS0pasYhkYiBpnSzLzpZ0TxBFaOSz+Yyk40MhdgzJ5yOMP6muEG3ke/Vs3fjPdTt+I/L20NIM6pMjaXEAO8eO65xrSzWyG1j1hEsR9wBJ9ZN3Q0UoBo8pOg8AkPSZhOFvJblvPxaDI5D8tqTTi86jUyQtSDJFi+OTJPcpesKiGSTvJXlo7LiSPhfTlqGXkPx40Xs9czgNwJ9SBCb5PlMb7ZyBfJE3Ik890QRlRhNm+vJWCQeubVTS+qEQvJXkfmhcCD5F8phQiB1HsmvDTknrtlGIPh0KwUlh/K4L0RbJFZaxD8/k7Iv4htgzSPZSIfGXGK1KHIPlAGyXIO6gcLVzLnWLZktIWhVAKn/I50ju3i/7zhrhnPs0gBuLzqND9kJjobKOCEXFk7HjpoDkLxFfeXkSgAEQMK8AACAASURBVO0jx0yOpB+T/E3RedQT2rQ/h6qVVmyWAbBOgrhDQekKQuSrJ1pBmAPJUQWh935gCkJJG3nvz5d0SygEG602PELyCJIrkTyR5H8ijL9BXSHaaPwnQyG6UigEX+x2/HYILSP1+yIXA7BKL/MYNlK0izKR92CD8Z4FcEWK2EPsSfhMWHXpi/1Y3vtDASSZHCJ5CMkHUsSODcnXSe4N4NWic2kXSZ9MEPZykpcniJsMkp9B5H1q3vv9Y8brAf92zn2+6CTGguTNCT0K35MobukpVUEoaSJGm+nOAtBvS+b9wkAa1Et6p/f+Skk3oSpf3+hGZibJT5BcjeQpJLv+ope0lff+dzWFaKP30UMkP0VyxViFaBeY/UQPkbQRgA0jh50D4LzIMZuSsG10d0mN7F9KCcnPkny66DwAQJIj+ZFE4S8jeWGi2EkgeT/JrxWdRzsEgabY392eZN8WFWNB8l+SfhQ55m6D5NNM8mimtSTqGufct1PE9d5vlCLuMFCKglBSRdKHJV2Z8+sZ7LFx6gBxA0bLbW8sad4ikmmGpPd67/8i6S8A3tvk9LtJTiW5Jsmfxtj/IGlb7/3VkqahqhzZiPtJfozk6iR/1A+iRiRNWKaHJFr9uqKg9q3fAkhRwMyPaqvbMPG3Xq/yNmEbVFutYvMKyRSrVr3g2wDuLDqJNkjh63kpybsSxE2Oc+5kVNXlY7EAgB0ixkvJbQDOKTqJZpCcgfxtS93G3SB2zGFhoAtCSeMkTZV0h6TzkDMbb4IyYxP2z91Td3gBAH31hpK0vff+76Hgb+aRdQfJ/UmuS/IXMUQMJG0TCsE/oXk7wszQIrUWyZ+RnN3t+BExYZkeIWlcaD2LCslCjLRJzg6fsdEZNk9Ckl8qOodavPcpiglI+gEj2PcUAcnZJL9SdB6tImmP2DFJfj92zF5B8jFJUffPee+nxIyXCpIn9asabD0kU4ijrS1pXIK4pWcgC0JJ4yUdLmmmpLMw2nfwTUxQpjFjGNQX3jYqiZKmeO9vkHQVgC2aXHJrKAQ3IHl2jL05oRD9h6Rr0bwQHClE1yB5ep+q6d2I0SvCm0hqJIJjdMYUABMjx3wR1ZW6QnDOJWkbBbClpDE/w0vGdSSTKOx1Cslm3Q6d8HKqlrAecjGAW4tOohmSlkP81vR/A/hL5Jg9JbYSM8n3D4Da6KMAfl10Em1wIeKLy4wDYB63HdDvL+65kLSwpKMlPSzpZFRV6pphK4QNyDOoL1JYRpKTNEXSjZIuRfM9bn8nuSvJjUIh2NWHS00hOj0Uos2ei1tJ7kVy/ViFaCpYtbaoF3dYEA0mVIzOkHRggpi/irEHtlNCi08SddMBFG3oCJL/W3QOtQSboUkJ4v68X/ZIdkpQQzyx6DxaILpSr6RL+vm7rEX+AKBrFfEalkCff1dKOrfPupIawqrvcgqf277+O/UrA1EQSlouy7LvSnpM0gkAFm/x0qdIPpIytxLwj/oDRQjLSJpH0v6S7gqF4MZNLvkzye2dc1uRvKzbFomwD3UfSbeH8ZsZNE8j+X7n3IYkLxiUFo08g3rkeHcanSNpKSTYb+KcK3zfWaq9bySnDoEn4VOorjr1E0kU+ZxzZ6SIWwC/AfBs0Uk0wnsfvSB0zl0TO2avCYVR7FXOrSPHi4pz7pdF59Aukv6aIOyyCWKWnr4uCCWtkmXZKcHo+zMAJrQZIvqG1RJyO0ZLNK8WDLWTU7MP9J+SzgSwepNLpoVC8N0k/xhh/HnD+HdKOhfNPWymkdzVObcNyd93O36vyWuhNmGZ6OyPxl6UnXA/gL9HjtkJ5wJIsXKwDJoLRQ00kn4TQ9wqJt77LROEnUGy71stW4Hk65L6WqCD5DYJwl6XIGbPIRm1sPXeN9u6UiT3kbyt6CTaxTkXvSD03qcQySo9fVkQStooy7Jfh0Lw06gq0Y3Fa5J+DOCC+l+QHFSD2Z4R9rrdVH8YiVeNJC0g6TBJ94d9oKs1Oh1V+fLNQyEWoxAcJ+kQSfeE8Zv1nP+B5DvC+Jd1O36B5AnLNFsNNdoglfdgP6xCB5GQq1LELrsnoXOu31YHk7z3SV4SO2aROOf6dk9WsGyJ7SX7JMknIscsiqj3gCTXjRkvJpKuLjqHDkkxefT2BDFLT18VhEHN8TJJM0juhcb5vSzpVJKrViqVQwEslXOO7R9sgTxhmVT7CGsEge6TdCqA5Rudjqox7mbOuV1Jdv33lDSfpINDIfpjACs3ueRqkls453YkWYZZ0xmoetnVsoGkRpMuRotI2hzAWrHDoo9kxBN6Eu7Wq86EAvgPgD8XnUQtkuZD846ITrgiQcwiuQH92za6MRr78HbCvZHjFcntGC2k1g1rS4r9fEfBOddXYlVt8AiqfuHRIGktox3QF+qCkraXdLykrVo4/RlJP3DOneqcey5c74IJ9FxhkW/EbdThnLtemvszM/Y+QkkTAHxM0jEAlm5yugfwO5JfIXlzpPHHA/i4pM+juefWyPjHl22VmeR/vPd3AViv5vC8ANaHTaB0jff+QDL6/cJfSdaLARXJJaiKNcQ2lB8H4MMAfhg5bj9wQ7+1i6Lanh/bc/ZpjO44GWhIZlmW/YHkPkXnksP6CWKu4b1P0gXQa8J9TYZ497oTUJ3E7kdtimlFJ9AJJOW9vwfNdRvaYcmIsYaGwgrCIN+7s6SvSGrlhfAIye8C+Ilz7j91v1sHwEJ1xx4g2a+zev3GKGEZAFtIYgSxloUBHBoKscWanD5b0nnOuW+QrPdH7HT8QgvRfkTSdJLr1R2eDCsIu0LS/JI+HDtun5mYg+RrWZZdQPITsWOHdtvSFYSS+rG7ILq6KIDp/dDaHBvn3HWS+q4g9N6vmmACakkA28cOWiJWRP8VhM8Oqudn4FHELQit46kDet4yWiMiMqIm2exFMJPkESRXJ3kKyfpiEMixJhhDTdHIgeSjAB6rO7woGu/ra4ikJbIsOy5YhJyAxsXgG5J+QXLtSqUyNUYxmGNR0qgYnD0yvnNuSpmLQcCEZRKyO+Kvmr0G4KLIMbsmoSfhZEn1kxUDj3PulqJzyCGF3URZPzv7ctWTZOz9g0Zz+lGw5I6iE+gGSbH3rFpB2AE9KwglTQh7xx4IIh7N1CRvqTH6PoXk62OdmHcza4b0bRPFoF7SkqEQnEnyWDS+QX5d0ukkJ4VC8P52x8sZv9BCdEDIE5axgrBLEnkPXkwyppdWFEhOA5Dk/eK9n5oibsHcVXQC9XjvV4wd0zk3cCqHLXIbRu+97gea7YE34tN3+9Mk3V10Dl3yVOR4C0SONxQkLwjrbtBPRvM307RgNL5xq0bfJPMUMa39rQ1IdiUsI2mFYBHyUCgEF25w+itBEGiVSqVySFih7IqiC9EB4zZUV55qWTO09xodIGk5AO+OHbcfvAfHguS5ieLuJyn23rYi8ajahvQbExPEfDBBzMIh+SqAh4vOIwdTU+wx3vu3FZ1DPc65+g6vgcI5V2991i22QtgByQpCSUtnWXaCpIfDDXqjlZoRNcktR2T9W92HENQR66WAMwBlbV1JxaiCkGRTzx1JK4VC8J5gEdJoZmZWjTLs4TF63iUtX2QhOogEw976mXyHqmKd0RkHAIhtrP4kElk8ROJsVIud2CwFYIcEcYvi6T4UlAHJJRKELfNn6r+KTqCWMGlik3i9p16voh8YdJuQVyPHs4KwA6IXhJImhRv0B0keDWDBBqd7ABeQXC/s3coTN2nGhqiq09VyJ8nYMw5lZzpGt8SsLyn37ydplSzLTmvRK/IlSSeSXDEUgl1/eNUUovcWUYgOOmPssbW20Q6QREn7J4h7TvAJ7UtIPgwguqkwkMbLsUCeLDqBMYht8TEH8Vu/+gZJfVUQovr360sLhJIzoegEchj0grC+Y6lbXL/ag/Qz0VRGJW3ovf+spH1INpspf13S+c65r5G8r8uhR7WLSrJ20TYJdgR3Atig5vC8ADZCjZyxpHW9959v8e88YhHyPefcizHylLSK9/5oSQeRbPb6fUnSj5xzJzrnno8xfllwzk2vtxqRZAVhZ7wDwKqxgwZlw34XjbhK0rYJ4k6RtATJZxLE7jX9+hjGR443q5UtHgNMvxX2ixSdwJAyX9EJ5PBy0Ql0SZk/NwaGrgtCSdsENced2Vz/eJakn4cb9CirNN77yfXDmqBMZ0j6B8kN6g5vDmCapPW990dK+ijJZivLTwWLkO/nWIR0mts6oRBspxA92TnXd4IcfULepIkVhB2QyHsQki6OHnRwGAdgbwDfLzqRCMRuh4pFfWdNt/Tr44xFlO+yiPRjYTIM9OPrfEzRRcNolY4KwuAhOEXS/0hqRXjkSZInA/hRrJWiEUjm2VaUyky8VwSD+kNqj0na3Xv/Hkk7tXDT+zDJbwE4o5EqbDtI2kjSlyR9sIVC9HGS3wZwWqxCtMTcA2AW5t4PsZKkiSSfLiingUPSeEl7FJ1HGQlto2UoCPv1Zi12QRi77auvcM69Wt9VUTCx/35Ga1hBaJSSlgtCSW8DsAqAdSUdhaoZfDPekHSOc+7nqL6JVo38gTq/pHr7ijkAxknaJOZAQ0LeF/rWLVz3uqSfOefOBjAb1ddIt7ksFmxKdkLzfRKP1BSipb4piQVJ772fAWDbul9tCuCK3mc0sOyF/hQZKAMbS9qA5K1FJ9INkvpOUCYQW0Og7G1f/VYIlEmJd5Dot9cBUL3vMoyuaGeF8CBJ324z/jiSB0k6qM3rumEeSX/v4XgGMB/JQyUd2uNxHyD5TQBn96OKX78jaTrJbesOT4YVhC1TMvGTvsN7vz+AzxadR5f01bJSDbEFi8rewthvK3IpFH6NJpgegVFWWp4h9N7nef0ZRhHcTXJ/kmuQ/KkVg52Rt9fWhGVaR9LKqArKGIkgOVVSv92Il4XYn5ullnr33jdSTC8CWxUqhn5TmzWMKLRcEJK0G0WjaG4n+RGS65A8u58l+QcEs57oAu/9QTDZ99QsDmCnopMoKbELwn4rmGLTyNqoCGwitBjK7LVpDDEttYxKmhhmww2jCF4ieQCAS0j2a/vVwEHyIe/90wAm1hxeStIKJB8pKq9BQJKTNLXoPIaB0JZ7SdF5lJBZkeNNkDSB5KBL4I/FEkUnUEcK4bQMwMMJ4pYJ+240Skmrewjz2kWfAnBbxFwGibUBLFN37B5010qwMYDF6o7dCmAYFR/fDaDWWmJ+AL+zYjAJ0zF6BWYy7EuvGe8BsELRSQwJO0tamuSgmy/3Gyn8EZdF9buwdJBcvugc6ng2QcynnHOTEsQ1DKPPaakgzPP6k3RWpVL5fJKs+hxJX5D0jbpjv69UKkd0GtN7fz/qCkKS+5G8vdOYg4r3/jYA69UcGgdgA+R75xldEIRl5ioIvfeTAVxUUEoDgff+gBTeg0Yu86DqSfi9ohMpE5KeTfAaLm1BCGC5ohOoheSL3vs3EFfspuxtv4ZhjEFLewhJjlohdM4N8835qMee9xy1iqTFULX0qOUVAP/sNOYgI8n2tvUAScsAWKv+uO0XboykRUh+sOg8hokeK1UPCym6T9ZMELNwJFUArFR0HjnEXiVc2EScDGM4aVoQSiLyb8aHuSC8EaOlxDeS1Kkv0GSMFqe4iWTZfZ1yyVO/DKtWRgQkrZhl2Q8kPUByr5xTNpEU26OsTHwENpPea9aVtHHRSZQJ51z0vWLe+41ix+wT1kZ/vudjK14SVSEnwzCGjFZu+lbG6M3UTw6z6ATJFwDcW3d4fszd5tgOo4qdMVbJhoVRj91WrbpH0qQsy34q6V6Sn8LYvmGLAFi9h6kNFJIOLDqHYcR7f0DROZSMB2MHJLlh7Jh9Ql9ORkh6IEFY2xttGENIKwVhXivkMK8OAgAk5T0HHbWNStq0/ljeKtkQcTuA1+uOrSlpoSKSGXQkrZll2dmS7ib5MTTec/IsyS/DpLVzkbQGgM2LzmMYIflRSWU3P+8lKYqJDSQtnCBuoXjvtyo6hzFI8TcsZduvYRiNaVoQ5hnSkxz6gjByW6MV3TUEo/lb6w479Oksbb8iad1QCN5Bcj80FpF6WtLxJCeR/HqJpeO7IngPGsWwGIBdik6iRNyL+F5286KqwFsqSO5QdA55OOfuih3Tez9qX7lhGOWnaUE4hljK0BYrNUQRlpG0HIC31x1+DgnaeQYJE5bpHEkbhELw1lAIVhqc/hTJY0iuVKlUjiP5Yq/yHDQkzUNy36LzGGaCJ6ERgTDxFl24zHtfb2Mz0EhaH8CKRecxBjNiB+xGIM8wjMGlYUEoaR4A9XsChAQfQgPILRjd1rh2B+0yuYI9w+65Z8Iy7SNpS+/9ZZJuDoVgo/f3IySPILkSyRNJpjA5Lhs7YLT/qNFbdpRUP4FmdIikm2PHJLlbmVp7vfd7Fp1DA+4BMCtyzC0lzR85pmEYfU6zFcL1AIyvO3YfyRSGqAMFydcB3FZ3uO22xrwiZ8gFZUYwYZkWkbRNKAT/hmpLXSNzsQdDIbg6yVNIvtqjNAceE5PpC+YBYKu0kXDOXZ8g7OIASmHLEroC+rZNnKQHcFPksPMD2CJyTMMw+pxmBeGo1oExxFSGkhjCMnlFzpALyoxwN4CX6o6tLGnJIpLpR0IheLWka9F8b9VMkofUFIL1q9tGAyQtDtu/1hdY22hU/pQiqKRPpIhbADsDWLboJBpB8prYMft8VdQwjAQ0EpmA934yOfdigxUrb+Gcmy7N3dkpqeVVLEmUtEnOr27sNrdBh6T33t8EYNu6X20C4IreZ9Q/SNpe0tcltaJ2eQfJkwCcO6y+lpH4KMa26eiGh4KQj08QuzAkLSHpUaR5ztaWtJmJm3UPyXu9948CWC5y6PdIeifJv0aO21MkHVN0Di1wFYDjYwYkuaekI0jOiRm3l0jaSdJXI4Z83Dm3a8R4htFXNCwITVCmKd2uEK4G4G11xx4l+e/OUyoPkqaT3Lbu8GQMYUEoiQB2kfSVPJuSHG4l+Q0AFw77ftQYpFqVIvnzshWDAEDyGe/9bwHsniJ+8CS076IISLoyRVukpGMxwIqjknaRNAitk9MBPI/R9xLdsBSqHRGXRIzZU7z3+5HMm3DvCEn3x4plGP3ImC2jkhYEUC8/PBuj7QCGmbsBvFB3bIU2RA/yVhNtBTaQtxrdzgpsGZDkJE2RNEPSpQCaFYN/I7kryY1IXmDFYPdIWg/ARilCAzgnQdy+gOTPEsbeR9ICqeIPE865CxOF3k7SlESxkyJpHknfKDqPViA5R9LFseNKOip2zF4haWGSUVv8nXPXxoxnGP1Goz2Em2L0CuJtJkLxFuFmO29DdysrOLmCMiStIHyLvOdiKCSxQyH4IUl3hkKwWUEyjeSuzrmtSV5mhWA8vPcfSxT6jyRTGEv3C78H8K9EsRcBYO1bcbgaVauj6Eg6TVLMlate8XkA6xedRKs4585LEHYrSe9KELcXfBTAhMgxB7r92TCa0aggNEGZFsh7Tlq1RxhDNdMKwgDJhwA8VXd4SUnLF5BOT5A0TtJUSXdLOh/Amk0umUbyPc65bUhe1oschwlJ40jukyI2yZ+niNsvkMwk/SJVfBOXiQPJ2ZJ+kyj8273330kUOwmS1pT05aLzaJNrAETfaiLpe5Ia+dj2HWF19zORwz4E4I7IMQ2jloZb+HrBmAVhXlFjgjKjyXtOWjF2DR+yG9QfhgnK1JPneVm6ttFQCB4s6X5JZ6G6v7QRV5PcIhSC0VXmjDfZBcDEBHFfxADvz2kV59wZqH6upeB9ZZ4c6iXOuR+mik3yQEmHpoofE0kTJF2AqvXCwBAmX05LEHojAJ9MEDclU9H8+7MtJF1kXTdGYsYHrYjCGLMgNEGZlsl7Tia38IddF/kej/V7EoeaPE/GMhnUSxov6XBJD4Yv9EY3uB7A5SQnO+feSzKFh5hRQyrvQUnnkfxPitj9RGiJTdVq5VBtDTO6hOTNSNidIukUSdumih+DoPr9M1S/mwcO59yPAES3E5J0oqS1Y8dNgaSFJX09dtyE+2yNwSW2GFwFo2uCnpJbEEqaCGClusOzUBVRMWog+SiAx+sOLwZg1SaX5rXk2gpsHZ2uwPY7YSb68LAieDKAZRqcPlIIbuqcm0LSVpF7gKSlAOyQIrZzrtTtorWQPCNVbEkHFj2rWhZInpIw/LySLpG0ccIxOkYSvfcnA/hQ0bl0CsmnJKXYSzhe0q8lFXqz2gre+1MAtCrq1yr3ArDJV6OeFF7OzeqGpIy1Qpjnb3aj+ZiNSdv2E9aS2zJ5H8SbSGq0/7VvCTOYR0t6OBSCSzc4fbakX5BcOxSCN/cqTwMAsB+AeRPEvWfIVncvxGg15lisDmAQrAEGgfMA3JMw/iKS/iBpnYRjtE0oBr9P8tNF59ItzrmvoaoGH5t1JV0gKcXnYRQkHUDygNhxSf7A2kWNHFIUhBsmiNkyuTfVecWKCcqMTZ4yaLO2RhOUaQ2STwN4pO7wIoi8RyA1kpbIsuy4UAiegOoq8li8EQrBdSqVylSSKW/SjDGQNDVFXJI/TRG3XyH5qqRfp4ofPAmNLiGZkYzeblfHEpL+IundicdpidCy/2uS/1V0LjEgOTO0vabg/d77M/tRZEbSdpJ+nCD0LABnJohrDD7Rt3x475N0JLVKbkGY15Jnq1cNGVUsN2prlDQ/gPpZ0gzm8TgWea+9gdhHKGnJUAjOJHksgEUbnP66pNNJTgqF4H29ytOYG0mbAVgvQeg5AM5NELevCeIySSD5keCba3TPrwDclniMxcNKYaFCM5JWk/R3DHCbaB7OueNRLWSiE/w/L5A0X4r4nSDpncGHMXpO4fv4pdhxjVLwZOyAJHeTtETsuK0yqiAM+zHybrZthXBspmP0BtONGrRXbITRrWh3kHwlemYloJMV2KKRtHyWZadIeigUggs3OP0VSaeSXKVSqRwS9qUaBeK9TyImA+AKktHl4fud8B5ONeG1MIDdEsUeKsIq4RE9GGpeST/03v9e0oo9GO9Ngi3B4ZJuRppJn0Ih+W+SxyUcYjdJV0pqtO+9J0jaU9Lv0fj7tVNedM6dkCCuUQ6eSBBzPknJFJ+bkbdCuAqAxeuOPUEylcHwwEPyRQD1qznzY+wvG2vJbY88YZm+LAglrRQKwXvDnpQFGpz+cigEV61UKoeTrBcnMgpA0vwkP5widtm9BxtB8sxUsc2TMB4k/wSgV56mO0i6Pcuy41Mb2EtykvaSdEvYv933Iild8H2k9c17Z3ged044xphImj/LspOCV2+j79iOIfltks+kiG2UgscSxf1QlmXfKWK/bl5BaHYTHTBGQZfbNmqCMm0zA+2twPYcSatkWXaapPtCIdjIx+olSSeSXCEUgilmmozO2Q1AipvTZwH8NkHcQeEXSLMRHwC2k7RCothDB8lPoeqV2QsWIvkVSQ9lWfYtSVFtHyQtIelTkm4Pe1n7StQmBSRnkzwQaQRmRpgo6XLv/SWSJiUcZy4k7SLpdpJHAkilMPwwgO8lim2UAJLPA0jS7UPys5JmSPqEpEbbjKIyT/0B7/1kcu73WF7LnjE3zrnpkvarPRYKv1EbnU1Qpj1Ivui9vw/AGjWHR/Zh3lJMVlUkreO9P1rS3iRHvZ/qeEbSD5xzJzvnzG+yT0m12iTpbOfcGyliDwIkn/XeX4o0e7YcqobUqUVRhgKSj0o6UtJPejjswiSPknSU9/5WSZc7564F8DeSLe+JC6InGwF4h6T3StoeadSC+xqSN0r6mqSvJh7qA5Len2XZ+c6575G8KfYAYfL3A+E1maeCH3U4kp+wLTxGC9yB+DYnI6wn6XQAp3nvZwL4p6SXUN0f3PG+VufcyWMtQoy6gTVD+o5pSVhG0iKS6hUyXwNwZ6rEyoCk6STXqDu8GQoqCCWt770/UtI+JJuprj0l6UfOue8652yDeh8jaVlJ70kR2zl3Voq4gwTJn0lKIuIh6SBJ3zCJ+GicAWAnFLM/cwOSG0gCAO+9fxTATEkPo7rS/ppzbhaAcd778QAWIbksgEmSVkHjDo1h4psAtgfwzsTjjCO5r6R9vfe3kPwNgP9DVRuhIwNvVX0Pt/Hef0DS7gCWiplwg3F/6py7qhdjGYONpBkk35t4GKLqT7hq/WJdh5yLMfY/zlUQhs3W9T4YQrVlz2jMLai2Q9UqXa0taeE6lapNMbpV92aSKVs7Bp6wArtv7bGwAnt6L/OQtKGkL0jak83fnY+Q/C6A051zr/YiP6NrDgCQQlZ9BklTEQauRNVGJkV758oAtgFwbYLYQwdJSTowtHAWafPjUH29rFD7kRuKRUS6SWqFDGk+G5JBco6kD0majjTvuTw2DPeRXwXwkvf+Bkl3OOceQrUVcxaqvqQe1XvQRVBV314YwFLe+zVIri9pPQDz9PDvCwD3OOeO7OWAxuDinLtG0jFF5xGL+hXC9TB6o/V9JJ/tUT4DC8nXvfe3YW7BGAdgYwB/rjmWJyhj7aLNyVuB7ZmwjKRtVDWU36WF0x8ieTKA00i+ljo3Ix71bd+xGGYxmVpI+izLziL55RTxgyehFYSRIPmipD0kXYc0So6DwnOSziT52aITaReST0naTdK1AHptz7IwgO1Jbj9SwDejxwVgLS+R/KDZTBhtcB2AV5FI2KjX1K9U5bU4Wrtoi7QiLCPJBGU64xaM3iC/bmgrSYakbbz3l4Uv02bF4AMkDyG5GslTrBgcLCS9A3PvU43FGwDOSxB3IHHO/QyjRaKiQHIvSRNSxB5WSN5O8gNIJwjU73iS+4UVroGE5E0kd0f1s8gYjSe5H8m7i07EGBxIvirp0qLziMVcBaGpX3ZH3nOVUwCaoEwHhOKqXka7AmCDFONJ2t57//cWC8E7Se5PcnWSp5OckyInIy1hdSk6ki62Lou3IPkQ5u6aiMkEALsnij20kPwzyf0ADN1nW9iX+rui8+gWkn8gWrHE7wAAIABJREFUuQ+qra/GW4jkf5EszY290TvKpA0wV0E4RguerRC2Tt5z9eZzKmkpAMvX/T7Pw9DIYYzW2mhto5IoaUrY83AVgC2aXHJbKAQ3IHk2SfuiHVAkjSeZROzEOWftonWQPCNVbPMkTAPJC0juheFaZbrMOXdc0UnEguRFYaXQ9rQHSB5DcpQavGG0yJUA7ik6iRi8WRBKWhDA2nW/nw3AhBBa525UN0vXsqKkEVnavOLlxk5VuIaNvBXYvFXtdgmGxVMk3RiW/5vFvJnkXiQ3tEKwNOwJYKEEcR8DcHWCuIPObwA8nyj2tr30RRsmSF4c2kdfLjqXHnAFyQ+V7fuZ5KUkd0YX0vUlQSQ/T/JbRSdiDC4kM5JfKzqPGNSuEG6K0SIzt5G0maQWCXLneR48mwL5xYsJyrTFqOeqG2GZUAh+SNKdoRDcuMkl00ju6pzbOMyWm7x9SZB0YKK4Z9qEwWhIvibpV6nCe++TiAMZAMnfk9wKwINF55KQq0juTrKU+yZJ/inYYt1VdC4F8QbJqSRPKjoRoxT8CsD1RSfRLbUFoQnKRCDvORspBPN8CW2PZlvcAaDeLHY1SYu2E0TSvJKmSrpL0vkA1mxyyTSS73XObUPysnbGMvofSSsjkU+Xc+4XKeKWAedcsrZRkvtLqhdNMyIRhGY2R7VdqmxcQfIDZRcFI3kPyS0BDNt32vMkdyB5TtGJGOWApCe5Pwa8FfvNL0wTlIlD3nNWUwhuknOJPcctElZa6luYibAC2wxJ42oKwbMArN7kkqtJbhkKQWv7Kyne+wNRfR3F5lqSpdhbkAKSN6GqHpyClQC8K1FsAwDJp0nuSPIQAP8pOp8ISNKJJKcMS2cUyRdD8XsIhqMNeDrJTUn+uehEjHIRJlg+iap3+0DyZkGYt3oFE5TphFxhGUmrAJhYd/xJkv/qQU6lYYxV64Zto5LGSzpc0gOhEGy0v0gALie5mXPuvST/0U2+Rn8jiST3TRHbvAebQ/JnqWKnUo013oKkgrLyZAB/KTqfLniB5Acrlcoxw9biXfM33BDp1H+LRpJOIrk1yQeKTsYoJ0FT4otF59EpDgAkTUR1RrWWWaiKpBhtQPJRAI/XHV4MwN45p1vB3SYtWnuMHJ8QCsH7JJ0MYNkGoT2qheCmzrkpJG3ldjjYDsDKCeK+AuDCBHHLxrkAkrTmkdxDUgqhIKMOkv8k+e5gTfFY0fm0yR/CqtFQ2w6QnOmcezfJjwB4tOh8InIHyW0rlcrnSdZ7GRtGVEh+k+RhSOS1m5KRFcK8G+oZwzZTFpFRhZ6kg+uPkbyxN+mUirznbK7Xr6RFJX1F0sOhEHx7zjUjzJF0Nsm1QyGYJwpklJTQLhodSeeTnJUidpkg+ZykSxKFHw8giZWIMZqw0nQOydVIHgWg3703HyD5QefcjiRntnB+irbyvoPkr0muSfJ/ADxTdD5dMIvkkSQ3JvnXopMxhgeS/0tyF4xeHOprHAB47zev/4WkgVfMKYoxVpdWyDlmK4Ttcx9Gy9UvJ+ntkhbPsuw4SQ9KOh7VldmxmC3pFyTXqVQq+9ter+FD0sIkd0sR27wHW8c5l6xt1DwJew/JV0l+m+RKYaa833x2HyV5NMl1SP5fG9ctEDmPOZHjRYPkKyRPILkyyaMxWCuGL0r6BslJJL9jq4JGEZC8guS6kk5D1cKv73FAvnS/c85Wrzqn1UJvRtIsSkiwehj1vEn6iaSHSB4LoJHq6GuSfkBy1UqlMpXkvcmSNfqdjwBYMEHcBwFclyBuWbkaQKp9Pe+QtEai2EYDSL4cZsrXJLmDpLNR3YpSBAJwDck9Q5HzrXZVRL33sQvCvhfiCX/Db4XnbHdUVWX7tXPsAZJfILlipVL5Esmni07IGG5IPl+pVD5JcnVJP8Jon/K+YsR3MK9ldFlJ1m7TGYu0cM4LqBoop86ldEjK84baucllr0g63Tl3knPu3ynyMgaLVN6DJM+geVS2DEllWXY2yeNSxPfe7wvgyyliG81h1dj9SgBXSvokgO299zuS3AGNBb665TVUlX7/gOr+8G67QKJOHjnn+r4gHIHkHAAXA7hY0lIAdpe0B6p2PfMWmNoLkn7jnDsTwHX2uWv0IyQfAvApSZ8FMMV7vwvJ7QAsV2xmczOPpEmSlqj/Rdh7ZaRj0eCBZ6TlZf3/9u497rap3h/45zOW+/1+i3IvFKESInfRjUicUs4ph+LXRamcdHS6na6KFN1QEt2UiIhsl5DcU1RILiHkujf2Nr+f3x9z7s5j7TUva625nvXsvT/v1+t5sdca8zvGWs+a65ljjjG+QzoxpfQZdwRtNknrS5pjqnwLAoD3HuxTSunbkj4KoNN2bJIHSPqY18SPX7Gdw1nFDyStCuClEfESkhsBWBfAeuh/euZ0AH+S9OeU0s3It3O6mGSbna5VWowFzAUjhL2QvB/A8QCOl7Q4gG0iYgeSWwHYBMASI6z+SQBXk/wVgF8B+F1Kyee1zRWKWQk/Kn5m74G8CYANI2IDkqsg/55ZCfmNliXxfwN3o2+fpH0lnTZZFZpNkoclHZtSOpbkP8fdGDMza6bIfL4C8q2algWwEPILo4WRd/4eKf47HcCDJEee2TQiLkSelbgVJN9F8vi24k0FkhLyTv0mANaOiLVIroX8Inf54meRmjBPIl+zeK+kuwDclVK6AfkexH/2jR2z0VggIl5KzhfJs2z+8CDJLwE4LqX02LgbY2Zm/SnWfz0A4OZxt2WCtqd3/aPleGNXTA/+c/HTk6TFkHfsgf9bXvMogIyk/2abjckCJEcxbcpssj0g6WsppaP9R8XMzNoiaTFJba93vKPleHOFYhrv7Omy3RnDzWxMFpD0OwB/GHdDzAaVUvo9gG+nlJ4cd1vMzGyeswnaX996R8vxzMwGtkCn03nfuBthZmZmNkX1ysQ+jMdJPtRyTDOzgU1a9hozMzObWiTtJ+n9bcYk+eYWtnmYMiTt2nLIUe27aWY2EHcIzczM5l/PANi85Zg7A5gnOoSSFpW0Xcsxr2oznpnZsNK4G2BmZmZjc1fbASW9tu2YY7QH2t+U/rdtxjMzG5Y7hGZmZvOvO0cQcydJbW/TMBaS3jmCsJePIKaZ2cDcITQzM5t/3Qvgny3HTBHxrpZjTjpJmwLYpuWwj2AemU5rZvMOdwjNzMzmUyQF4MoRxD1U0gptx51Mkv53BDF/WWzgbmY2ZbhDaGZmNh8jecUIwi4ZEZ8fQdxJIelVANrOLoqU0o/bjmlmNix3CM3MzOZvI1nTRvJtkl49itijJGl5Sd8aQegZAM4dQVwzs6G4Q2hmZjZ/uxTAgyOIS0mnSFpnBLFHQlJH0okAnjOC8OeQnDGCuGZmQ3GH0MzMbD5Gcpakn4wo/LKSfi3peSOK36qIOBrA60YRm+QJo4hrZjYsdwjNzMzmcymlH4ww/HMlXSBpvRHWMRRJnSzLvkzy3SOq4gaSF44otpnZUNwhNDMzs4sB3DLC+OtKukLSLiOsYyCSlpL0M5LvGVUdJL84qthmZsNyh9DMzGw+RzJIfnbE1Swv6ZdZln1B0uIjrqsRSbtJugnAa0ZYzZ0ATh9hfDOzobhDaGZmZgBwKoC/jbgOkny/pJslvVlSZ8T19SRpk4g4Q9I5ANYYZV0kP0hy1ijrMDMbBsfdADMzM5saJL1N0smTWOVtJI8BcBrJUWQ6/RdJCwLYXdI7ALwak3MNdFFKaYdJqMfMbGDuEJqZmRkAQBIlXQhg+0mueiaAC0ieC+ACAH8iqWGDSloNwA4RsRPJ3QGsOGzMPjxDclOSN01inWZmfXOH0MzMzP5F0vqSbgCwyBib8SiA6yT9OaV0O4D7AUwH8HDx3+nIO5GLA1gAwNIAVgawckSsTnIjABsDWGkcjQcASR/rdDr/M676zcyacofQzMzMnkXSIZKOG3c75mIXkNyVZIy7IWZmddwhNDMzszlkWXYCyYPG3Y650P3FVNF7x90QM7Mm3CE0MzOzOUhaqFhP+Ipxt2UuMoPkziQvH3dDzMya8rYTZmZmNgeSM0m+BsAV427LXGImyb3dGTSzuY07hGZmZtYTyUdJ7gzgonG3ZYrLSL6lyJJqZjZXcYfQzMzMSpGcTvK1AM4cd1umqMdJ7kXyR+NuiJnZINwhNDMzs0pFp3BPku8F8My42zOF3EpyK5LuLJvZXMtJZczMzKwxSTtK+i6A1cbdljE7m+T+JB8Zd0PMzIbhEUIzMzNrjOSFJDeUdCyA+XGfvftJvo3k69wZNLN5gUcIzczMbCCStis2sN9o3G2ZBCHpGyml/yL58LgbY2bWFncIzczMbGCSEoD9JB0FYL1xt2cEZkk6PaX0OZI3jbsxZmZtc4fQzMzMhiZpAQBvlnQIgJeOuz0teELSiSmlo0n+bdyNMTMbFXcIzczMrFWSNo+Ig0nuA2CpcbenDzMBnEfydABnkpw+7gaZmY2aO4RmZmY2EpIWBrB9ROxB8nUAVh13m3r4u6SLU0oXAjjD6wPNbH7jDqGZmZmNnCQC2BDAlhGxNcktAayPyb0WeQzALZJuSildBuBSkrdOYv1mZlOOO4RmZmY2FpIWQ94pfD6A9SNiXZIrAlgZwEoAVgSwcMNwTwF4EMD9AO6X9ACA+1NKdwH4E4CbSd7d9mswM5vbuUNoZmZmU1YxsrhM8c8lACyIfP/DR4vHHif5zDjaZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm8yKOuwFmZmZTlSQC2ADASyJifQDrkVwOwFIAOkWxJwA8IumOlNLtAK4FcC3JGWNptJmZWR/cITQzAyBp6Yg4YrKqSyk9AuDR4udWADeSfHqS6rcKkhYC8OqI2JfkdgBWGiDMMwB+S/JMAGeQvK3NNpqZTUWSdouIV1aVSSkdQ/LeyWqTmZlZI5JWjwiN8WdmRFyTZdknJK077vdjfiTpOVmWfTEiHmr5dxsRcYGkvSSlcb9OM7NRybLsM3XfiZI2GXc77dn8h8nMbGpYEMBmJI+U9OeImCZpi3E3an4gaZUsy74h6XaShwFYruUqCGBHST+WdIOkPVuOb2ZmNjB3CM3Mph4CeKWky7MsO17S0uNu0LxIUkfSeyXdQvJAAAtNQrUvlHRGRJwjac1JqM/MzKzSAuNugJmZlUokD5b0SkmvInnnuBs0r5C0hqRTAWzToPijAC6RdE1K6c8A7gIwA8AjABYFsBiAVQCsGREbk3wpgI1RvU5/N0k3Sno7yR8N9WLMzMyG4A6hmdnUt4Gk8yRtRfLhcTdmbidpZ0mno3pq6AxJP0opnQTgMpJZn3WsCuC1kt4GYKuSYktK+mGWZZ9PKX2IpPqpw8zMrA2eMmpmNnd4QUR8bdyNmNtJerOks1HeGZwu6bMk1+x0OgeQvLjfziAAkLyX5DdSSluT3BTATwH07PCRPDwiTpTU6fW8mZnZKLlDaGY2lyC5r6Sy0SarIelASaegfK3gOSQ36nQ6Hyb5QFv1krw+pfQGktsDuKWkzAERcUJbdZqZmTXlKaNmZn2QdEJK6SdDhOgAWAbAupK2BLAL8gyjTes/DMDlQ9Q/X5L0JknHo/e6vpkk30dypCOwJC+WtHlEHE/yrT2ef4ekv5L89CjbYWY2KimlWyVdUFPs8UlpjJmZWT+a7kNYdMjarHflLMtO6mNPu6ckLd5mG+Z1kraMiKdL3s+HJW09hjZ9pKQ9z0hqkujGzMzMzMzaMq4O4YT6/7tpp1DSjqNow7xI0goRcVfJe/mQpM3H2Lb/KmnXHZKWGFe7zMxs/uI1hGZmU8MnAFzfsOzao2zIvETStwGs3uOpp0nuSfKayW7TbCQ/LenkHk89LyKOmOz2mJnZ/MlrCM3MpgCSkvQ1Sd9oUHzlkTdoHiBpL0mv6/UcyUNIXtJnvIWQ7y+4MYAVI2LZlNIjAG4FcPEgiWhSSocWU0TX6WrfYZJOIHlXvzHNzMz64Q6hmdnUcXGTQhGx0qgbMreTtLikY0ue/hnJb/cRa/OIeI+k1yJPCAQAIAnpXztJZBFxNsn/Jnlj1/GvALBhV9j7SZ5JcrqkQyT9suv5RSLiEAAfbtpOMzOzQbhDaGY2ddzRsJz3q6v3LgCr9Xj8cZIHNwkg6bmSjpX0erJXctJn6QB4vaTdJR1O8pgJcY4FsGlX7K8BOBMASJ4XEb8GsMPEMiQPlPQxkk81aW+D17M0gHWLn1UBLB4RSwKYmVJ6AsA/AfwVwE0k72+jTuufpOci/7ysW/x+FkkpPQbgXgA3ALhhkL0xi9iLA3gxgBcCWC4ilgbwVDHS/QiAGwHcSPKZFl5KP+1aEMBaANYD8BwAy0bEoshf+wwATwB4EPm2LbeQfGwy21enWPO7GfLZA8tFxGIppUcBPAzgfgBXkbxnktu0FP7vfF8NwGIRsRSAWSmlx5Gf73cgP9/vm8y2jYqkBQBshHzGxfMALBERiwNQ8Rn/J4DbAdxM8u/ja2m5Yj/aFyL/DlglIpYpzoGHi58bAPyBZLRZrzuEZmZTBMmZETEDwGI1RR/u9aCk/dG7EzTR3SRPHaR9ZST9P9S3+dskH2yz3or2LC7pA72eI/m/TTo7kvaV9E0A/SZ3WVDSlyUtQPKLktaUtGl3oZTS+V3t+pKkHbqKLYe8k3hOn20A8K+L7FdHxE4kd5C0QXeZ2R3dCSOdAICI+IekX6SUzgDwK5JP91Hv2gDeWFNsJskvNY3Zo453AliqqgiALw7RcfoPACvWFDua5Kyu49YFsFfFMT1ft6QVALyr+Nz96/dU8vt5MMuyn6aUjiV5U00bZx+/i6RDJe0MYJGa+DMi4hKSJwA4e9D3sKY9BLBFRLyK5G6SNkPXNWnZZxMAIuJPks5OKZ0F4NJhLo4lrQfgDRVFnib55ZJjXyXpIEmvQtf72uOc+lvR5q+Q/NOg7S1TdIZ2j4idi/O9e1ZC1fn+QNf5PvBNKEnbAdiipthJJP8xaB1d9S0L4I2S9i62cnrWd3bFa75N0gUppVMBXEZyzg9a/20hgA/WFPt+r6UAktYrZqLsjQnLQnp9lgA8GhHTSB4P4Pw22m5mZhh/ltGiDZ2IyBq04d97HZ9l2ccavIYnizvHbbV5wwZ13lXc9ZwUkv6zIqtoXce16ftY9/OMpFdIem+P52Z2/w6K3/093WWzLOt7b0RJS0r6QETc2cLrUETcLek/iw5mk/qXj4hZDT7H69RHK43f5DzZbMD4i0f5NiWzf64rOfZ1Ncc91lU+SXp/RDw+wO8lsiz7btGZLHsta0fEr4f43f+lmPLcCkmUtGdEXNfSZ1MRcaOkfSQNlChR0h418R/pccwLI+I3A7Y3i4ifSlp1+Hc0H52UdFhE/K2l9/MeSe9ser53y7LsMw3OzU1aeN3PzbLsuIiY0cJr/qOk/Yf9O1V8j9e99m27jlk6y7KvR4PvzJKfP3THHISzjJqZTR2rodn38lW9HkwpfQdA3Z3yRQDs2We7SkXEPnVlJJ06ilGGivreXvL4N0nOqDo2y7JPkjyqhWZ0JB0nqddo0W+7p7yRzCSd312QZN2d9meRtI2kGyV9HsAa/TW51HMkfV3SDb1GHbqRfAjAbxrEHXT7lFei2Xky6H6OrwSwUFUBST8bMPbEGItLOlvSF9D/SDQAkOT+kq4uRrm64+8h6QYA2w/RzHUlTcuybOhzQtKLiraegXzaalteJOkHkqZJqpshMTTla36vBrDVgCESgD2K82n3IduyVRHniwCeO0ysCVZTnuDs95Je2FLM1khaSNKRkm4heQiARVsIu4Gk70r6naSXtRCvEUkvkfR7kv+JwWdtbijp11mWfXzQmyKAO4RmZlNJ95TBXv4M4I+9niD5VwDT6gJI2q+/ZpUj+aa6Miml77ZVXx3l0+16/kFPKX2r5ti3kfxITRUPSDqG5F4ktyS5S9GBvLtH2U0AzDG6QnKOjl/Rvl5JhTZoetda0hGSLgKwZpPyA9hA0pUqydw6Eckz68pExEAdwojYrkm5Qe+aR8QudWVSSkN1CIuL2nMA7DZMnMLzJF0oabkJ8Q+S9BMM1tHs1iH5MUkDJzhSnvH3KuTr7EZlG0nXSOrrJko/siz7X0nHAVi4hXArSjqz5KZRLUmHS7oEo9uG6PmSrpDU2g3EYUlaQ9Ilkj6BdjqC3TaV9BtJH1A+/XNkJO0saRrauXHXIfnRiGiSpbwndwjNzKaAYirVIXXlSH6zar0AyZMaVLejpKEzlUraGMALaopdTbJnB3ZEdi15/DqSt5YdJOl5xYVeRRF9keRanU7nvSTPIHklyV+R/DjJF0g6pWEbe3YIAdzc47FF0WCbEUkfkvRpjD7h0JKSfqx8q4wqtR1CktsPctFFcruGRbcZMP7ONUX+SvKGfuNOFBFfATD0NK8J1oiIrwKApLcoT1rU6jWepE9I6ntkT9Kekn6ACWvsRmgVST+X1Nbo+L9I+gDJtrP+LiDpO01G3rvacpikz2H05/sSkn6ofF3gWEnaqLipMLIOf2EBSZ+PiG8OO4W0jKTNi5HyxduMS/Ltkg4d5Fh3CM3Mpob3AXhpTZm/AfhqTZkzADxaU2YB1Cf9qBURtaODJCdtdBAAJPUcdZJ0ds1xX0f5aMp0kvt0Op0PkJzeqwDJ6SmltwH4aU0T/wng6pLnbi95fOmqgJJeWXQGJ8uCxUXic8oKkLwdwO9r4qyIPCtjY8rXyzWdxrYi6m9YdMdfHXNuEdJdZtjRwYOKKWKtIvkmSQcoT4Y0iuu7BYqRmcYkbSDpe5jczMgrSfqp8iQrrVC+HvizbcXrsnjNzajutmxddAYnywLFlNzWO9lNSVqvmP2wymTVSfLtEfHNEYReUtKP0c7o/RwkfVoDrE91llEzszEq5vwf1uBiYxbJA0g+WVWI5Iwsy35Qd8FZTBut61xWIlm3fnAmgNOGqWMAPdf1pJQuLzugGFEpG1l8huQbyqZ5TkRSxVS9nQAsWVLswor1lGWp9EsvHIqR5ePQvANwi6RLU0q3IO+cZgBWjojnkNwU+fvXJJnEKpK+gorsjJLOJPmimjg7Ik+j3tQrAfQz6rcNeo+8lqkbHRx2uuiSkk7o8bgAXC3p3JTSHQBmId++4MUkd0V99mAAoKSyGQKPSDovpXQNgAcAPANgxYhYh+QeyLd6aGJ3SauT7DVF+lmKz+ZJqM9APFsG4FJJv0sp3Y78xtaCyN+HFUi+EPnvf5mqIIXNAewPoMmMiTqLFZ3aXufYY8ozh96IfFsQAVg+IjYnuQuApjMxtpe0FcnS76nZivOuaQf7T8X5fjPy8/0Z5FsZrDbhfK9cL1tYqRh1fm3DelsjaRlJZ6E+6+9E10m6KKV0K4CHkE/xXbU4n14FYNkmQUj+u/K1iq11wCV9Cb2n9WcALpZ0SUrpXuR/D5aLiPVJ7oR8O40mloyIdwM4opUGm5nNTzTJWUYlLSLp9RFxRZOsdCpJlFIS++UNYoakNYdo/+YN6hg68UafbVqx4ve2fMkxKSL+VHFc7TTeblmWHVMR7x1Vx0aP7JnF1Nyy17xNw0x0P1KDrJ6SVs6y7NMRMbPh+VA6hVDSSxrE+EVdmybKsuwr/WTgy7Lse33G/35NzH9UTSNTfZbRXj+XStq8IubCko6MXL+xZ0j6iKTS6ZrKM52+IyKeaPg7f0uT91L12Ttn/zyZZdln1WAae/G9eXBEPNwg7mUtt3Piz0PKt/EoXUsoaVFJh0fD7JFZln2lQVubfLcrIs5Qj0RDPeKtlGXZJ6M+q+7s333dLJbWs4xmWXZyH7+X8+piK1+/e1BEPNQw5kw1zFisBllGe/w8k2XZCZIqRz8l7RYRdzWMeUfT99fMzCZo2iGMiOsj4odD/PwiIn4XEU82rG+6pNqpmd0i4o8N/igPvB4my7LPNYhftbdX6yS9oqQt/6w45tUVr+EiDbAGTdKrKt6T51Uct0TJMaVJI5pskZFl2Yn9vo7i4qP2QrbqIlYSG1zAPK4+0ttHxO/7uNBSRPytj9ecIuIfNa/32zUx+uoQZln2jaoOZlfsj/b52p+uGPnuFX/3yNW1+fgm8SLi7AZt/IcGSAKjfNuHB2tiZ5Jq12gN0CG8sZ8pecWNv9r3NSL+0CDWkQ1+P98d4HzfJRrcBMqyrNfo9rO02SGUtGPD38lTkt7bz+uWtEZETGsY/xo1yOA5QIfw8WJGSdM2rx49ticqeY8H2tbHzGy+1keHcDJ/pjW5y1vyeg5vEH+gxBjFhf5fa2I/KKnJVKTWSNqrpC3Xlh0TEb8qOWaWpKZTdLrb8YKSmJVTF8s+g5qQPbJH+3/Y4MJgoHT0WZYd2+AzVLbucXaMrzZo39ZN2iNppcj1dR41HQmXtFmDWJVT5vrsEJ7R5wXswtHH3pKSPtQ09mwNRkgVEb9r0NZFo8Gok6TajK4VdRzcIH7tyE6fHcK/VJ2PZbIs+1aD2CGpMoFUk9/PoB2BLMu+1KCNc2yo3iNOKx3C4u/MVQ3a9IykPQZ5zZIWjIjzG55P+zaI10+HcJbqk3P1quP1DdvbeFYR4KQyZmZT0QySb0wpbUfyLwPGOAX5epEqGw/Y6dkCNVsbSDqd5MwBYg+jbN3eHBtLA/kdYpTvhfcLkrV37Ev0XJ8v6Vc1x/Va1/IwydIRTtQknEG+L2XtRVwvKaVjGxRbq2qqU0qpNtsomu9HWLV+8KGK45pedNWtH5wO4IKGseo8QPLtVRmDu5F8Wnm2zibuBPDlfhuVUjqxQbEVGpTZDPVr06Y1WZtb4dQqx7O0AAAdg0lEQVQGZfruvFWYRfLfas7HnlJKRzcoRgClMwgAgGTd+Q7kycf6llI6pkGx1ZUnXpoMO6I+0RpIHkZyoOUJJGeR3Bv1CbAwzIyakro/TvLSAQ79OYDSjNmzRcSa/QR1Uhkzs6lnMUmnRsTBJL8H4Hsk6zp3z0Lyvog4FzVJACJiPwBH9hM7IvYhqwc2JnPvwQlKs4SWPP5alHQwSH59iHb07CCllOoufp/f47G6P/yP1zyfAKwLoO8bCyRvzbLsCwCWqilXNS1vGvLkIKUXssozw368rj0RsV3Z547kp5Vvzt3ruG2R3yCp1GC06ry6pE5NkfwSyYf7PS6lNE3SB+rKSfpeSunpAZr2G+Q3EaoGDJok5Fi3rgDJnzRtVMnxj0c+Hbyq09faLAVJp6WUakdHeyH5x8inhNbdgOu51nlCGx6v++4FsD5K9qqtQvKOLMs+h5qkPSRHsf/fHCLiwAav9XIAtWsvq5B8THkysN+gOmHVJpJeTvLKYeor3AtgoEQ1JJVl2U9I1s0AqPwsdXOH0MxsaloI+X6BOwI4UtJhJH/eTwCSJ9VNcSO5r6SPNh2pUJ6Aom7LiltIXtW4oe0p6zT3fG0R8cqSC45HUL5XYBO9ti2YibxzVCoiXtrdHkmVF6CS7qu7aJL0KUlv6mc0arZOp3N4v8dMRHJmlmXnkqyabvVySYuXbekxIdZ2JU/9BXk2254dQpK1I4SSFqubujroKEQPGYBBN5BudKHfcGR2DiSfjDwhRdVm50tJ6lRkywWAeyVVvkaSvx6kjbMpTw5SebOiTSmlnp+vpiRdRXKoDiHyjkRdPZ+UtDfJaN66XKfT6Xua8SgU52NdRlORfO8g32vdSF5RZOeunBYa+VZLQ3cISX6V5CA3bAAAKaWrpNqX7Q6hmdk8Zh1JP8uy7AsppSNqLsQmOhvAP1Cd+nwd5FNAm/6R2xpA5ZShyd57cIKyDkXPtPcky6YjXdbHezwHSTv0ePhykk9UHUfyZd2PpZSmVR2TUrqzwYXBGyUtIentJGsvKNuWUvp5zfqbhQC8AsB5ZQUkrSxpg5LnpqWU7o2IW9B738H1Ja1M8v6KNmyLPDV9mVnIz6c2XEuyaoprlQcblMkA3DhgfKB+H1Mi3/ag9BwppoIOc1Olic0wedexd5Ac5j1FSunPDc7V0mywRYwm5/ueks6V9B8k7+mnjVPITgDqRiJ/S3KgEdteUkrH1a0TJPka5HsGD6uvm7s9/KmuAMmq77M5eA2hmdncgSQPj4jGd6lJzpJUu84mImoXy08oW7f3YADoK9V/i2aUPD5Hh7BIeNMz2QrJ3w7aAEmLAtiuR8zKi2NJywB4edfDMwHUjaI0XdO2m6Tbsiz7uqQt+s1COKRzkL+WUhFRt46wdP1gSuliAJB0ccmxRM06woiomy56ySBTPHuRNPDnC+U3PSb6K8mnhqijlWmxoyRpBUlN1ri2Vd+0FsL8o4UYFzYst4ukW4sstls2yZA5lRTTvCuRPL3lai9H/frLdSU12RO0yoMAbhoyRhufpWeZqz4gZmbjJulLJF8y5M/LSO5K8gDlm4rf1rR+ku+RdGDT8iml2o2ZSb5JDVLfF9PE9q4pdhHJgZKYtOC+ksd7pYhfDeWbOw8zirYPeq+Xqxst2Rtzjg78om4kieS1AJpOz12U5H9KulLS3UV6+oMkvajJ739QJB8FUNZZm12mskMYEdtVPH0xUD2aGhGVHUKSlQllWpwuipTSA4MeW0wDrBsiGrbjOkxncqQkLS3pEEnXo0HCkRbd2UKMupHXWsUoZe3m9YVFSB4o6fLifD9F0sGSNpY0pWcIknxJg2JtjdjPrlOSmsRs0rYqd7UwzXXoz1K3Kf2BMDObalJKd5O8psWQ3ynu3r6muONdmWUOACR9VtJPSdZOHyP5+yJNfNXF0yoAtkf9aNO2KEmYMqG+cU0XBYCyLRBWl7RAV2KesoykANB3FsHZJL2rx8MPAriu5rj9ux8jWbnn3YRy75J0BYDG+/kBWI3k/hPqnR75XltXpZSuQp4BcuCOS482nimpqtP1YknLl3WAK9YP3kby7uL/SzudJEtHHCStVpNtVwAGWpNXYuDPV0N1iYbqjH2EUNLSyBPTrAdg7YhYi+RmkjbGGK5dU0pNpupOCpKHFKPM/STMWZXkWyS9pfj39Ii4tut8b33UaQi9EmxN9AjKv+8HllK6tsGU3BdguCmfU+azNJE7hGZmY1bc9f+5pEsknYV8PVWVZSPiSADvbRj/ZEmVd9OLbKOVHcKIeFNNApMnAJzRpE0jch/yKXXdWS8XQL5NxsSMnVUvpHYz614k7SVpjnWAki5IKZUmeJC0laTuDst1yKda1iJ5jaSjJH26vxY/y+IAtiW5bXFBFBFxnaTzU0rnIV8DOWuI+D9Hng2w7H1PyKfazpF5UtIqknqtDXzWNFGSVesIN5a0DMleW5DsXNEuALim5VHvgdenNjTM7wmo366mFcWNsDUBbABgw4h4PskNAKwnacWJZRtkmxy1Yd/T1pC8XtJHJH1+iDCLA9iG5DbF+a4e5/tkbxsEIN9vUzX7MQK4vo1kMr3i1hWIiDWGrGMs72sdTxk1M5siSD5C8vUA7mhQ9q2Smi4aPw0108BIvqEqXjHC9oaqGJLOqEucMkrFBUJZ4ofuDnHp6FdErNdv3ZIWLbtAq9tuoldHjuRR/VzwkPxfkh9G/XTCphKAzUkeIWmapPuyLPuCpNrtBEradxeAa6vKVKwjrF0/OFvFOsKEPCFSr3onbbro/E7SJpL+KyJ+I2m6pNsknS3pcyTfDmArACvWxZnfkfwCyfejvfOdADYj+WFJFxXn+9GS+v4ubMHyqL5BA0mjSo7VJG6TfTjnOu4QmplNIST/SfK/GxRdFsBrGsZ8WFLdRe0yAHaveH4H1FyojWnvwWeRdFmvxyOiO2HLAyi5609y137rjYhvAlir5OnSDekl7Ye8wzPRL0me1W8bSH6W5KvRx5rUPixH8v2Sbi4uFKum3Ja1r3LaZdk6wibrB2frdx2hJJLcqapdANwhHJKknSPiYknXS/oU8o5fZUZNq0byaJKvwgB7jDawLMn3Fef7MZrE7T1QkhW6S6+R/jbUrr9l9b6rcy13CM3Mpp7TATxWV6hJJrbZUkon1pUpOidldb2p5vC7AFzUtD2jklLq2SEkuVvXv59BeXKGLSRt1bROSR8h+eaSp/8yYY1b93EvkPT1roenk/x/TevuRvJcki8sYtwyaJwKCxQXitcPMHpQtw5vfUlzTMeqWD94B8nurIAXo2TUpGQd4SYAqqan/YXkHyqetwqSVoyIsyWdj3wNcltulNR2lsm5DsnzSb6I5CEAbh5BFR2S75Z0g6S6dX1tabKcbeA9/GrMRJ4pu8o8udzOHUIzsymmWKt1aYNym/cR9kLUZ8p7Ta+RH0kLkdyz6kBJ3+MAGyGPwEXovf3EekVCin8heW5ZEEknSlquqiJJnSzLvizpkxXFeo7WSVpT0pnoSm5D8lCSt/Y6pimST5E8juSGJLeW9AnkmUjbXLu2tqTfSNqwj3bdCOCvNcWetYejpFXRe01gz60AmO+zWLZH1+aSukcfKqeLNhhZtxKSVpd0OYBXDxnqKQB/kPR9kh8g+fKU0iZlN3/mNySfJvk1khuR3ErSxwH8Fu2e72tKukzSi1qMWaZJUqNemZzbsBTq+0Zl2xvN1dwhNDObgiTd0aDY+k3jkQxJ36kptiiAPXo8vjPyKaqlpsJ0UQAg+XhZ6vCI6M7k+R2UX3w8v1g7t2mvJ4u1UBeQfE9Nk+a4eCiSyFyBrt+fpONJnlwTrzGSInl5p9P575TSFiRXJrmvpK8C+B2GT5SxoqTT+ljLiqITXKrHOsLtysp2rx+cUMe0kkMWQtdejzWZT5FScodwAJIWKc7DftacPgrgF5I+Q/JAktuTfC7JxVJKL+x0Om8m+UUOsU/ovKw436/odDpHpZReTnIl5lsKHYf8htCwyUxWKM73UU/1rV2HTrLy79EQauNKGts6+VFyh9DMbGpqspfYMv0ETCmdjJokBL2mjTbYjP4qkqOYnjiQlNL3ez1O8u2SFp/w7/skfbMi1IskXR0RlxXr5o7MsuzYiLhK+T5o2zVozg6SXixpSUnbRsSPi3WO3dt3/CylNPBU0SZIPkTyB51O59CU0stILklyS+Z7W/4AwD0DhN04Io5oWjil1Nc6wn7WD06oo3T7iYnrCCUtiuoN6+8DcGXF81YiIj6KfDpuncckfYHkZiSXTym9ptPpHEHyWySnkWxjz7b5UrEe/YedTuf/FTeEliL58mIK6OkAek5lr7FRkeF6lP6J+lHCxjdD+9RkWuwg35NTnjuEZmZT0xINyizYYwpcKZK3A7ikptjOE1O+S1qkyHxaFXdKjA5OcDZ671G1LIADJz6QUjqqpOy/igDYulg394libV6vLTzKUvUvI+k6SY8VGTD3QlcGvWIq3D4kR70dwbMUU82uJHlsp9PZN6W0OslNiyln9/UR592Smu6Jdhmq9+FbTdIGE2JvV1LuTpJl00+nodk6wm1QkdhE0llTZBr0XEX5fpJ1I+cAcCnJDTqdzuEkr5vsz//8pjjff0vyK51OZ7+U0hokN5H0P2iWXXN2nENHOUpY3ACoW97w/Ik391q0WV2BlFL3uuV5gjuEZmZT06oNymToc3E9ybrkMgsAeOOEf++K6vUaM5EnwZkySGYkj+71XLF/1zITyj5Ccl8Mty7kepKlCXkqBMmjUkr7c7g9/lpD8vpOp3MUyTVJfhDNppkti+qRtonxn5H0i5piOwD5hvEoGQmo2F4CJO9D+TrCl0taEAAiYpeqRni66MD2RP1enn8guSvJv09Gg6w3kjd2Op2PkVyL+TYWTf6eLI05MyO3qpiBUaWDrunfLdXbJJlY7V6FcyN3CM3MpiCSdZvTA8CDA9xV/wlqMphOnDbaILvoL0g+1GcbJsNJ6D21Z4WI+J+JD5D8HfOtBwZ5HReS3AHAuQCm93HcbSR3IvnxqTgKVYwmfL54bU2SPLy4aey6aaOSZk8b3a4iRmmHsIgxreSpxQBsDgAkq9YPPo48EZP1KSJ2qCtD8kMkm3yuKsMMebwVivP96GJEvsn3WOPzfRAppd/VlWnwt6kvkpZHTZIp5B3mG9qsd6pwh9DMbIqRtCWA5zQo2nha32wkp0v6YU2xrSU9V9JiJF9bE2+qTRcFAJCcwXyj9l7PHTqh0zH7sStIbgGgbvRqtulFRtCdST5McjrJzzY47sHiYvhFJIfapkPSARHxw6ofSWsOUwfJ30jqOdo6UUR0r4msch7yzJFltpPUGWT94Gw1HcZtJa0CoDRjoqRzSY4qtf08jeQGNUUeB3D+sPVERJNZFPMMSfs3ON/XGaYOkldK+nxduT7P90GcV1eA5N7FOuC27IM88VSVS+bV74V5ci8NM7O5lSQWa7ialP39IHWklE6S9I6KIgSwL/K1dVVrGR8EcM4gbZgkpwI4GMDWXY8nSd+V9HKSd81+kORtyLfe2DEi3krydZgzcc8dkr6fUjqW5P1dz32y6HAfhTx9+WwzAZxD8nsAzu6+oJD0PAArdMWaXpeoJyLWJvnGqjLIR4TvqClTKaX0c0kfqSm2YNN4JJ+IiAtRvh3BsgA2q1g/eDfrt+aYhnwd4RyjSJK2Yb49RekIk6eLDmXFmufvbGOKNMnJ2hdvqlgLz57O38uZKNnqpqnifP9YTbHG5/sgSN4UEbcDWLui2LIADgPwqWHrk7SYpP9q0K6zhq1rqvIIoZnZ1HIkgJ2aFEwpXTBIBSQvR82m5ZL2k1Q5JUfS6SSHTWU+MszTsB+AfESi22qSzpY0x/pIkhd2Op23kVyR5OpFZr6tSK6RUlqr0+l8pEdncHZ9RxfHbEVyz+LYZVJKe5L8SY/O4Csk3STp6ok/KKY1Vkkp3VVXJiIafZZqNPkdP9pPQJJ120+8FUDPje+r1g9OiF+1jvAVEbFrxeEzMbVvdEx1daM2Q0+RLtaXvmbYOHOZukQrU/Z8HwQbbMEj6UPFZ2EoEXE4gNVrij0FoGcG63mBO4RmZlOApIWzLDumyPjWxFPI7wYPpMEf2xcD2LuqwFTZe7AKyVtJHlLy9MaSLpyYVbXr2GdI3lNk5ruCZKM07SQfL8r/rDi251opSdtJOgddo7CSTiN5aoOqateyMN93sHv0sV+1IzEppapMrb2chYqOAclDK+qq7RAClesIlyH55opDLyI58gveediDNc+vJ2mpmjKlJDEivgSg8f6X84gm5/s+klYesp4X1BUY4HwfxLdRn+RmSUk/7SfbdjdJu5Os3UqjuAE6FdfLt8IdQjOzMZL0AkmHS/oLyXejYaIESSeTfGSIqk9B+VYJTfyRZO3C/6mA5CmSvlzy9OaSLpO00WS2SdJBks4HsGTXU7enlN7VMMw1qE+Es4Skb0vq9N1IAJIWkvShBkWv6iduMYI36AbjjTqETTuO3Uh6uuhw6rYwWCQiGk2L71asLf0yybq9UWcb6dTGSXYDgH/UlFlM0olDnO8LjuJ8HwTJv0s6oUHRl0k6fZBtKIoZGj9A/RK6WSmlT/Qbf27iNYRmZn2QdFBE7DZkmIUBLA9g5SKzWb8eTSl9cpgGkPx7RJyH8nVcdcdP+dHBiVJK74+IVUn2mga7vqSrJL0PwDc5wo2wJa0i6ThJe/V4+v4iFX+jjj7JLMuy0ytGQGd7XTE99j+KtXNN27qqpO8A2LSm6E0kb24adzaSZxYJlPpxL8k/Nyw7DSXrCCsEgJ/32SaboLi5VbktAcn3ZFn2TErpI02TdBQ3z75Gcvs+mjPq5CeThmRkWXYa6/d43F3SuZIOYB/bekhaWdLJ6L3P6kS3kBxo/Xq/UkqflPRvqF+X+tpiuv2+JGtHUiUlAEcUayVr+0KSjpmkUVEzMxsnSatHhOaGH0n7t/Sa9xqwDZmkuvUWU46khYpsfFWv7XJJW4yg7kUlHRYRD5XU+4ikuo5Xr7jrRMTTDX9vM7IsO0HS9mXZ+SQtL2m3LMtOiIgnGn4e3zrge/KCfj97WZad1k8dEXFzn3VcMchrmfCaXtfg/XrnMHVErqqOXw4Z/2cNXkNpNkZJe/bxft8m6YOSNiou0rtjLS/pjcV5+8wA31WXSKqcWippjwav9+Bh3tOintrv25pkX5C0ZkQ81fC1P5ll2Tck7VA2pVLScpJelWXZ1yLi8Ybn+9ur2phl2WcaxNikj/dt7z5+3zOzLDupmI4/x+hwcUPuoIi4qY+YN5d9X/aI32kQ7+ymr72inoUa1NPXTAePEJqZzUUkfTKldEpL4c5Cvt6n3zVmFzZdTzeVkJwpab+IeIhk2QXelpKujIgLmG9u/yuSA0+tLTrOb5V0KICyNPl/J/l6ktf1G5/kbVmWfZHkEQ2KL0ryIEkHAcgi4i7kU06FPGPfCiqS7JCNB9UuBfC9fttd1HFLRPwJDdYoztbvNFBJ00jWroma0CZPFx3eWcgz267ZoOzakj4L4LMAno6IBwDcj3zj8VWUbw8yjG0k3R0RfwSwGMnvk/zSkDHHhuQdWZZ9juRHGxRfhOSBkg5Efr7fjfz7fvb5vrykZYq4TZtwBYCT+2/54Ej+OMuyL5D8QIPiC5I8QNIBAGZGxG3I91UkgNUHWF/5aJEcbNg9M6c8ryE0M5s7BMkjOp1OkwuBRooOUpPkJd3HzVXTRScimXU6nXeSPAjVG67vJOkcSfdkWXa8pDepQTY7SQtLeqmkD0XEhZL+JulTKO8MXk3ypSSvHuT1AEBK6SgAl/d5WAf5BfvmAF4CYB0Ac2RcrXEXyf1IDpw1UlK/iZH66hCmlKb1Gd8dwiEVyZiaroOdaGHkmR43R57Uqq3pnisA2BbASyJi4GQ2U0Wxlu3SPg/rAHgenn2+d2+pU+fvJPclmfV53NBSSh+S1O+Np4UAbID89W4OoN/O4BMk96jb/mde4Q6hmdnUdzvJnUh+pu3AKaWT+jzkcQA/bbsdk43kN0huifrMfSuRPLhIWnBPRDwSEVdHxC8j4odZlp0W+RS7XxfT36YX6xE/A2AHlP+dzSQdQ3Lbftb5lLyWWcz3TKxdO9OiO0nuTPKeYYKklPpZr3c/arZL6eFi5CMiTdxMsmyrCusDyXMlfXPE1dyOfMRqvlKc768HcO0kVnt3cb7Xbn0xCiQjpfQ2SV+ZpCrvJ7kLyWmTVN/YuUNoZjZ13UvygyQ3InnRKCooFuA3vrCQ9BOS00fRlslG8gaSmxfZXZtmbF0a+d3mXQG8keS+AF4PYHvkmyg3ye53A8ktO53Oe9uaikTyIZLbYHI66xeQ3KKlztMVyDt6tSRd3G/CH1bvR9gd36ODLUopvbNIUjIK5zHf4/NbI4o/pZF8uEjc86NJqO6i4nz/4yTUVYpkdDqdd5PcH6PdB/Hi4u/CfHWzwR1CM7Op5SkAZxVTc9Yk+XmST42yQpKNRwnnhr0H+0EyI/kVkmuT/G/U76E2jBtIvoXkS0axZQfJx1NKbyhGC29rOz7yrUbeXNw5v6+NgCRDUqMkC4NuI6Hy/Qi74w+8r6fNiWSWUvoPkh9Cvo6rDX8jeQDJ3Ug+gHyj8Dtaij1XIflESmkfkq8G8JcRVHELybeS3HHYWQxtIvk9khtIOgVAm9NX/07y30luP+zMh7mRO4RmZuPxJPILmcslnULywyR3ILlsSul1JH9AcuYkteX7AJrU9Tf0uYZrblHccf9E0Qn/dwAXomLj9D48AeBHxQXspiRP5RBJapogeVYxqnwAgAsw3EXTkwB+QXJvki9inpSj1W05+uiIDfTZa7iO8B5Mwt5q8xuSIvk5khtJOhGDdQwDwK+Lzsn6JL8z+zNI8imSewKYMh2WyUbynOLcfBuA8zHc+f4UgHNI7lN8h5zS9vneBpL3djqdt5LcUPlehf8cItzVJA8ubgqePBVf72ToZ28eM7N5VpHyvN+kGoN4guSsSainMUmrSboLNTcJJX2q0+kcOUnNGrsiw+H2EbEdyS0ArA+gLv34owBulHRDSul85FlKRzrCW6dIhrNTRLyY5IsBbIj8s75IV9EZyDtGf5B0c0rpSuTTQ2eMuH1Nz71HBrlYk7QAgCVris0i+US/sXvUtSCAJWqKzWDDvfdK6li2pshQr0XSEqjZ0J3kwwPGXgrAnhGxTXFOrYNnn1PTkY/S3yrp8pTSFQAuJ1k5RVDScgAOkbQHgPXwf7/vWQD+KunqlNKlAH7WPbo9Gb+zop6FANRtnt5GPavi2ef7Rqg+3/9YnO+/Rf59NdRobrFFQ3dd3R5ji8lpivd2+4jYtvhcrYs8QVH3FP7HAdwu6Y8ppcuQv95WR1dHfX6Oqh53CM3M5nOS3iXpq3XlSD6fzTcFn+dIIvKLjFUBLFX8ZMg7gY8CeIBz0XYcxUXU0shfw2OjHrk066XoQCyB/GZZK2tqJS2JPGvpI/5c5yac74H8fJ9SNyZHodhWYxEATwN4qq3Pl5mZ2TwnIi5ssMltv2nOzczMzMzMbCqTtFpEPFPXIZT0b+Nuq5mZmbXPSWXMzOZvb0b9VgkPAjhjEtpiZmZmk8wdQjOz+ZSkBSUd2KDct8edGMXMzMzMzMxaJOmjDdYOZpLWHndbzczMzMzMrCFJqUi33+u5RbMs+1jk6jqE3qzbzMxsHuZtJ8zM5kGS1pR0C4CbAdwp6V4AGcnVAbwCwHJNwpB8KclrRtlWMzMzMzMza5GkNRuM/tX9OJGMmZnZPM5JZczMrJdHSL573I0wMzOz0XKH0MzMuonkQSTvHndDzMzMbLTcITQzs4lE8lCSPxx3Q8zMzGz03CE0M7PZHiS5H8mvjbshZmZmNjncITQzs6ckfYvkhiR/MO7GmJmZ2eTxthNmZvMgSYsC2A3AGhHxXABLkVwawEIAMkkzAPw1pXQtgItIPjrG5pqZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmc2X/j9B0/+uMB3y2gAAAABJRU5ErkJggg==";
139748
137780
 
139749
137781
  // ../tool-server/src/tools/screen-recording/watermark.ts
139750
- var execFileAsync21 = (0, import_util9.promisify)(import_child_process6.execFile);
137782
+ var execFileAsync20 = (0, import_util9.promisify)(import_child_process6.execFile);
139751
137783
  var OUTPUT_FPS = 30;
139752
137784
  var FFMPEG_FALLBACK_PATHS = [
139753
137785
  "/opt/homebrew/bin/ffmpeg",
@@ -139764,7 +137796,7 @@ var MASK_DARK_MAX_LUMA = 90;
139764
137796
  var MASK_LIGHT_MIN_LUMA = 165;
139765
137797
  async function resolveBinary(name, fallbacks) {
139766
137798
  try {
139767
- await execFileAsync21("/bin/sh", ["-c", `command -v ${name}`], { timeout: 2e3 });
137799
+ await execFileAsync20("/bin/sh", ["-c", `command -v ${name}`], { timeout: 2e3 });
139768
137800
  return name;
139769
137801
  } catch {
139770
137802
  }
@@ -142453,7 +140485,7 @@ Returns { stopped } - the URNs of the services that were actually live and got s
142453
140485
 
142454
140486
  // ../tool-server/src/tools/simulator/stop-metro.ts
142455
140487
  init_zod();
142456
- var import_node_child_process28 = require("node:child_process");
140488
+ var import_node_child_process27 = require("node:child_process");
142457
140489
  function parseNetstatListeningPids(netstatOutput, port) {
142458
140490
  const pids = /* @__PURE__ */ new Set();
142459
140491
  for (const line of netstatOutput.split(/\r?\n/)) {
@@ -142469,7 +140501,7 @@ function parseNetstatListeningPids(netstatOutput, port) {
142469
140501
  }
142470
140502
  function listeningPids(port) {
142471
140503
  if (process.platform === "win32") {
142472
- const output2 = (0, import_node_child_process28.execFileSync)("netstat", ["-ano"], {
140504
+ const output2 = (0, import_node_child_process27.execFileSync)("netstat", ["-ano"], {
142473
140505
  encoding: "utf-8",
142474
140506
  timeout: 5e3,
142475
140507
  // `netstat -ano` dumps every socket on the host; overflowing Node's
@@ -142478,7 +140510,7 @@ function listeningPids(port) {
142478
140510
  });
142479
140511
  return parseNetstatListeningPids(output2, port);
142480
140512
  }
142481
- const output = (0, import_node_child_process28.execFileSync)("lsof", ["-ti", `tcp:${port}`, "-sTCP:LISTEN"], {
140513
+ const output = (0, import_node_child_process27.execFileSync)("lsof", ["-ti", `tcp:${port}`, "-sTCP:LISTEN"], {
142482
140514
  encoding: "utf-8",
142483
140515
  timeout: 5e3
142484
140516
  }).trim();
@@ -146731,7 +144763,7 @@ var import_pngjs3 = __toESM(require_png());
146731
144763
  // ../tool-server/src/tools/screenshot-diff/screenshot-diff-ocr.ts
146732
144764
  var import_child_process8 = require("child_process");
146733
144765
  var import_util10 = require("util");
146734
- var execFileAsync22 = (0, import_util10.promisify)(import_child_process8.execFile);
144766
+ var execFileAsync21 = (0, import_util10.promisify)(import_child_process8.execFile);
146735
144767
  var OCR_TIMEOUT_MS = 1e4;
146736
144768
  var OCR_MAX_BUFFER_BYTES = 32 * 1024 * 1024;
146737
144769
  var TESSERACT_BINARY = "tesseract";
@@ -146776,7 +144808,7 @@ async function extractOcrTextBlocks(imagePath) {
146776
144808
  }
146777
144809
  }
146778
144810
  async function recognizeTsv(imagePath) {
146779
- const { stdout } = await execFileAsync22(
144811
+ const { stdout } = await execFileAsync21(
146780
144812
  TESSERACT_BINARY,
146781
144813
  [
146782
144814
  imagePath,
@@ -148988,15 +147020,15 @@ async function runSnapshot(env, opts) {
148988
147020
  }
148989
147021
 
148990
147022
  // ../tool-server/src/utils/status-bar.ts
148991
- var import_node_child_process29 = require("node:child_process");
148992
- var import_node_util21 = require("node:util");
147023
+ var import_node_child_process28 = require("node:child_process");
147024
+ var import_node_util20 = require("node:util");
148993
147025
  init_adb();
148994
- var execFileAsync23 = (0, import_node_util21.promisify)(import_node_child_process29.execFile);
147026
+ var execFileAsync22 = (0, import_node_util20.promisify)(import_node_child_process28.execFile);
148995
147027
  var DEMO_BROADCAST = "am broadcast -a com.android.systemui.demo";
148996
147028
  async function pinStatusBar(device) {
148997
147029
  try {
148998
147030
  if (device.platform === "ios") {
148999
- await execFileAsync23(
147031
+ await execFileAsync22(
149000
147032
  "xcrun",
149001
147033
  await simctlArgsForUdid(device.id, [
149002
147034
  "status_bar",
@@ -149039,7 +147071,7 @@ async function pinStatusBar(device) {
149039
147071
  async function restoreStatusBar(device) {
149040
147072
  try {
149041
147073
  if (device.platform === "ios") {
149042
- await execFileAsync23(
147074
+ await execFileAsync22(
149043
147075
  "xcrun",
149044
147076
  await simctlArgsForUdid(device.id, ["status_bar", device.id, "clear"])
149045
147077
  );
@@ -150397,7 +148429,7 @@ init_zod();
150397
148429
  // ../tool-server/src/utils/workspace-reader.ts
150398
148430
  var import_promises12 = require("node:fs/promises");
150399
148431
  var import_node_path21 = require("node:path");
150400
- var import_node_child_process30 = require("node:child_process");
148432
+ var import_node_child_process29 = require("node:child_process");
150401
148433
  var import_dotenv2 = __toESM(require_main());
150402
148434
  async function exists(path41) {
150403
148435
  try {
@@ -150441,7 +148473,7 @@ async function listDir(path41) {
150441
148473
  var COMMAND_TIMEOUT_MS = 3e3;
150442
148474
  function runVersionCommand(cmd, args, cwd) {
150443
148475
  return new Promise((resolve12) => {
150444
- const child = (0, import_node_child_process30.execFile)(cmd, args, { cwd, timeout: COMMAND_TIMEOUT_MS }, (err, stdout) => {
148476
+ const child = (0, import_node_child_process29.execFile)(cmd, args, { cwd, timeout: COMMAND_TIMEOUT_MS }, (err, stdout) => {
150445
148477
  if (err) {
150446
148478
  resolve12(null);
150447
148479
  return;
@@ -150730,7 +148762,7 @@ Fails if the workspacePath is not an absolute path or the directory cannot be ac
150730
148762
  };
150731
148763
 
150732
148764
  // ../tool-server/src/tools/system/update-argent.ts
150733
- var import_node_child_process31 = require("node:child_process");
148765
+ var import_node_child_process30 = require("node:child_process");
150734
148766
  var fs53 = __toESM(require("node:fs"));
150735
148767
  var path37 = __toESM(require("node:path"));
150736
148768
  init_zod();
@@ -150865,7 +148897,7 @@ var updateArgentTool = {
150865
148897
  if (spawnRoot) updateArgs.push("--project-root", spawnRoot);
150866
148898
  const cmd = cliEntry ? process.execPath : "argent";
150867
148899
  const args = cliEntry ? [cliEntry, ...updateArgs] : updateArgs;
150868
- const child = (0, import_node_child_process31.spawn)(cmd, args, {
148900
+ const child = (0, import_node_child_process30.spawn)(cmd, args, {
150869
148901
  detached: true,
150870
148902
  stdio: "ignore",
150871
148903
  env: { ...process.env, ARGENT_UPDATE_TRIGGER: "mcp_update" }
@@ -151834,12 +149866,12 @@ function probeArgentToolServer(host, port, timeoutMs = 500) {
151834
149866
 
151835
149867
  // ../tool-server/src/utils/simulator-watcher.ts
151836
149868
  var fs55 = __toESM(require("node:fs"));
151837
- var import_node_child_process32 = require("node:child_process");
151838
- var import_node_util22 = require("node:util");
151839
- var execFileAsync24 = (0, import_node_util22.promisify)(import_node_child_process32.execFile);
149869
+ var import_node_child_process31 = require("node:child_process");
149870
+ var import_node_util21 = require("node:util");
149871
+ var execFileAsync23 = (0, import_node_util21.promisify)(import_node_child_process31.execFile);
151840
149872
  var POLL_INTERVAL_MS2 = 1e4;
151841
149873
  async function getBootedUdidsInSet(deviceSet) {
151842
- const { stdout } = await execFileAsync24("xcrun", [
149874
+ const { stdout } = await execFileAsync23("xcrun", [
151843
149875
  ...simctlPrefix(deviceSet),
151844
149876
  "list",
151845
149877
  "devices",
@@ -151912,7 +149944,7 @@ function startSimulatorWatcher(registry2) {
151912
149944
  }
151913
149945
 
151914
149946
  // ../tool-server/src/utils/preview-window.ts
151915
- var import_node_child_process33 = require("node:child_process");
149947
+ var import_node_child_process32 = require("node:child_process");
151916
149948
  var fs56 = __toESM(require("node:fs"));
151917
149949
  var os14 = __toESM(require("node:os"));
151918
149950
  var path39 = __toESM(require("node:path"));
@@ -151944,10 +149976,10 @@ function ensureLensAppBundle(electronBin) {
151944
149976
  fs56.copyFileSync(path39.join(realContents, "Info.plist"), plist);
151945
149977
  const setPlist = (entry, value) => {
151946
149978
  try {
151947
- (0, import_node_child_process33.execFileSync)("/usr/libexec/PlistBuddy", ["-c", `Set :${entry} ${value}`, plist]);
149979
+ (0, import_node_child_process32.execFileSync)("/usr/libexec/PlistBuddy", ["-c", `Set :${entry} ${value}`, plist]);
151948
149980
  } catch {
151949
149981
  try {
151950
- (0, import_node_child_process33.execFileSync)("/usr/libexec/PlistBuddy", ["-c", `Add :${entry} string ${value}`, plist]);
149982
+ (0, import_node_child_process32.execFileSync)("/usr/libexec/PlistBuddy", ["-c", `Add :${entry} string ${value}`, plist]);
151951
149983
  } catch {
151952
149984
  }
151953
149985
  }
@@ -152006,7 +150038,7 @@ function createPreviewWindowManager(opts = {}) {
152006
150038
  const wrapperBin = ensureLensAppBundle(electronBin);
152007
150039
  const launchBin = wrapperBin ?? electronBin;
152008
150040
  const launchArgs = wrapperBin ? ["--no-sandbox", mainScript] : [mainScript];
152009
- const next = (0, import_node_child_process33.spawn)(launchBin, launchArgs, {
150041
+ const next = (0, import_node_child_process32.spawn)(launchBin, launchArgs, {
152010
150042
  // Strips ELECTRON_RUN_AS_NODE, which an Electron-based MCP host leaves in
152011
150043
  // our env, so the child boots as a GUI app instead of bare Node.
152012
150044
  env: electronGuiChildEnv({ ARGENT_PREVIEW_URL: url2 }),