@datagrok/bio 2.13.3 → 2.13.6

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.
Files changed (105) hide show
  1. package/.eslintrc.json +1 -1
  2. package/CHANGELOG.md +23 -0
  3. package/detectors.js +52 -38
  4. package/dist/111.js +2 -0
  5. package/dist/111.js.map +1 -0
  6. package/dist/234.js +2 -0
  7. package/dist/234.js.map +1 -0
  8. package/dist/242.js +2 -0
  9. package/dist/242.js.map +1 -0
  10. package/dist/{286.js → 248.js} +1 -1
  11. package/dist/248.js.map +1 -0
  12. package/dist/284.js +3 -0
  13. package/dist/284.js.map +1 -0
  14. package/dist/317.js +2 -0
  15. package/dist/317.js.map +1 -0
  16. package/dist/589.js +2 -0
  17. package/dist/589.js.map +1 -0
  18. package/dist/603.js +2 -0
  19. package/dist/603.js.map +1 -0
  20. package/dist/682.js +2 -0
  21. package/dist/682.js.map +1 -0
  22. package/dist/705.js +2 -0
  23. package/dist/705.js.map +1 -0
  24. package/dist/{590.js → 731.js} +2 -2
  25. package/dist/731.js.map +1 -0
  26. package/dist/778.js +2 -0
  27. package/dist/778.js.map +1 -0
  28. package/dist/793.js +2 -0
  29. package/dist/793.js.map +1 -0
  30. package/dist/950.js +2 -0
  31. package/dist/950.js.map +1 -0
  32. package/dist/package-test.js +6 -7
  33. package/dist/package-test.js.map +1 -1
  34. package/dist/package.js +6 -7
  35. package/dist/package.js.map +1 -1
  36. package/files/cache_config.json +7 -0
  37. package/package.json +12 -11
  38. package/src/analysis/sequence-activity-cliffs.ts +1 -1
  39. package/src/function-edtiors/split-to-monomers-editor.ts +6 -7
  40. package/src/package-types.ts +14 -7
  41. package/src/package.ts +6 -6
  42. package/src/substructure-search/substructure-search.ts +9 -10
  43. package/src/tests/WebLogo-positions-test.ts +6 -6
  44. package/src/tests/activity-cliffs-tests.ts +5 -2
  45. package/src/tests/bio-tests.ts +6 -6
  46. package/src/tests/checkInputColumn-tests.ts +3 -3
  47. package/src/tests/converters-test.ts +1 -1
  48. package/src/tests/detectors-tests.ts +25 -13
  49. package/src/tests/fasta-export-tests.ts +2 -2
  50. package/src/tests/mm-distance-tests.ts +1 -1
  51. package/src/tests/msa-tests.ts +2 -2
  52. package/src/tests/renderers-test.ts +5 -5
  53. package/src/tests/scoring.ts +26 -5
  54. package/src/tests/seq-handler-get-region.ts +4 -4
  55. package/src/tests/sequence-space-test.ts +1 -1
  56. package/src/tests/substructure-filters-tests.ts +4 -1
  57. package/src/tests/to-atomic-level-tests.ts +1 -1
  58. package/src/utils/cell-renderer.ts +4 -4
  59. package/src/utils/context-menu.ts +1 -1
  60. package/src/utils/convert.ts +7 -4
  61. package/src/utils/get-region-func-editor.ts +11 -16
  62. package/src/utils/get-region.ts +5 -5
  63. package/src/utils/macromolecule-column-widget.ts +1 -1
  64. package/src/utils/monomer-lib/lib-manager.ts +20 -8
  65. package/src/utils/monomer-lib/library-file-manager/file-manager.ts +28 -24
  66. package/src/utils/monomer-lib/library-file-manager/file-validator.ts +2 -1
  67. package/src/utils/monomer-lib/library-file-manager/ui.ts +3 -6
  68. package/src/utils/multiple-sequence-alignment-ui.ts +10 -11
  69. package/src/utils/multiple-sequence-alignment.ts +2 -2
  70. package/src/utils/pepsea.ts +1 -1
  71. package/src/utils/save-as-fasta.ts +5 -5
  72. package/src/viewers/vd-regions-viewer.ts +2 -2
  73. package/src/widgets/bio-substructure-filter.ts +7 -7
  74. package/src/widgets/package-settings-editor-widget.ts +6 -6
  75. package/src/widgets/representations.ts +1 -1
  76. package/tsconfig.json +4 -4
  77. package/dist/23.js +0 -2
  78. package/dist/23.js.map +0 -1
  79. package/dist/231.js +0 -2
  80. package/dist/231.js.map +0 -1
  81. package/dist/282.js +0 -2
  82. package/dist/282.js.map +0 -1
  83. package/dist/286.js.map +0 -1
  84. package/dist/356.js +0 -2
  85. package/dist/356.js.map +0 -1
  86. package/dist/36.js +0 -2
  87. package/dist/36.js.map +0 -1
  88. package/dist/40.js +0 -2
  89. package/dist/40.js.map +0 -1
  90. package/dist/413.js +0 -2
  91. package/dist/413.js.map +0 -1
  92. package/dist/42.js +0 -2
  93. package/dist/42.js.map +0 -1
  94. package/dist/427.js +0 -2
  95. package/dist/427.js.map +0 -1
  96. package/dist/545.js +0 -3
  97. package/dist/545.js.map +0 -1
  98. package/dist/590.js.map +0 -1
  99. package/dist/65.js +0 -2
  100. package/dist/65.js.map +0 -1
  101. package/dist/796.js +0 -2
  102. package/dist/796.js.map +0 -1
  103. package/dist/package-test.js.LICENSE.txt +0 -1
  104. package/dist/package.js.LICENSE.txt +0 -1
  105. /package/dist/{545.js.LICENSE.txt → 284.js.LICENSE.txt} +0 -0
package/.eslintrc.json CHANGED
@@ -8,7 +8,7 @@
8
8
  ],
9
9
  "parser": "@typescript-eslint/parser",
10
10
  "parserOptions": {
11
- "ecmaVersion": 12,
11
+ "ecmaVersion": 2022,
12
12
  "sourceType": "module"
13
13
  },
14
14
  "plugins": [
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # Bio changelog
2
2
 
3
+ ## 2.13.6 (2024-07-29)
4
+
5
+ * SequenceChemSimilarity: warning in case reference monomer not found in monomer library
6
+
7
+ ## 2.13.5 (2024-07-23)
8
+
9
+ ### Bug fixes
10
+
11
+ * Fix tests for Helm package init wait
12
+ * Add detectMacromolecule tests for fasta single char unknown alphabet
13
+ * Fix detectMacromolecule checkBadMultichar wo RegExp and fail early
14
+ * Fix use allowUnionTypes to allow union types in JSON schema
15
+ * GROK-15793: Fix Calculate Identity, Similarity error Index out of bounds
16
+ * Add progress indicator for loading monomer libraries
17
+
18
+ ## 2.13.4 (2024-07-02)
19
+
20
+ ### Bug fixes
21
+
22
+ * GROK-15798: Fix To Atomic Level for units FASTA, UN alphabet
23
+ * Fix detectMacromolecule to check for bad monomers on separator
24
+ * Fix for review camelCase properties
25
+
3
26
  ## 2.13.3 (2024-06-28)
4
27
 
5
28
  ### Bug fixes
package/detectors.js CHANGED
@@ -1,3 +1,4 @@
1
+ 'use strict';
1
2
  /**
2
3
  * The class contains semantic type detectors.
3
4
  * Detectors are functions tagged with `DG.FUNC_TYPES.SEM_TYPE_DETECTOR`.
@@ -7,6 +8,7 @@
7
8
  *
8
9
  * TODO: Use detectors from WebLogo pickUp.. methods
9
10
  */
11
+ // eslint-disable-next-line max-lines
10
12
 
11
13
  const SEQ_SAMPLE_LIMIT = 100;
12
14
  const SEQ_SAMPLE_LENGTH_LIMIT = 100;
@@ -73,6 +75,12 @@ class BioPackageDetectors extends DG.Package {
73
75
 
74
76
  constructor() {
75
77
  super();
78
+
79
+ this.forbiddenMulticharAll = ' .:';
80
+ this.forbiddenMulticharFirst = ']' + this.forbiddenMulticharAll;
81
+ this.forbiddenMulticharMiddle = '][' + this.forbiddenMulticharAll;
82
+ this.forbiddenMulticharLast = '[' + this.forbiddenMulticharAll;
83
+
76
84
  // replace super._logger
77
85
  this._logger = new LoggerWrapper(this, this.logger, 'detectors');
78
86
  }
@@ -93,8 +101,8 @@ class BioPackageDetectors extends DG.Package {
93
101
  numbersRawAlphabet = new Set(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']);
94
102
 
95
103
  smilesRawAlphabet = new Set([
96
- 'A', 'B', 'C', 'E', 'F', 'H', 'I', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'Z',
97
- 'a', 'c', 'e', 'g', 'i', 'l', 'n', 'o', 'r', 's', 't', 'u',
104
+ 'C', 'F', 'H', 'N', 'O', 'P', 'S', 'B', /**/'A', 'E', 'I', 'K', 'L', 'M', 'R', 'Z',
105
+ 'c', 'n', 'o', 's', /**/'a', 'e', 'g', 'i', 'l', 'r', 't', 'u',
98
106
  '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
99
107
  '+', '-', '.', , '/', '\\', '@', '[', ']', '(', ')', '#', '%', '=']);
100
108
 
@@ -167,7 +175,7 @@ class BioPackageDetectors extends DG.Package {
167
175
  ) {
168
176
  const statsAsHelm = this.getStats(categoriesSample, 2,
169
177
  this.getSplitterAsHelm(SEQ_SAMPLE_LENGTH_LIMIT));
170
- col.setTag(DG.TAGS.UNITS, NOTATION.HELM);
178
+ col.meta.units = NOTATION.HELM;
171
179
 
172
180
  // alphabetSize calculated on (sub)sample of data is incorrect
173
181
  // const alphabetSize = Object.keys(statsAsHelm.freq).length;
@@ -179,9 +187,9 @@ class BioPackageDetectors extends DG.Package {
179
187
  }
180
188
 
181
189
  const decoyAlphabets = [
182
- ['NUMBERS', this.numbersRawAlphabet, 0.25],
183
- ['SMILES', this.smilesRawAlphabet, 0.25],
184
- ['SMARTS', this.smartsRawAlphabet, 0.45],
190
+ ['NUMBERS', this.numbersRawAlphabet, 0.25, undefined],
191
+ ['SMILES', this.smilesRawAlphabet, 0.25, (seq) => seq.replaceAll()],
192
+ ['SMARTS', this.smartsRawAlphabet, 0.45, undefined],
185
193
  ];
186
194
 
187
195
  const candidateAlphabets = [
@@ -246,7 +254,7 @@ class BioPackageDetectors extends DG.Package {
246
254
  return null;
247
255
  }
248
256
 
249
- col.setTag(DG.TAGS.UNITS, units);
257
+ col.meta.units = units;
250
258
  if (separator) col.setTag(SeqHandler.TAGS.separator, separator);
251
259
  col.setTag(SeqHandler.TAGS.aligned, ALIGNMENT.SEQ_MSA);
252
260
  col.setTag(SeqHandler.TAGS.alphabet, alphabet);
@@ -265,24 +273,12 @@ class BioPackageDetectors extends DG.Package {
265
273
  }
266
274
  // Single- and multi-char monomer names for sequences with separators have constraints
267
275
  if (units === NOTATION.SEPARATOR || (units === NOTATION.FASTA && alphabetIsMultichar)) {
268
- const badSet = this.checkBadMultichar(stats.freq);
269
- const [badCount, allCount] = this.calcBad(stats.freq, badSet);
270
- if (badCount / allCount > maxBadRatio) {
271
- last.rejectReason = `Forbidden multi-char monomers: ` +
272
- `${wu(badSet.keys()).map((m) => `'${m}'`).toArray().join(', ')}`;
273
- return null;
274
- }
275
- }
276
- if (units === NOTATION.FASTA && !alphabetIsMultichar) {
277
- const badSet = this.checkBadSinglechar(stats.freq);
278
- const [badCount, allCount] = this.calcBad(stats.freq, badSet);
279
- if (badCount / allCount > maxBadRatio) {
280
- last.rejectReason = `Forbidden single-char monomers: ` +
281
- `${wu(badSet.keys()).map((m) => `'${m}'`).toArray().join(', ')}`;
276
+ const badSymbol /*: string | null*/ = this.checkBadMultichar(stats.freq);
277
+ if (badSymbol) {
278
+ last.rejectReason = `Forbidden multi-char monomer: '${badSymbol}'.`;
282
279
  return null;
283
280
  }
284
281
  }
285
-
286
282
  const aligned = stats.sameLength ? ALIGNMENT.SEQ_MSA : ALIGNMENT.SEQ;
287
283
 
288
284
  // TODO: If separator detected, then extra efforts to detect alphabet are allowed.
@@ -293,7 +289,7 @@ class BioPackageDetectors extends DG.Package {
293
289
  }
294
290
 
295
291
  // const forbidden = this.checkForbiddenWoSeparator(stats.freq);
296
- col.setTag(DG.TAGS.UNITS, units);
292
+ col.meta.units = units;
297
293
  if (separator) col.setTag(SeqHandler.TAGS.separator, separator);
298
294
  col.setTag(SeqHandler.TAGS.aligned, aligned);
299
295
  col.setTag(SeqHandler.TAGS.alphabet, alphabet);
@@ -357,6 +353,8 @@ class BioPackageDetectors extends DG.Package {
357
353
  // Splitter with separator test application
358
354
  const splitter = this.getSplitterWithSeparator(sep, SEQ_SAMPLE_LENGTH_LIMIT);
359
355
  const stats = this.getStats(categoriesSample, seqMinLength, splitter);
356
+ const badSymbol = this.checkBadMultichar(stats.freq);
357
+ if (badSymbol) return null;
360
358
  // TODO: Test for Gamma/Erlang distribution
361
359
  const totalMonomerCount = wu(Object.values(stats.freq)).reduce((sum, a) => sum + a, 0);
362
360
  const mLengthAvg = wu.entries(stats.freq)
@@ -383,15 +381,22 @@ class BioPackageDetectors extends DG.Package {
383
381
  /** Dots and colons are nor allowed in multichar monomer names (but space is allowed).
384
382
  * The monomer name/label cannot contain digits only (but single digit is allowed).
385
383
  */
386
- checkBadMultichar(freq) {
387
- const badRe = /[ .:]|^\d+$/i;
388
- return new Set(Object.keys(freq).filter((m) => badRe.test(m)));
389
- }
390
-
391
- /** Space, dot, colon, semicolon, digit, underscore are not allowed as singe char monomer names.*/
392
- checkBadSinglechar(freq) {
393
- const badRe = /[ .:;\d_]/i;
394
- return new Set(Object.keys(freq).filter((m) => badRe.test(m)));
384
+ checkBadMultichar(freq) /* : string | null */ {
385
+ for (const symbol of Object.keys(freq)) {
386
+ if (symbol && !isNaN(symbol)) return symbol; // performance evaluated better with RegExp
387
+
388
+ const symbolLen = symbol.length;
389
+ if (this.forbiddenMulticharFirst.includes(symbol[0]))
390
+ return symbol;
391
+ if (this.forbiddenMulticharLast.includes(symbol[symbolLen - 1]))
392
+ return symbol;
393
+ for (let cI = 1; cI < symbolLen - 1; ++cI) {
394
+ const c = symbol[cI];
395
+ if (this.forbiddenMulticharMiddle.includes(c))
396
+ return symbol;
397
+ }
398
+ }
399
+ return null;
395
400
  }
396
401
 
397
402
  calcBad(freq, forbiddenSet) {
@@ -459,10 +464,11 @@ class BioPackageDetectors extends DG.Package {
459
464
  const keys = new Set([...new Set(Object.keys(freq)), ...alphabet]);
460
465
  keys.delete(gapSymbol);
461
466
 
467
+ const freqSum = Object.values(freq).reduce((a, b) => a + b, 0);
462
468
  const freqA = [];
463
469
  const alphabetA = [];
464
470
  for (const m of keys) {
465
- freqA.push(m in freq ? freq[m] : -0.10);
471
+ freqA.push(m in freq ? freq[m] / freqSum : -0.001);
466
472
  alphabetA.push(alphabet.has(m) ? 10 : -20 /* penalty for character outside alphabet set*/);
467
473
  }
468
474
  /* There were a few ideas: chi-squared, pearson correlation (variance?), scalar product */
@@ -490,23 +496,27 @@ class BioPackageDetectors extends DG.Package {
490
496
 
491
497
  /** For trivial checks split by single chars*/
492
498
  getSplitterAsChars(lengthLimit) {
493
- return function(seq) {
499
+ const resFunc = function(seq) {
494
500
  return seq.split('', lengthLimit);
495
501
  };
502
+ resFunc.T = 'splitterAsChars';
503
+ return resFunc;
496
504
  }
497
505
 
498
506
  getSplitterWithSeparator(separator, limit) {
499
- return (seq) => {
507
+ const resFunc = function(seq) {
500
508
  return !seq ? [] : seq.replaceAll('\"-\"', '').replaceAll('\'-\'', '').split(separator, limit);
501
509
  };
510
+ resFunc.T = 'splitterWithSeparator';
511
+ return resFunc;
502
512
  }
503
513
 
504
514
  // Multichar monomer names in square brackets, single char monomers or gap symbol
505
- monomerRe = /\[(\w+)\]|(.)/g;
515
+ monomerRe = /\[([A-Za-z0-9_\-,()]+)\]|(.)/g;
506
516
 
507
517
  /** Split sequence for single character monomers, square brackets multichar monomer names or gap symbol. */
508
518
  getSplitterAsFasta(lengthLimit) {
509
- return function(seq) {
519
+ const resFunc = function(seq) {
510
520
  const res = wu(seq.toString().matchAll(this.monomerRe))
511
521
  .take(lengthLimit)
512
522
  .map((ma) => {
@@ -522,6 +532,8 @@ class BioPackageDetectors extends DG.Package {
522
532
 
523
533
  return res;
524
534
  }.bind(this);
535
+ resFunc.T = 'splitterAsFasta';
536
+ return resFunc;
525
537
  }
526
538
 
527
539
  /** Only some of the synonyms. These were obtained from the clustered oligopeptide dataset. */
@@ -535,7 +547,7 @@ class BioPackageDetectors extends DG.Package {
535
547
 
536
548
  /** Splits Helm string to monomers, but does not replace monomer names to other notation (e.g. for RNA). */
537
549
  getSplitterAsHelm(lengthLimit) {
538
- return function(seq) {
550
+ const resFunc = function(seq) {
539
551
  this.helmRe.lastIndex = 0;
540
552
  const ea = this.helmRe.exec(seq.toString());
541
553
  const inSeq = ea ? ea[2] : null;
@@ -553,6 +565,8 @@ class BioPackageDetectors extends DG.Package {
553
565
  const mmListRes = mmList.map(mmPostProcess);
554
566
  return mmListRes;
555
567
  }.bind(this);
568
+ resFunc.T = 'splitterAsHelm';
569
+ return resFunc;
556
570
  }
557
571
 
558
572
  sample(col, n) {
package/dist/111.js ADDED
@@ -0,0 +1,2 @@
1
+ var bio;(()=>{"use strict";var e,r,t={4111:(e,r,t)=>{var n=t(6066);const o=e=>null==e;var a=t(2780),s=t(8774);onmessage=async e=>{const{values:r,startIdx:t,endIdx:i,threshold:l,fnNames:c,opts:h,aggregationMethod:p,weights:u}=e.data;try{const e=[],f=[],g=[],v=i-t,d=function(e,r){return e===n.G.MANHATTAN?e=>e.reduce(((e,t,n)=>e+t*r[n]),0):e=>{const t=e.reduce(((e,t,n)=>e+(t*r[n])**2),0);return Math.sqrt(t)}}(p,u);r.forEach(((e,t)=>{if((0,a.lW)(c[t]))for(let n=0;n<e.length;++n)o(e[n])||(r[t][n]=new s.A(r[t][n]._data,r[t][n]._length))}));let b=0;const w=new Array(c.length).fill(null).map(((e,r)=>new a.t$(c[r]).getMeasure(h[r]))),y=r[0].length-2-Math.floor(Math.sqrt(-8*t+4*r[0].length*(r[0].length-1)-7)/2-.5),m=t-r[0].length*y+Math.floor((y+1)*(y+2)/2);let x=y,O=m;for(;b<v;){const t=w.map(((e,t)=>o(r[t][x])||o(r[t][O])?1:e(r[t][x],r[t][O]))),n=1===t.length?t[0]:d(t);1-n>=l&&(e.push(x),f.push(O),g.push(n)),b++,O++,O===r[0].length&&(x++,O=x+1)}const A=new Int32Array(e),M=new Int32Array(f),j=new Float32Array(g);postMessage({i:A,j:M,distance:j})}catch(e){postMessage({error:e})}}}},n={};function o(e){var r=n[e];if(void 0!==r)return r.exports;var a=n[e]={exports:{}};return t[e](a,a.exports,o),a.exports}o.m=t,o.x=()=>{var e=o.O(void 0,[242,589],(()=>o(4111)));return o.O(e)},e=[],o.O=(r,t,n,a)=>{if(!t){var s=1/0;for(h=0;h<e.length;h++){for(var[t,n,a]=e[h],i=!0,l=0;l<t.length;l++)(!1&a||s>=a)&&Object.keys(o.O).every((e=>o.O[e](t[l])))?t.splice(l--,1):(i=!1,a<s&&(s=a));if(i){e.splice(h--,1);var c=n();void 0!==c&&(r=c)}}return r}a=a||0;for(var h=e.length;h>0&&e[h-1][2]>a;h--)e[h]=e[h-1];e[h]=[t,n,a]},o.d=(e,r)=>{for(var t in r)o.o(r,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce(((r,t)=>(o.f[t](e,r),r)),[])),o.u=e=>e+".js",o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var r=o.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var n=t.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=t[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})(),(()=>{var e={111:1};o.f.i=(r,t)=>{e[r]||importScripts(o.p+o.u(r))};var r=self.webpackChunkbio=self.webpackChunkbio||[],t=r.push.bind(r);r.push=r=>{var[n,a,s]=r;for(var i in a)o.o(a,i)&&(o.m[i]=a[i]);for(s&&s(o);n.length;)e[n.pop()]=1;t(r)}})(),r=o.x,o.x=()=>Promise.all([o.e(242),o.e(589)]).then(r);var a=o.x();bio=a})();
2
+ //# sourceMappingURL=111.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"111.js","mappings":"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","sources":["webpack://bio/webpack/runtime/chunk loaded","webpack://bio/webpack/runtime/startup chunk dependencies","webpack://bio/./node_modules/@datagrok-libraries/ml/src/distance-matrix/utils.js","webpack://bio/./node_modules/@datagrok-libraries/ml/src/distance-matrix/sparse-matrix-worker.js","webpack://bio/webpack/bootstrap","webpack://bio/webpack/runtime/define property getters","webpack://bio/webpack/runtime/ensure chunk","webpack://bio/webpack/runtime/get javascript chunk filename","webpack://bio/webpack/runtime/global","webpack://bio/webpack/runtime/hasOwnProperty shorthand","webpack://bio/webpack/runtime/publicPath","webpack://bio/webpack/runtime/importScripts chunk loading","webpack://bio/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var next = __webpack_require__.x;\n__webpack_require__.x = () => {\n\treturn Promise.all([\n\t\t__webpack_require__.e(242),\n\t\t__webpack_require__.e(589)\n\t]).then(next);\n};","import { DistanceAggregationMethods } from './types';\nexport const isNil = (x) => x === null || x === undefined;\nexport function insertSmaller(distancesAr, indexes, num, index) {\n if (num > distancesAr[distancesAr.length - 1])\n return;\n const newPosition = distancesAr.findIndex((v) => num < v);\n distancesAr.pop();\n distancesAr.splice(newPosition, 0, num);\n indexes.pop();\n indexes.splice(newPosition, 0, index);\n}\nexport function insertLarger(distancesAr, indexes, num, index) {\n if (num < distancesAr[distancesAr.length - 1])\n return;\n const newPosition = distancesAr.findIndex((v) => num > v);\n distancesAr.pop();\n distancesAr.splice(newPosition, 0, num);\n indexes.pop();\n indexes.splice(newPosition, 0, index);\n}\nexport function getAggregationFunction(aggregationMethod, weights) {\n switch (aggregationMethod) {\n case DistanceAggregationMethods.MANHATTAN:\n return (vs) => vs.reduce((acc, val, idx) => acc + val * weights[idx], 0);\n default:\n return (vs) => {\n // euclidean\n const sum = vs.reduce((acc, val, idx) => acc + (val * weights[idx]) ** 2, 0);\n return Math.sqrt(sum);\n };\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRCLDBCQUEwQixFQUFDLE1BQU0sU0FBUyxDQUFDO0FBRTlFLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssU0FBUyxDQUFDO0FBRS9ELE1BQU0sVUFBVSxhQUFhLENBQUMsV0FBcUIsRUFBRSxPQUFpQixFQUFFLEdBQVcsRUFBRSxLQUFhO0lBQ2hHLElBQUksR0FBRyxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQztRQUN6QyxPQUFPO0lBRVQsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFELFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNsQixXQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDeEMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLFdBQXFCLEVBQUUsT0FBaUIsRUFBRSxHQUFXLEVBQUUsS0FBYTtJQUMvRixJQUFJLEdBQUcsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUM7UUFDekMsT0FBTztJQUVULE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxRCxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDbEIsV0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNkLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxpQkFBNEMsRUFBRSxPQUFpQjtJQUUvRCxRQUFRLGlCQUFpQixFQUFFLENBQUM7UUFDMUIsS0FBSywwQkFBMEIsQ0FBQyxTQUFTO1lBQ3ZDLE9BQU8sQ0FBQyxFQUFZLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckY7WUFDRSxPQUFPLENBQUMsRUFBWSxFQUFFLEVBQUU7Z0JBQ3RCLFlBQVk7Z0JBQ1osTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUM3RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEIsQ0FBQyxDQUFDO0lBQ04sQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Rpc3RhbmNlQWdncmVnYXRpb25NZXRob2QsIERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IGlzTmlsID0gKHg6IGFueSkgPT4geCA9PT0gbnVsbCB8fCB4ID09PSB1bmRlZmluZWQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRTbWFsbGVyKGRpc3RhbmNlc0FyOiBudW1iZXJbXSwgaW5kZXhlczogbnVtYmVyW10sIG51bTogbnVtYmVyLCBpbmRleDogbnVtYmVyKSB7XG4gIGlmIChudW0gPiBkaXN0YW5jZXNBcltkaXN0YW5jZXNBci5sZW5ndGgtMV0pXG4gICAgcmV0dXJuO1xuXG4gIGNvbnN0IG5ld1Bvc2l0aW9uID0gZGlzdGFuY2VzQXIuZmluZEluZGV4KCh2KSA9PiBudW0gPCB2KTtcbiAgZGlzdGFuY2VzQXIucG9wKCk7XG4gIGRpc3RhbmNlc0FyLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgbnVtKTtcbiAgaW5kZXhlcy5wb3AoKTtcbiAgaW5kZXhlcy5zcGxpY2UobmV3UG9zaXRpb24sIDAsIGluZGV4KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydExhcmdlcihkaXN0YW5jZXNBcjogbnVtYmVyW10sIGluZGV4ZXM6IG51bWJlcltdLCBudW06IG51bWJlciwgaW5kZXg6IG51bWJlcikge1xuICBpZiAobnVtIDwgZGlzdGFuY2VzQXJbZGlzdGFuY2VzQXIubGVuZ3RoLTFdKVxuICAgIHJldHVybjtcblxuICBjb25zdCBuZXdQb3NpdGlvbiA9IGRpc3RhbmNlc0FyLmZpbmRJbmRleCgodikgPT4gbnVtID4gdik7XG4gIGRpc3RhbmNlc0FyLnBvcCgpO1xuICBkaXN0YW5jZXNBci5zcGxpY2UobmV3UG9zaXRpb24sIDAsIG51bSk7XG4gIGluZGV4ZXMucG9wKCk7XG4gIGluZGV4ZXMuc3BsaWNlKG5ld1Bvc2l0aW9uLCAwLCBpbmRleCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZ2dyZWdhdGlvbkZ1bmN0aW9uKFxuICBhZ2dyZWdhdGlvbk1ldGhvZDogRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZCwgd2VpZ2h0czogbnVtYmVyW11cbik6ICh2YWx1ZXM6IG51bWJlcltdKSA9PiBudW1iZXIge1xuICBzd2l0Y2ggKGFnZ3JlZ2F0aW9uTWV0aG9kKSB7XG4gICAgY2FzZSBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcy5NQU5IQVRUQU46XG4gICAgICByZXR1cm4gKHZzOiBudW1iZXJbXSkgPT4gdnMucmVkdWNlKChhY2MsIHZhbCwgaWR4KSA9PiBhY2MgKyB2YWwgKiB3ZWlnaHRzW2lkeF0sIDApO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gKHZzOiBudW1iZXJbXSkgPT4ge1xuICAgICAgICAvLyBldWNsaWRlYW5cbiAgICAgICAgY29uc3Qgc3VtID0gdnMucmVkdWNlKChhY2MsIHZhbCwgaWR4KSA9PiBhY2MgKyAodmFsICogd2VpZ2h0c1tpZHhdKSAqKiAyLCAwKTtcbiAgICAgICAgcmV0dXJuIE1hdGguc3FydChzdW0pO1xuICAgICAgfTtcbiAgfVxufVxuIl19","import { getAggregationFunction, isNil } from './utils';\nimport { Measure, isBitArrayMetric } from '../typed-metrics';\nimport BitArray from '@datagrok-libraries/utils/src/bit-array';\nonmessage = async (event) => {\n const { values, startIdx, endIdx, threshold, fnNames, opts, aggregationMethod, weights } = event.data;\n try {\n // if (startIdx != -1)\n // throw new Error('Error in sparse matrix worker'); // TODO: remove this line\n const i = [];\n const j = [];\n const distances = [];\n const chunkSize = endIdx - startIdx;\n //const mi = startRow;\n //const mj = startCol;\n const aggregate = getAggregationFunction(aggregationMethod, weights);\n values.forEach((v, colIdx) => {\n if (isBitArrayMetric(fnNames[colIdx])) {\n for (let i = 0; i < v.length; ++i) {\n if (isNil(v[i]))\n continue;\n values[colIdx][i] = new BitArray(values[colIdx][i]._data, values[colIdx][i]._length);\n }\n }\n });\n let cnt = 0;\n const distanceFns = new Array(fnNames.length).fill(null).map((_, i) => new Measure(fnNames[i]).getMeasure(opts[i]));\n const startRow = values[0].length - 2 - Math.floor(Math.sqrt(-8 * startIdx + 4 * values[0].length * (values[0].length - 1) - 7) / 2 - 0.5);\n const startCol = startIdx - values[0].length * startRow + Math.floor((startRow + 1) * (startRow + 2) / 2);\n let mi = startRow;\n let mj = startCol;\n while (cnt < chunkSize) {\n //const value = seq1List[mi] && seq1List[mj] ? hamming(seq1List[mi], seq1List[mj]) : 0;\n const distanceValues = distanceFns.map((fn, idx) => !isNil(values[idx][mi]) && !isNil(values[idx][mj]) ?\n fn(values[idx][mi], values[idx][mj]) : 1);\n const value = distanceValues.length === 1 ? distanceValues[0] : aggregate(distanceValues);\n if (1 - value >= threshold) {\n i.push(mi);\n j.push(mj);\n distances.push(value);\n }\n cnt++;\n mj++;\n if (mj === values[0].length) {\n mi++;\n mj = mi + 1;\n }\n }\n const iArray = new Int32Array(i);\n const jArray = new Int32Array(j);\n const distanceArray = new Float32Array(distances);\n postMessage({ i: iArray, j: jArray, distance: distanceArray });\n }\n catch (e) {\n postMessage({ error: e });\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhcnNlLW1hdHJpeC13b3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcGFyc2UtbWF0cml4LXdvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsc0JBQXNCLEVBQUUsS0FBSyxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQ3RELE9BQU8sRUFBZSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RSxPQUFPLFFBQVEsTUFBTSx5Q0FBeUMsQ0FBQztBQUUvRCxTQUFTLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO0lBQzFCLE1BQU0sRUFBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUMsR0FHbEMsS0FBSyxDQUFDLElBQUksQ0FBQztJQUMvRCxJQUFJLENBQUM7UUFDSCxzQkFBc0I7UUFDdEIsZ0ZBQWdGO1FBQ2hGLE1BQU0sQ0FBQyxHQUFhLEVBQUUsQ0FBQztRQUN2QixNQUFNLENBQUMsR0FBYSxFQUFFLENBQUM7UUFDdkIsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFDO1FBQy9CLE1BQU0sU0FBUyxHQUFHLE1BQU0sR0FBRyxRQUFRLENBQUM7UUFDcEMsc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUV0QixNQUFNLFNBQVMsR0FBRyxzQkFBc0IsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVyRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzNCLElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDdEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztvQkFDbEMsSUFB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QUUsRUFBRSxDQUFDO2dCQUNMLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQyxNQUFNLGFBQWEsR0FBRyxJQUFJLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsRCxXQUFXLENBQUMsRUFBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxXQUFXLENBQUMsRUFBQyxLQUFLLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztJQUMxQixDQUFDO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtnZXRBZ2dyZWdhdGlvbkZ1bmN0aW9uLCBpc05pbH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQge0tub3duTWV0cmljcywgTWVhc3VyZSwgaXNCaXRBcnJheU1ldHJpY30gZnJvbSAnLi4vdHlwZWQtbWV0cmljcyc7XG5pbXBvcnQgQml0QXJyYXkgZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvYml0LWFycmF5JztcbmltcG9ydCB7RGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZH0gZnJvbSAnLi90eXBlcyc7XG5vbm1lc3NhZ2UgPSBhc3luYyAoZXZlbnQpID0+IHtcbiAgY29uc3Qge3ZhbHVlcywgc3RhcnRJZHgsIGVuZElkeCwgdGhyZXNob2xkLCBmbk5hbWVzLCBvcHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCwgd2VpZ2h0c306XG4gICAge3ZhbHVlczogQXJyYXk8YW55W10+LCBzdGFydElkeDogbnVtYmVyLCBlbmRJZHg6IG51bWJlcixcbiAgICAgIHRocmVzaG9sZDogbnVtYmVyLCBmbk5hbWVzOiBLbm93bk1ldHJpY3NbXSwgb3B0czogYW55W10sIHdlaWdodHM6IG51bWJlcltdLFxuICAgICAgYWdncmVnYXRpb25NZXRob2Q6IERpc3RhbmNlQWdncmVnYXRpb25NZXRob2R9ID0gZXZlbnQuZGF0YTtcbiAgdHJ5IHtcbiAgICAvLyBpZiAoc3RhcnRJZHggIT0gLTEpXG4gICAgLy8gICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yIGluIHNwYXJzZSBtYXRyaXggd29ya2VyJyk7IC8vIFRPRE86IHJlbW92ZSB0aGlzIGxpbmVcbiAgICBjb25zdCBpOiBudW1iZXJbXSA9IFtdO1xuICAgIGNvbnN0IGo6IG51bWJlcltdID0gW107XG4gICAgY29uc3QgZGlzdGFuY2VzOiBudW1iZXJbXSA9IFtdO1xuICAgIGNvbnN0IGNodW5rU2l6ZSA9IGVuZElkeCAtIHN0YXJ0SWR4O1xuICAgIC8vY29uc3QgbWkgPSBzdGFydFJvdztcbiAgICAvL2NvbnN0IG1qID0gc3RhcnRDb2w7XG5cbiAgICBjb25zdCBhZ2dyZWdhdGUgPSBnZXRBZ2dyZWdhdGlvbkZ1bmN0aW9uKGFnZ3JlZ2F0aW9uTWV0aG9kLCB3ZWlnaHRzKTtcblxuICAgIHZhbHVlcy5mb3JFYWNoKCh2LCBjb2xJZHgpID0+IHtcbiAgICAgIGlmIChpc0JpdEFycmF5TWV0cmljKGZuTmFtZXNbY29sSWR4XSkpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2Lmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgaWYgKGlzTmlsKHZbaV0pKSBjb250aW51ZTtcbiAgICAgICAgICB2YWx1ZXNbY29sSWR4XVtpXSA9IG5ldyBCaXRBcnJheSh2YWx1ZXNbY29sSWR4XVtpXS5fZGF0YSwgdmFsdWVzW2NvbElkeF1baV0uX2xlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICBsZXQgY250ID0gMDtcbiAgICBjb25zdCBkaXN0YW5jZUZucyA9IG5ldyBBcnJheShmbk5hbWVzLmxlbmd0aCkuZmlsbChudWxsKS5tYXAoKF8sIGkpID0+IG5ldyBNZWFzdXJlKGZuTmFtZXNbaV0pLmdldE1lYXN1cmUob3B0c1tpXSkpO1xuICAgIGNvbnN0IHN0YXJ0Um93ID0gdmFsdWVzWzBdLmxlbmd0aCAtIDIgLSBNYXRoLmZsb29yKFxuICAgICAgTWF0aC5zcXJ0KC04ICogc3RhcnRJZHggKyA0ICogdmFsdWVzWzBdLmxlbmd0aCAqICh2YWx1ZXNbMF0ubGVuZ3RoIC0gMSkgLSA3KSAvIDIgLSAwLjUpO1xuICAgIGNvbnN0IHN0YXJ0Q29sID0gc3RhcnRJZHggLSB2YWx1ZXNbMF0ubGVuZ3RoICogc3RhcnRSb3cgKyBNYXRoLmZsb29yKChzdGFydFJvdyArIDEpICogKHN0YXJ0Um93ICsgMikgLyAyKTtcbiAgICBsZXQgbWkgPSBzdGFydFJvdztcbiAgICBsZXQgbWogPSBzdGFydENvbDtcbiAgICB3aGlsZSAoY250IDwgY2h1bmtTaXplKSB7XG4gICAgICAvL2NvbnN0IHZhbHVlID0gc2VxMUxpc3RbbWldICYmIHNlcTFMaXN0W21qXSA/IGhhbW1pbmcoc2VxMUxpc3RbbWldLCBzZXExTGlzdFttal0pIDogMDtcbiAgICAgIGNvbnN0IGRpc3RhbmNlVmFsdWVzID0gZGlzdGFuY2VGbnMubWFwKChmbiwgaWR4KSA9PiAhaXNOaWwodmFsdWVzW2lkeF1bbWldKSAmJiAhaXNOaWwodmFsdWVzW2lkeF1bbWpdKSA/XG4gICAgICAgIGZuKHZhbHVlc1tpZHhdW21pXSwgdmFsdWVzW2lkeF1bbWpdKSA6IDEpO1xuICAgICAgY29uc3QgdmFsdWUgPSBkaXN0YW5jZVZhbHVlcy5sZW5ndGggPT09IDEgPyBkaXN0YW5jZVZhbHVlc1swXSA6IGFnZ3JlZ2F0ZShkaXN0YW5jZVZhbHVlcyk7XG4gICAgICBpZiAoMSAtIHZhbHVlID49IHRocmVzaG9sZCkge1xuICAgICAgICBpLnB1c2gobWkpO1xuICAgICAgICBqLnB1c2gobWopO1xuICAgICAgICBkaXN0YW5jZXMucHVzaCh2YWx1ZSk7XG4gICAgICB9XG4gICAgICBjbnQrKztcbiAgICAgIG1qKys7XG4gICAgICBpZiAobWogPT09IHZhbHVlc1swXS5sZW5ndGgpIHtcbiAgICAgICAgbWkrKztcbiAgICAgICAgbWogPSBtaSArIDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaUFycmF5ID0gbmV3IEludDMyQXJyYXkoaSk7XG4gICAgY29uc3QgakFycmF5ID0gbmV3IEludDMyQXJyYXkoaik7XG4gICAgY29uc3QgZGlzdGFuY2VBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkoZGlzdGFuY2VzKTtcbiAgICBwb3N0TWVzc2FnZSh7aTogaUFycmF5LCBqOiBqQXJyYXksIGRpc3RhbmNlOiBkaXN0YW5jZUFycmF5fSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBwb3N0TWVzc2FnZSh7ZXJyb3I6IGV9KTtcbiAgfVxufTtcbiJdfQ==","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// the startup function\n__webpack_require__.x = () => {\n\t// Load entry module and return exports\n\t// This entry module depends on other loaded chunks and execution need to be delayed\n\tvar __webpack_exports__ = __webpack_require__.O(undefined, [242,589], () => (__webpack_require__(4111)))\n\t__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n\treturn __webpack_exports__;\n};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks and sibling chunks for the entrypoint\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded chunks\n// \"1\" means \"already loaded\"\nvar installedChunks = {\n\t111: 1\n};\n\n// importScripts chunk loading\nvar installChunk = (data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\twhile(chunkIds.length)\n\t\tinstalledChunks[chunkIds.pop()] = 1;\n\tparentChunkLoadingFunction(data);\n};\n__webpack_require__.f.i = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\timportScripts(__webpack_require__.p + __webpack_require__.u(chunkId));\n\t\t}\n\t}\n};\n\nvar chunkLoadingGlobal = self[\"webpackChunkbio\"] = self[\"webpackChunkbio\"] || [];\nvar parentChunkLoadingFunction = chunkLoadingGlobal.push.bind(chunkLoadingGlobal);\nchunkLoadingGlobal.push = installChunk;\n\n// no HMR\n\n// no HMR manifest","// run startup\nvar __webpack_exports__ = __webpack_require__.x();\n"],"names":["deferred","next","isNil","x","onmessage","async","event","values","startIdx","endIdx","threshold","fnNames","opts","aggregationMethod","weights","data","i","j","distances","chunkSize","aggregate","MANHATTAN","vs","reduce","acc","val","idx","sum","Math","sqrt","getAggregationFunction","forEach","v","colIdx","length","_data","_length","cnt","distanceFns","Array","fill","map","_","getMeasure","startRow","floor","startCol","mi","mj","distanceValues","fn","value","push","iArray","Int32Array","jArray","distanceArray","Float32Array","postMessage","distance","e","error","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","__webpack_exports__","O","result","chunkIds","priority","notFulfilled","Infinity","fulfilled","Object","keys","every","key","splice","r","d","definition","o","defineProperty","enumerable","get","f","chunkId","Promise","all","promises","u","g","globalThis","this","Function","window","obj","prop","prototype","hasOwnProperty","call","scriptUrl","importScripts","location","document","currentScript","src","scripts","getElementsByTagName","test","Error","replace","p","installedChunks","chunkLoadingGlobal","self","parentChunkLoadingFunction","bind","moreModules","runtime","pop","then"],"sourceRoot":""}
package/dist/234.js ADDED
@@ -0,0 +1,2 @@
1
+ var bio;(()=>{var e,r,t={1234:()=>{}},o={};function n(e){var r=o[e];if(void 0!==r)return r.exports;var i=o[e]={id:e,loaded:!1,exports:{}};return t[e].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}n.m=t,n.x=()=>{var e=n.O(void 0,[242,731,284],(()=>n(5284)));return n.O(e)},n.amdD=function(){throw new Error("define cannot be used indirect")},n.amdO={},e=[],n.O=(r,t,o,i)=>{if(!t){var a=1/0;for(p=0;p<e.length;p++){for(var[t,o,i]=e[p],l=!0,s=0;s<t.length;s++)(!1&i||a>=i)&&Object.keys(n.O).every((e=>n.O[e](t[s])))?t.splice(s--,1):(l=!1,i<a&&(a=i));if(l){e.splice(p--,1);var c=o();void 0!==c&&(r=c)}}return r}i=i||0;for(var p=e.length;p>0&&e[p-1][2]>i;p--)e[p]=e[p-1];e[p]=[t,o,i]},n.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return n.d(r,{a:r}),r},n.d=(e,r)=>{for(var t in r)n.o(r,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((r,t)=>(n.f[t](e,r),r)),[])),n.u=e=>e+".js",n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;n.g.importScripts&&(e=n.g.location+"");var r=n.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var o=t.length-1;o>-1&&(!e||!/^http(s?):/.test(e));)e=t[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=e})(),(()=>{n.b=self.location+"";var e={234:1};n.f.i=(r,t)=>{e[r]||importScripts(n.p+n.u(r))};var r=self.webpackChunkbio=self.webpackChunkbio||[],t=r.push.bind(r);r.push=r=>{var[o,i,a]=r;for(var l in i)n.o(i,l)&&(n.m[l]=i[l]);for(a&&a(n);o.length;)e[o.pop()]=1;t(r)}})(),r=n.x,n.x=()=>Promise.all([242,731,284].map(n.e,n)).then(r);var i=n.x();bio=i})();
2
+ //# sourceMappingURL=234.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"234.js","mappings":"kBAAIA,ECAAC,E,gBCCAC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaE,QAGrB,IAAIC,EAASN,EAAyBE,GAAY,CACjDK,GAAIL,EACJM,QAAQ,EACRH,QAAS,CAAC,GAUX,OANAI,EAAoBP,GAAUQ,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASJ,GAG3EK,EAAOE,QAAS,EAGTF,EAAOD,OACf,CAGAJ,EAAoBU,EAAIF,EAGxBR,EAAoBW,EAAI,KAGvB,IAAIC,EAAsBZ,EAAoBa,OAAEV,EAAW,CAAC,IAAI,IAAI,MAAM,IAAOH,EAAoB,QAErG,OADsBA,EAAoBa,EAAED,EAClB,ECpC3BZ,EAAoBc,KAAO,WAC1B,MAAM,IAAIC,MAAM,iCACjB,ECFAf,EAAoBgB,KAAO,CAAC,EJAxBnB,EAAW,GACfG,EAAoBa,EAAI,CAACI,EAAQC,EAAUC,EAAIC,KAC9C,IAAGF,EAAH,CAMA,IAAIG,EAAeC,IACnB,IAASC,EAAI,EAAGA,EAAI1B,EAAS2B,OAAQD,IAAK,CAGzC,IAFA,IAAKL,EAAUC,EAAIC,GAAYvB,EAAS0B,GACpCE,GAAY,EACPC,EAAI,EAAGA,EAAIR,EAASM,OAAQE,MACpB,EAAXN,GAAsBC,GAAgBD,IAAaO,OAAOC,KAAK5B,EAAoBa,GAAGgB,OAAOC,GAAS9B,EAAoBa,EAAEiB,GAAKZ,EAASQ,MAC9IR,EAASa,OAAOL,IAAK,IAErBD,GAAY,EACTL,EAAWC,IAAcA,EAAeD,IAG7C,GAAGK,EAAW,CACb5B,EAASkC,OAAOR,IAAK,GACrB,IAAIS,EAAIb,SACEhB,IAAN6B,IAAiBf,EAASe,EAC/B,CACD,CACA,OAAOf,CAnBP,CAJCG,EAAWA,GAAY,EACvB,IAAI,IAAIG,EAAI1B,EAAS2B,OAAQD,EAAI,GAAK1B,EAAS0B,EAAI,GAAG,GAAKH,EAAUG,IAAK1B,EAAS0B,GAAK1B,EAAS0B,EAAI,GACrG1B,EAAS0B,GAAK,CAACL,EAAUC,EAAIC,EAqBjB,EKzBdpB,EAAoBiC,EAAK5B,IACxB,IAAI6B,EAAS7B,GAAUA,EAAO8B,WAC7B,IAAO9B,EAAiB,QACxB,IAAM,EAEP,OADAL,EAAoBoC,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLdlC,EAAoBoC,EAAI,CAAChC,EAASkC,KACjC,IAAI,IAAIR,KAAOQ,EACXtC,EAAoBuC,EAAED,EAAYR,KAAS9B,EAAoBuC,EAAEnC,EAAS0B,IAC5EH,OAAOa,eAAepC,EAAS0B,EAAK,CAAEW,YAAY,EAAMC,IAAKJ,EAAWR,IAE1E,ECND9B,EAAoB2C,EAAI,CAAC,EAGzB3C,EAAoB4C,EAAKC,GACjBC,QAAQC,IAAIpB,OAAOC,KAAK5B,EAAoB2C,GAAGK,QAAO,CAACC,EAAUnB,KACvE9B,EAAoB2C,EAAEb,GAAKe,EAASI,GAC7BA,IACL,KCNJjD,EAAoBkD,EAAKL,GAEZA,EAAU,MCHvB7C,EAAoBmD,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOC,MAAQ,IAAIC,SAAS,cAAb,EAChB,CAAE,MAAOV,GACR,GAAsB,iBAAXW,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBvD,EAAoBwD,IAAOnD,KAC1BA,EAASsB,OAAO8B,OAAOpD,IACXqD,WAAUrD,EAAOqD,SAAW,IACxC/B,OAAOa,eAAenC,EAAQ,UAAW,CACxCoC,YAAY,EACZkB,IAAK,KACJ,MAAM,IAAI5C,MAAM,0FAA4FV,EAAOC,GAAG,IAGjHD,GCTRL,EAAoBuC,EAAI,CAACqB,EAAKC,IAAUlC,OAAOmC,UAAUC,eAAetD,KAAKmD,EAAKC,GCClF7D,EAAoBgC,EAAK5B,IACH,oBAAX4D,QAA0BA,OAAOC,aAC1CtC,OAAOa,eAAepC,EAAS4D,OAAOC,YAAa,CAAEC,MAAO,WAE7DvC,OAAOa,eAAepC,EAAS,aAAc,CAAE8D,OAAO,GAAO,ECL9DlE,EAAoBmE,IAAO9D,IAC1BA,EAAO+D,MAAQ,GACV/D,EAAOqD,WAAUrD,EAAOqD,SAAW,IACjCrD,G,MCHR,IAAIgE,EACArE,EAAoBmD,EAAEmB,gBAAeD,EAAYrE,EAAoBmD,EAAEoB,SAAW,IACtF,IAAIC,EAAWxE,EAAoBmD,EAAEqB,SACrC,IAAKH,GAAaG,IACbA,EAASC,gBACZJ,EAAYG,EAASC,cAAcC,MAC/BL,GAAW,CACf,IAAIM,EAAUH,EAASI,qBAAqB,UAC5C,GAAGD,EAAQnD,OAEV,IADA,IAAID,EAAIoD,EAAQnD,OAAS,EAClBD,GAAK,KAAO8C,IAAc,aAAaQ,KAAKR,KAAaA,EAAYM,EAAQpD,KAAKmD,GAE3F,CAID,IAAKL,EAAW,MAAM,IAAItD,MAAM,yDAChCsD,EAAYA,EAAUS,QAAQ,OAAQ,IAAIA,QAAQ,QAAS,IAAIA,QAAQ,YAAa,KACpF9E,EAAoB+E,EAAIV,C,WClBxBrE,EAAoBgF,EAAIC,KAAKV,SAAW,GAIxC,IAAIW,EAAkB,CACrB,IAAK,GAgBNlF,EAAoB2C,EAAEpB,EAAI,CAACsB,EAASI,KAE/BiC,EAAgBrC,IAElByB,cAActE,EAAoB+E,EAAI/E,EAAoBkD,EAAEL,GAE9D,EAGD,IAAIsC,EAAqBF,KAAsB,gBAAIA,KAAsB,iBAAK,GAC1EG,EAA6BD,EAAmBE,KAAKC,KAAKH,GAC9DA,EAAmBE,KAvBCE,IACnB,IAAKrE,EAAUsE,EAAaC,GAAWF,EACvC,IAAI,IAAItF,KAAYuF,EAChBxF,EAAoBuC,EAAEiD,EAAavF,KACrCD,EAAoBU,EAAET,GAAYuF,EAAYvF,IAIhD,IADGwF,GAASA,EAAQzF,GACdkB,EAASM,QACd0D,EAAgBhE,EAASwE,OAAS,EACnCN,EAA2BG,EAAK,C,KdnB7BzF,EAAOE,EAAoBW,EAC/BX,EAAoBW,EAAI,IAChBmC,QAAQC,IAAI,CAAC,IAAI,IAAI,KAAK4C,IAAI3F,EAAoB4C,EAAG5C,IAAsB4F,KAAK9F,GeDxF,IAAIc,EAAsBZ,EAAoBW,I","sources":["webpack://bio/webpack/runtime/chunk loaded","webpack://bio/webpack/runtime/startup chunk dependencies","webpack://bio/webpack/bootstrap","webpack://bio/webpack/runtime/amd define","webpack://bio/webpack/runtime/amd options","webpack://bio/webpack/runtime/compat get default export","webpack://bio/webpack/runtime/define property getters","webpack://bio/webpack/runtime/ensure chunk","webpack://bio/webpack/runtime/get javascript chunk filename","webpack://bio/webpack/runtime/global","webpack://bio/webpack/runtime/harmony module decorator","webpack://bio/webpack/runtime/hasOwnProperty shorthand","webpack://bio/webpack/runtime/make namespace object","webpack://bio/webpack/runtime/node module decorator","webpack://bio/webpack/runtime/publicPath","webpack://bio/webpack/runtime/importScripts chunk loading","webpack://bio/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var next = __webpack_require__.x;\n__webpack_require__.x = () => {\n\treturn Promise.all([242,731,284].map(__webpack_require__.e, __webpack_require__)).then(next);\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// the startup function\n__webpack_require__.x = () => {\n\t// Load entry module and return exports\n\t// This entry module depends on other loaded chunks and execution need to be delayed\n\tvar __webpack_exports__ = __webpack_require__.O(undefined, [242,731,284], () => (__webpack_require__(5284)))\n\t__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n\treturn __webpack_exports__;\n};\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks and sibling chunks for the entrypoint\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = (module) => {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: () => {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = self.location + \"\";\n\n// object to store loaded chunks\n// \"1\" means \"already loaded\"\nvar installedChunks = {\n\t234: 1\n};\n\n// importScripts chunk loading\nvar installChunk = (data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\twhile(chunkIds.length)\n\t\tinstalledChunks[chunkIds.pop()] = 1;\n\tparentChunkLoadingFunction(data);\n};\n__webpack_require__.f.i = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\timportScripts(__webpack_require__.p + __webpack_require__.u(chunkId));\n\t\t}\n\t}\n};\n\nvar chunkLoadingGlobal = self[\"webpackChunkbio\"] = self[\"webpackChunkbio\"] || [];\nvar parentChunkLoadingFunction = chunkLoadingGlobal.push.bind(chunkLoadingGlobal);\nchunkLoadingGlobal.push = installChunk;\n\n// no HMR\n\n// no HMR manifest","// run startup\nvar __webpack_exports__ = __webpack_require__.x();\n"],"names":["deferred","next","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","id","loaded","__webpack_modules__","call","m","x","__webpack_exports__","O","amdD","Error","amdO","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","g","globalThis","this","Function","window","hmd","create","children","set","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","value","nmd","paths","scriptUrl","importScripts","location","document","currentScript","src","scripts","getElementsByTagName","test","replace","p","b","self","installedChunks","chunkLoadingGlobal","parentChunkLoadingFunction","push","bind","data","moreModules","runtime","pop","map","then"],"sourceRoot":""}
package/dist/242.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunkbio=self.webpackChunkbio||[]).push([[242],{6295:(t,e,n)=>{n.d(e,{Hr:()=>y,Ii:()=>f,T6:()=>B,TK:()=>I,a4:()=>c,be:()=>g,gt:()=>m,ij:()=>C,lO:()=>u,lP:()=>d,rR:()=>_,tO:()=>o,v_:()=>a,yK:()=>A,zn:()=>l});var r=n(8774),i=n(8498),s=n(6863);function h(t,e){const n=t.trueCount()+e.trueCount();if(0==n)return 1;const r=t.andWithCountBits(e,!0);return r/(n-r)}function o(t,e){return 1-h(t,e)}function a(t,e){return M(h(new r.A(t,32*t.length),new r.A(e,32*e.length)))}function l(t,e){return 1-function(t,e){const n=t.trueCount()+e.trueCount();return 0==n?0:2*t.andWithCountBits(e,!0)/n}(t,e)}function u(t,e){return 1-function(t,e){const n=t.trueCount()*e.trueCount();return 0==n?0:t.andWithCountBits(e,!0)/Math.sqrt(n)}(t,e)}function c(t,e){return Math.sqrt(t.trueCount()+e.trueCount()-2*t.andWithCountBits(e,!0))}function g(t,e){return t.trueCount()+e.trueCount()-2*t.andWithCountBits(e,!0)}function f(t,e){return 1-function(t,e){const n=t.trueCount()+e.trueCount(),r=t.andWithCountBits(e,!0);return r/(2*n-3*r)}(t,e)}function _(t,e){return M(function(t,e){const n=t.trueCount()+e.trueCount(),r=t.trueCount()*e.trueCount();return 0==r?0:t.andWithCountBits(e,!0)*n/(2*r)}(t,e))}function d(t,e){return M(function(t,e){const n=t.trueCount()+e.trueCount(),r=t.trueCount()*e.trueCount();return 0==r?0:(t.andWithCountBits(e,!0)*n-r)/r}(t,e))}function m(t,e){return 1-function(t,e){const n=Math.min(t.trueCount(),e.trueCount());return 0==n?0:t.andWithCountBits(e,!0)/n}(t,e)}function C(t,e){return M(function(t,e){const n=Math.max(t.trueCount(),e.trueCount());return 0==n?0:t.andWithCountBits(e,!0)/n}(t,e))}function A(t,e){return M(function(t,e){return 0==t.length?0:t.andWithCountBits(e,!0)/t.length}(t,e))}function I(t,e){return M(function(t,e){const n=t.andWithCountBits(e,!0),r=t.countBits(!0)+e.countBits(!0),i=t.length,s=i-r+n;return n==i||s==i?1:n/r+s/(2*i-r)}(t,e))}function M(t){return 0===t?3402823e32:1/t-1}function B(t){if(t&&null!=t.range&&t.range>0){const e=t.range;return(t,n)=>Math.abs(t-n)/e}return(t,e)=>Math.abs(t-e)}function y(t){const e=function(t){const e=t?.mostCommon??new Set;return(t,n)=>{const r=t.length,i=n.length;let s=0,h=0,o=0;for(;h<r&&o<i;)t[h]===n[o]?(e?.has(t[h])||++s,++h,++o):t[h]<n[o]?++h:++o;return s}}(t);return(t,n)=>0===n.length||0===t.length?1e4:Math.min(t.length,n.length)/(e(t,n)+1e-4)}i.aT.Tanimoto,i.aT.Dice,i.aT.Asymmetric,i.aT.BraunBlanquet,i.aT.Cosine,i.aT.Kulczynski,i.aT.McConnaughey,i.aT.RogotGoldberg,i.aT.Russel,i.aT.Sokal,i.aT.Hamming,i.aT.Euclidean,i.aT.Tanimoto,i.aT.Dice,i.aT.Asymmetric,i.aT.BraunBlanquet,i.aT.Cosine,i.aT.Kulczynski,i.aT.McConnaughey,i.aT.RogotGoldberg,i.aT.Russel,i.aT.Sokal,i.aT.Hamming,i.aT.Euclidean,i.aT.Tanimoto,i.aT.Dice,i.aT.Cosine,i.aT.Tanimoto,i.aT.Asymmetric,i.aT.Cosine,i.aT.Sokal,s.Z.HAMMING,s.Z.LEVENSHTEIN,s.Z.MONOMER_CHEMICAL_DISTANCE,s.Z.NEEDLEMANN_WUNSCH},6863:(t,e,n)=>{function r(t={}){const e=function(){if(!t||!t.scoringMatrix||!t.alphabetIndexes)return(t,e)=>t===e?0:1;if(t.scoringMatrix.length!==Object.keys(t.alphabetIndexes).length)throw new Error("Scoring matrix and alphabet indexes should have the same length");const e=t.alphabetIndexes,n=t.scoringMatrix,r=Math.min(...Object.keys(e).map((t=>t.charCodeAt(0))))+1,i=new Float32Array((n.length+r)*(n.length+r));return Object.entries(e).forEach((([t,r])=>{const s=n[r];Object.entries(e).forEach((([e,r])=>{i[t.charCodeAt(0)*n.length+e.charCodeAt(0)]=s[r]}))})),(t,e)=>1-i[t.charCodeAt(0)*n.length+e.charCodeAt(0)]}(),n=t?.threshold??0;return(t,r)=>{let i=0;const s=t.length,h=r.length,o=Math.ceil(Math.max(s,h)*(1-n));s!==h&&(i=Math.abs(s-h));let a=0;for(let n=0;n<Math.min(s,h);n++)if(t[n]!==r[n]&&(a+=e(t[n],r[n]),a>o))return 1;return a+=i,a/=Math.max(s,h),a}}n.d(e,{Z:()=>h,V:()=>o});var i=n(2787);const s={gapOpen:1,gapExtend:.6,scoringMatrix:[[4,-1,-2,-2,0,-1,-1,0,-2,-1,-1,-1,-1,-2,-1,1,0,-3,-2,0,-2,-1,0,-4],[-1,5,0,-2,-3,1,0,-2,0,-3,-2,2,-1,-3,-2,-1,-1,-3,-2,-3,-1,0,-1,-4],[-2,0,6,1,-3,0,0,0,1,-3,-3,0,-2,-3,-2,1,0,-4,-2,-3,3,0,-1,-4],[-2,-2,1,6,-3,0,2,-1,-1,-3,-4,-1,-3,-3,-1,0,-1,-4,-3,-3,4,1,-1,-4],[0,-3,-3,-3,9,-3,-4,-3,-3,-1,-1,-3,-1,-2,-3,-1,-1,-2,-2,-1,-3,-3,-2,-4],[-1,1,0,0,-3,5,2,-2,0,-3,-2,1,0,-3,-1,0,-1,-2,-1,-2,0,3,-1,-4],[-1,0,0,2,-4,2,5,-2,0,-3,-3,1,-2,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-2,0,-1,-3,-2,-2,6,-2,-4,-4,-2,-3,-3,-2,0,-2,-2,-3,-3,-1,-2,-1,-4],[-2,0,1,-1,-3,0,0,-2,8,-3,-3,-1,-2,-1,-2,-1,-2,-2,2,-3,0,0,-1,-4],[-1,-3,-3,-3,-1,-3,-3,-4,-3,4,2,-3,1,0,-3,-2,-1,-3,-1,3,-3,-3,-1,-4],[-1,-2,-3,-4,-1,-2,-3,-4,-3,2,4,-2,2,0,-3,-2,-1,-2,-1,1,-4,-3,-1,-4],[-1,2,0,-1,-3,1,1,-2,-1,-3,-2,5,-1,-3,-1,0,-1,-3,-2,-2,0,1,-1,-4],[-1,-1,-2,-3,-1,0,-2,-3,-2,1,2,-1,5,0,-2,-1,-1,-1,-1,1,-3,-1,-1,-4],[-2,-3,-3,-3,-2,-3,-3,-3,-1,0,0,-3,0,6,-4,-2,-2,1,3,-1,-3,-3,-1,-4],[-1,-2,-2,-1,-3,-1,-1,-2,-2,-3,-3,-1,-2,-4,7,-1,-1,-4,-3,-2,-2,-1,-2,-4],[1,-1,1,0,-1,0,0,0,-1,-2,-2,0,-1,-2,-1,4,1,-3,-2,-2,0,0,0,-4],[0,-1,0,-1,-1,-1,-1,-2,-2,-1,-1,-1,-1,-2,-1,1,5,-2,-2,0,-1,-1,0,-4],[-3,-3,-4,-4,-2,-2,-3,-2,-2,-3,-2,-3,-1,1,-4,-3,-2,11,2,-3,-4,-3,-2,-4],[-2,-2,-2,-3,-2,-1,-2,-3,2,-1,-1,-2,-1,3,-3,-2,-2,2,7,-1,-3,-2,-1,-4],[0,-3,-3,-3,-1,-2,-2,-3,-3,3,1,-2,1,-1,-2,-2,0,-3,-1,4,-3,-2,-1,-4],[-2,-1,3,4,-3,0,1,-1,0,-3,-4,0,-3,-3,-2,0,-1,-4,-3,-3,4,1,-1,-4],[-1,0,0,1,-3,3,4,-2,0,-3,-3,1,-1,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,0,0,-2,-1,-1,-1,-1,-1,-4],[-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,1]],alphabetIndexes:{A:0,R:1,N:2,D:3,C:4,Q:5,E:6,G:7,H:8,I:9,L:10,K:11,M:12,F:13,P:14,S:15,T:16,W:17,Y:18,V:19,B:20,Z:21,X:22,"*":23}};var h;!function(t){t.HAMMING="Hamming",t.LEVENSHTEIN="Levenshtein",t.NEEDLEMANN_WUNSCH="Needlemann-Wunsch",t.MONOMER_CHEMICAL_DISTANCE="Monomer chemical distance"}(h||(h={}));const o={[h.HAMMING]:r,[h.LEVENSHTEIN]:function(){return(t,e)=>(0,i.I)(t,e)/Math.max(t.length,e.length)},[h.NEEDLEMANN_WUNSCH]:function(t){const e=new Uint16Array(65536),{gapOpen:n,gapExtend:r,scoringMatrix:i,alphabetIndexes:h}={...s,...t};Object.entries(h).forEach((([t,n])=>e[t.charCodeAt(0)]=n));const o=[new Float32Array(1e4),new Float32Array(1e4)];return(t,s)=>{const h=new Array(t.length+1).fill(!1),a=new Array(t.length+1).fill(!1);let l=0,u=1;for(let e=1;e<t.length+1;e++)o[0][e]=-n-(e-1)*r,o[1][e]=0;o[0][0]=0;for(let c=1;c<s.length+1;c++){o[u][0]=-n-(c-1)*r;for(let g=1;g<t.length+1;g++){const f=o[l][g-1]+i[e[t.charCodeAt(g-1)]][e[s.charCodeAt(c-1)]],_=o[l][g]-(h[g]?r:n),d=o[u][g-1]-(a[g-1]?r:n);o[u][g]=Math.max(f,d,_),o[u][g]===f?(h[g]=!1,a[g]=!1):o[u][g]===d?(h[g]=!1,a[g]=!0):(h[g]=!0,a[g]=!1)}l=u,u=(u+1)%2}const c=Math.max(t.length,s.length);return(c-o[l][t.length])/c}},[h.MONOMER_CHEMICAL_DISTANCE]:r}},8498:(t,e,n)=>{var r,i,s,h,o,a,l;n.d(e,{EG:()=>o,Pn:()=>i,RR:()=>a,Wn:()=>l,aT:()=>s,m6:()=>h,xL:()=>r}),function(t){t.Levenshtein="Levenshtein",t.JaroWinkler="Jaro-Winkler",t.Manhattan="Manhattan",t.Onehot="One-Hot"}(r||(r={})),function(t){t.Euclidean="Euclidean"}(i||(i={})),function(t){t.Tanimoto="Tanimoto",t.Dice="Dice",t.Asymmetric="Asymmetric",t.BraunBlanquet="Braun-Blanquet",t.Cosine="Cosine",t.Kulczynski="Kulczynski",t.McConnaughey="Mc-Connaughey",t.RogotGoldberg="Rogot-Goldberg",t.Russel="Russel",t.Sokal="Sokal",t.Hamming="Hamming",t.Euclidean="Euclidean"}(s||(s={})),function(t){t.TanimotoIntArray="TanimotoIntArray"}(h||(h={})),function(t){t.Vector="Vector",t.String="String",t.BitArray="BitArray",t.MacroMolecule="MacroMolecule",t.Number="Number",t.IntArray="IntArray",t.NumberArray="NumberArray"}(o||(o={})),function(t){t.Difference="Difference"}(a||(a={})),function(t){t.CommonItems="Common Items"}(l||(l={}))},8774:(t,e,n)=>{n.d(e,{A:()=>r});class r{constructor(t,e=!1){if(this._length=0,this._version=0,this._updateLevel=0,this._selectedCount=0,this._selectedCountVersion=-1,this._selectedIndexesVersion=-1,this._versionedName="",this._versionedNameVersion=-1,this.SHRINK_THRESHOLD=256,"number"==typeof t){const n=t,i=r._createBuffer(n);if(e)for(let t=0;t<i.length;t++)i[t]=-1;this._data=i,this._length=n}else{if(!(t instanceof Uint32Array))throw new Error("Invalid constructor");this._data=t,this._length=e}}getRawData(){return this._data}assureGoez(t,e){if(t<0)throw new Error(`${e} should be greater than zero`)}assureInRange(t,e,n,r){if(t<e||t>n)throw new Error(`Argument ${r} (${t}) out of range (${e}, ${n})`)}copy(t,e,n){for(let r=0;r<n;r++)e[r]=t[r]}copyFrom(t){if(this._length!=t._length)throw new Error(`Lengths differ (${this._length} != ${t._length})`);this.copy(t._data,this._data,this.lengthInInts),this._version++}get length(){return this._length}get buffer(){return this._data}set buffer(t){this._data=t,this._version++}get version(){return this._version}set version(t){this._version=t}incrementVersion(t=!0){this._version++}get lengthInInts(){return Math.floor((this._length+31)/32)}get versionedName(){return this._version==this._versionedNameVersion?this._versionedName:""}set versionedName(t){this._versionedName=t,this._versionedNameVersion=this._version}get self(){return this}setLength(t){if(t<0)throw new Error("should be >= 0");if(t==this._length)return;const e=Math.floor((t+31)/32);if(e>this._data.length||e+this.SHRINK_THRESHOLD<this._data.length){const t=new Uint32Array(e);this.copy(this._data,t,e>this._data.length?this._data.length:e),this._data=t}t>this._length&&(this._length%32>0&&(this._data[this.lengthInInts-1]&=(1<<(this._length%32&31))-1),this._data.fill(0,this.lengthInInts,e)),this._length=t,this._version++}static fromAnd(t,e){if(t._length!=e._length)throw new Error(`Lengths differ (${t._length} != ${e._length})`);const n=new r(t._length);n._length=t._length,n._data=r._createBuffer(n._length),n._version=0;const i=t.lengthInInts;for(let r=0;r<i;r++)n._data[r]=t._data[r]&e._data[r];return n}static _createBuffer(t){return new Uint32Array(Math.floor((t+31)/32))}static fromValues(t){const e=new r(t.length);e._version=0;for(let n=0;n<e._length;n++)t[n]&&(e._data[Math.floor(n/32)]|=1<<(n%32&31));return e}static fromSeq(t,e){const n=new r(t);for(let r=0;r<t;++r)n.setBit(r,e(r));return n._version=0,n}static fromString(t){return r.fromSeq(t.length,(e=>"1"==t.charAt(e)))}static fromUint32Array(t,e){const n=new r(t);return n._data=e,n}static fromBytes(t){const e=t.length,n=new r(8*e);n._data=new Uint32Array(Math.floor((e+3)/4)),n._length=8*e;let i=0,s=0;for(;e-s>=4;)n._data[i++]=255&t[s]|(255&t[s+1])<<8|(255&t[s+2])<<16|(255&t[s+3])<<24,s+=4;return e-s==3&&(n._data[i]=(255&t[s+2])<<16),e-s==2&&(n._data[i]|=(255&t[s+1])<<8),e-s==1&&(n._data[i]|=255&t[s]),n._version=0,n}toString(){return`${this._length} bits, ${this.countBits(!0)} set`}equals(t){if(this==t)return!0;if(null==t)return!1;if(this._length!=t._length)return!1;if(0==this._length)return!0;for(let e=0;e<this._data.length-1;e++)if(this._data[e]!=t._data[e])return!1;for(let e=8*(this._data.length-1);e<this._length;e++)if(this.getBit(e)!=t.getBit(e))return!1;return!0}clone(){const t=new r(0,!1);return t._data=Uint32Array.from(this._data),t._length=this._length,t._version=this._version,t}init(t,e){this.setAll(!1,!1);for(let e=0;e<this._length;e++)t(e)&&(this._data[Math.floor(e/32)]|=1<<(e%32&31));return this.incrementVersion(e),this}invert(t=!0){for(let t=0;t<this._data.length;t++)this._data[t]^=-1;this.incrementVersion(t)}setAll(t,e=!1){const n=t?-1:0,r=this.lengthInInts;for(let t=0;t<r;t++)this._data[t]=n;this.incrementVersion(e)}setIndexes(t,e=!0,n=!0,r=!0){n&&this.setAll(!e,!1);for(const n of t)this.setFast(n,e);this.incrementVersion(r)}everyIndex(t,e=!0){for(const n of t)if(this.getBit(n)!=e)return!1;return!0}anyIndex(t,e=!0){for(const n of t)if(this.getBit(n)==e)return!0;return!1}setWhere(t,e=!0,n=!0,r=!0,i=!0){if(n&&i&&this.setAll(!e,!1),i)for(let n=0;n<this._length;n++)t(n)&&this.setFast(n,e);else for(let n=0;n<this._length;n++)this.setFast(n,t(n)?e:!e);this.incrementVersion(r)}getRange(t,e){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(e,0,this._length,"to");const n=[];for(let r=t;r<e;++r)n.push(this.getBit(r));return r.fromValues(n)}getRangeAsList(t,e){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(e,0,this._length,"to");const n=[];for(let r=t;r<e;++r)n.push(this.getBit(r));return n}setRange(t,e,n,r=!0){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(e,0,this._length-1,"to");const i=Math.min(t,e),s=Math.max(t,e);if(n)for(let t=i;t<=s;t++)this.setTrue(t);else for(let t=i;t<=s;t++)this.setFalse(t);return this.incrementVersion(r),this}setRandom(t,e,n=!0){if(t<0||t>this._length)throw new Error("n must be >= 0 && <= Count");t>this._length/2&&this.setRandom(this._length-t,!e),this.setAll(!e);for(let n=0;n<t;){const t=Math.floor(Math.random()*this._length);this.getBit(t)!=e&&(this.setFast(t,e),n++)}this.incrementVersion(n)}and(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]&=t._data[e];return this.incrementVersion(e),this}andNot(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");const n=this.lengthInInts;for(let e=0;e<n;e++)this._data[e]&=~t._data[e];return this.incrementVersion(e),this}notAnd(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]=~this._data[e]&t._data[e];return this.incrementVersion(e),this}not(t=!0){for(let t=0,e=this.lengthInInts;t<e;t++)this._data[t]=~this._data[t];return this.incrementVersion(t),this}or(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]|=t._data[e];return this.incrementVersion(e),this}xor(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]^=t._data[e];return this.incrementVersion(e),this}insertAt(t,e,n=!1){if(this.assureInRange(t,0,this._length,"pos"),0==e)return;const r=this._length;this.setLength(this._length+e);for(let n=r-1;n>=t;n--)this.setBit(n+e,this.getBit(n));for(let r=t;r<t+e;r++)this.setBit(r,n)}removeAt(t,e=1){if(e<0)throw new Error("n cannot be negative");if(this.assureInRange(t,0,this._length-e,"pos"),this.contains(!0))for(let n=t;n<this._length-e;n++)this.setBit(n,this.getBit(n+e));this.setLength(this._length-e)}removeByMask(t,e=!0){if(this._length!=t.length)throw new Error("length != mask.length");if(t==this)this.setLength(t.countBits(!e)),this.setAll(!e);else{let n=0;for(let r=-1;-1!=(r=t.findNext(r,!e));)this.setFast(n++,this.getBit(r));this._length=n,this._version++}return this}getBit(t){return!!(this._data[Math.floor(t/32)]&1<<(31&t))}setBit(t,e,n=!0){this.setFast(t,e),this._version++}setFast(t,e){e?this._data[Math.floor(t/32)]|=1<<(31&t):this._data[Math.floor(t/32)]&=~(1<<(31&t))}setTrue(t){this._data[Math.floor(t/32)]|=1<<(31&t)}setFalse(t){this._data[Math.floor(t/32)]&=~(1<<(31&t))}trueCount(){return this.countBits(!0)}falseCount(){return this.countBits(!1)}countBits(t){if(0==this._length)return 0;if(this._selectedCountVersion!=this._version){this._selectedCount=0;const t=this.lengthInInts;let e=0;for(;e<t-1;e++)for(let t=this._data[e];0!=t;t>>>=8)this._selectedCount+=r._onBitCount[255&t];let n=this._data[e];const i=31&this._length;for(0!=i&&(n&=~(4294967295<<i));0!=n;n>>>=8)this._selectedCount+=r._onBitCount[255&n];this._selectedCountVersion=this._version}return t?this._selectedCount:this._length-this._selectedCount}countWhere(t){let e=0;if(this.trueCount()==this._length)for(let n=0;n<this._length;n++)e+=t(n)?1:0;else for(let n=-1;-1!=(n=this.findNext(n,!0));)e+=t(n)?1:0;return e}andWithCountBits(t,e){if(0==this._length)return 0;let n=0;const i=this.lengthInInts;let s=0;for(;s<i-1;s++)for(let e=this._data[s]&t._data[s];0!=e;e>>>=8)n+=r._onBitCount[255&e];let h=this._data[s]&t._data[s];const o=31&this._length;for(0!=o&&(h&=~(4294967295<<o));0!=h;h>>>=8)n+=r._onBitCount[255&h];return e?n:this._length-n}clear(){this.setLength(0)}contains(t){return this.findNext(-1,t)>=0}get allTrue(){return this.countBits(!0)==this._length}get allFalse(){return this.countBits(!1)==this._length}get anyTrue(){return this.countBits(!0)>0}get anyFalse(){return this.countBits(!1)>0}findNext(t,e=!0){if(this.assureInRange(t,-1,this._length,"index"),t>=this._length-1)return-1;let n=31&(t=t<0?0:t+1);const i=this.lengthInInts;for(let s=Math.floor(t/32);s<i;s++){let i=e?this._data[s]:~this._data[s];if(0!=n)i&=4294967295<<n&4294967295,n=0;else if(!e&&-4294967296==i)continue;for(let e=0;0!=i;e+=8,i>>>=8){const n=r._firstOnBit[255&i];if(n>=0)return(t=n+32*s+e)>=this._length?-1:t}}return-1}findPrev(t,e=!0){if(0==t)return-1;this.assureInRange(t,-1,this._length,"index");let n=1+(t=t<0?this._length-1:t-1)&31;for(let i=Math.floor(t/32);i>=0;i--){let t=e?this._data[i]:~this._data[i];0!=n&&(t&=~(4294967295<<n),n=0);for(let e=24;0!=t;e-=8,t<<=8){const n=r._lastOnBit[t>>>24];if(n>=0)return n+32*i+e}}return-1}}r._onBitCount=Int8Array.from([0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8]),r._firstOnBit=Int8Array.from([-1,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0]),r._lastOnBit=Int8Array.from([-1,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7])},2787:(t,e,n)=>{n.d(e,{I:()=>i});const r=new Uint32Array(65536),i=(t,e)=>{if(t.length<e.length){const n=e;e=t,t=n}return 0===e.length?t.length:t.length<=32?((t,e)=>{const n=t.length,i=e.length,s=1<<n-1;let h=-1,o=0,a=n,l=n;for(;l--;)r[t.charCodeAt(l)]|=1<<l;for(l=0;l<i;l++){let t=r[e.charCodeAt(l)];const n=t|o;t|=(t&h)+h^h,o|=~(t|h),h&=t,o&s&&a++,h&s&&a--,o=o<<1|1,h=h<<1|~(n|o),o&=n}for(l=n;l--;)r[t.charCodeAt(l)]=0;return a})(t,e):((t,e)=>{const n=e.length,i=t.length,s=[],h=[],o=Math.ceil(n/32),a=Math.ceil(i/32);for(let t=0;t<o;t++)h[t]=-1,s[t]=0;let l=0;for(;l<a-1;l++){let o=0,a=-1;const u=32*l,c=Math.min(32,i)+u;for(let e=u;e<c;e++)r[t.charCodeAt(e)]|=1<<e;for(let t=0;t<n;t++){const n=r[e.charCodeAt(t)],i=h[t/32|0]>>>t&1,l=s[t/32|0]>>>t&1,u=n|o,c=((n|l)&a)+a^a|n|l;let g=o|~(c|a),f=a&c;g>>>31^i&&(h[t/32|0]^=1<<t),f>>>31^l&&(s[t/32|0]^=1<<t),g=g<<1|i,f=f<<1|l,a=f|~(u|g),o=g&u}for(let e=u;e<c;e++)r[t.charCodeAt(e)]=0}let u=0,c=-1;const g=32*l,f=Math.min(32,i-g)+g;for(let e=g;e<f;e++)r[t.charCodeAt(e)]|=1<<e;let _=i;for(let t=0;t<n;t++){const n=r[e.charCodeAt(t)],o=h[t/32|0]>>>t&1,a=s[t/32|0]>>>t&1,l=n|u,g=((n|a)&c)+c^c|n|a;let f=u|~(g|c),d=c&g;_+=f>>>i-1&1,_-=d>>>i-1&1,f>>>31^o&&(h[t/32|0]^=1<<t),d>>>31^a&&(s[t/32|0]^=1<<t),f=f<<1|o,d=d<<1|a,c=d|~(l|f),u=f&l}for(let e=g;e<f;e++)r[t.charCodeAt(e)]=0;return _})(t,e)}},944:(t,e)=>{e.Vb=void 0,e.Vb=function(t,e,n){var r=function(t,e,n){if(0===t.length||0===e.length)return 0;if(n&&!n.caseSensitive&&(t=t.toUpperCase(),e=e.toUpperCase()),t===e)return 1;for(var r=0,i=t.length,s=e.length,h=Math.floor(Math.max(i,s)/2)-1,o=new Array(i),a=new Array(s),l=0;l<i;l++)for(var u=Math.max(0,l-h);u<=Math.min(s,l+h+1);u++)if(!o[l]&&!a[u]&&t[l]===e[u]){++r,o[l]=a[u]=!0;break}if(0===r)return 0;var c=0,g=0;for(l=0;l<i;l++)if(o[l]){for(;!a[g];)g++;t.charAt(l)!==e.charAt(g++)&&c++}return(r/i+r/s+(r-(c/=2))/r)/3}(t,e,n),i=0;if(r>.7){for(var s=Math.min(t.length,e.length),h=0;t[h]===e[h]&&h<4&&h<s;)++i,h++;r+=.1*i*(1-r)}return r}}}]);
2
+ //# sourceMappingURL=242.js.map