@anuma/sdk 9.1.11 → 10.0.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.
@@ -382,15 +382,15 @@ var init_redactor = __esm({
382
382
  * (sequential, per-pattern) and the async {@link collectRegexSpans} (span)
383
383
  * paths so the detection rules live in exactly one place.
384
384
  */
385
- findMatches(text14, pattern) {
385
+ findMatches(text15, pattern) {
386
386
  const regex = new RegExp(pattern.regex.source, pattern.regex.flags);
387
387
  const found = [];
388
388
  let m;
389
- while ((m = regex.exec(text14)) !== null) {
389
+ while ((m = regex.exec(text15)) !== null) {
390
390
  const value = m[0];
391
391
  if (pattern.validate && !pattern.validate(value)) continue;
392
392
  if (pattern.context) {
393
- const before = text14.slice(Math.max(0, m.index - 40), m.index);
393
+ const before = text15.slice(Math.max(0, m.index - 40), m.index);
394
394
  if (!pattern.context.test(before)) continue;
395
395
  }
396
396
  found.push({ match: value, index: m.index });
@@ -406,9 +406,9 @@ var init_redactor = __esm({
406
406
  * earlier patterns, so an earlier (more specific) pattern claims a region
407
407
  * before a later one can — placeholders are inert and match no pattern.
408
408
  */
409
- scan(text14, makeReplacement) {
409
+ scan(text15, makeReplacement) {
410
410
  const matches = [];
411
- let redacted = text14;
411
+ let redacted = text15;
412
412
  for (const pattern of this.patterns) {
413
413
  const found = this.findMatches(redacted, pattern);
414
414
  if (found.length === 0) continue;
@@ -429,8 +429,8 @@ var init_redactor = __esm({
429
429
  * Scan and redact PII from a single text string, using numbered, reversible
430
430
  * placeholders ([EMAIL_1], …) tracked on this instance.
431
431
  */
432
- redactText(text14) {
433
- return this.scan(text14, (category, value) => this.getPlaceholder(category, value));
432
+ redactText(text15) {
433
+ return this.scan(text15, (category, value) => this.getPlaceholder(category, value));
434
434
  }
435
435
  /**
436
436
  * Mask PII with unnumbered, NON-reversible tokens ([EMAIL], [SSN], …) without
@@ -439,15 +439,15 @@ var init_redactor = __esm({
439
439
  * embeddings endpoint while staying deterministic, so the same content always
440
440
  * masks identically and search stays consistent across conversations.
441
441
  */
442
- maskText(text14) {
443
- return this.scan(text14, (category) => `[${category}]`).text;
442
+ maskText(text15) {
443
+ return this.scan(text15, (category) => `[${category}]`).text;
444
444
  }
445
445
  /** All regex matches as spans on the ORIGINAL text (priority 0). Uses the
446
446
  * same {@link findMatches} guards as the sync scan. */
447
- collectRegexSpans(text14) {
447
+ collectRegexSpans(text15) {
448
448
  const spans = [];
449
449
  this.patterns.forEach((pattern, patternIndex) => {
450
- for (const { match, index } of this.findMatches(text14, pattern)) {
450
+ for (const { match, index } of this.findMatches(text15, pattern)) {
451
451
  spans.push({
452
452
  start: index,
453
453
  end: index + match.length,
@@ -466,16 +466,16 @@ var init_redactor = __esm({
466
466
  * of "Stripe") from producing a corrupting partial placeholder like
467
467
  * `[ORG_1]e`.
468
468
  */
469
- normalizeNerSpans(text14, raw) {
469
+ normalizeNerSpans(text15, raw) {
470
470
  if (!Array.isArray(raw)) return [];
471
471
  const out = [];
472
472
  raw.forEach((s, i) => {
473
473
  if (!Number.isFinite(s.start) || !Number.isFinite(s.end)) return;
474
- let start = Math.max(0, Math.min(Math.trunc(s.start), text14.length));
475
- let end = Math.max(0, Math.min(Math.trunc(s.end), text14.length));
474
+ let start = Math.max(0, Math.min(Math.trunc(s.start), text15.length));
475
+ let end = Math.max(0, Math.min(Math.trunc(s.end), text15.length));
476
476
  if (end <= start) return;
477
- while (start > 0 && isWordChar(text14[start - 1])) start--;
478
- while (end < text14.length && isWordChar(text14[end])) end++;
477
+ while (start > 0 && isWordChar(text15[start - 1])) start--;
478
+ while (end < text15.length && isWordChar(text15[end])) end++;
479
479
  const category = String(s.category ?? "").trim();
480
480
  if (!category) return;
481
481
  out.push({ start, end, category, priority: 1, order: i });
@@ -484,10 +484,10 @@ var init_redactor = __esm({
484
484
  }
485
485
  /** Run the configured detector defensively: failures degrade to regex-only
486
486
  * (fail-open on detection, not on protection) with a one-time warning. */
487
- async detectNerSpans(text14) {
487
+ async detectNerSpans(text15) {
488
488
  if (!this.nerDetector) return [];
489
489
  try {
490
- return this.normalizeNerSpans(text14, await this.nerDetector.detect(text14));
490
+ return this.normalizeNerSpans(text15, await this.nerDetector.detect(text15));
491
491
  } catch (err) {
492
492
  this.warnNerFailure(err);
493
493
  return [];
@@ -520,11 +520,11 @@ var init_redactor = __esm({
520
520
  * in pattern then document order, matching the sync scan's numbering). The
521
521
  * string is then EMITTED in document order.
522
522
  */
523
- rebuildSpans(text14, spans, makeReplacement) {
523
+ rebuildSpans(text15, spans, makeReplacement) {
524
524
  const placeholderByStart = /* @__PURE__ */ new Map();
525
525
  const matches = [];
526
526
  for (const s of spans) {
527
- const value = text14.slice(s.start, s.end);
527
+ const value = text15.slice(s.start, s.end);
528
528
  const placeholder = makeReplacement(s.category, value);
529
529
  placeholderByStart.set(s.start, placeholder);
530
530
  matches.push({ category: s.category, original: value, placeholder });
@@ -533,16 +533,16 @@ var init_redactor = __esm({
533
533
  let result = "";
534
534
  let cursor = 0;
535
535
  for (const s of emitOrder) {
536
- result += text14.slice(cursor, s.start) + (placeholderByStart.get(s.start) ?? "");
536
+ result += text15.slice(cursor, s.start) + (placeholderByStart.get(s.start) ?? "");
537
537
  cursor = s.end;
538
538
  }
539
- result += text14.slice(cursor);
539
+ result += text15.slice(cursor);
540
540
  return { text: result, matches };
541
541
  }
542
542
  /** Merge regex + NER spans for `text` into a resolved, non-overlapping set. */
543
- async detectAllSpans(text14) {
544
- const nerPromise = this.detectNerSpans(text14);
545
- const regexSpans = this.collectRegexSpans(text14);
543
+ async detectAllSpans(text15) {
544
+ const nerPromise = this.detectNerSpans(text15);
545
+ const regexSpans = this.collectRegexSpans(text15);
546
546
  const ner = await nerPromise;
547
547
  return this.resolveOverlaps([...regexSpans, ...ner]);
548
548
  }
@@ -551,11 +551,11 @@ var init_redactor = __esm({
551
551
  * unstructured PII (the configured {@link NerDetector}) with numbered,
552
552
  * reversible placeholders. With no detector, identical to `redactText`.
553
553
  */
554
- async redactTextAsync(text14) {
555
- if (!this.nerDetector) return this.redactText(text14);
556
- const spans = await this.detectAllSpans(text14);
554
+ async redactTextAsync(text15) {
555
+ if (!this.nerDetector) return this.redactText(text15);
556
+ const spans = await this.detectAllSpans(text15);
557
557
  return this.rebuildSpans(
558
- text14,
558
+ text15,
559
559
  spans,
560
560
  (category, value) => this.getPlaceholder(category, value)
561
561
  );
@@ -564,10 +564,10 @@ var init_redactor = __esm({
564
564
  * Async counterpart to {@link maskText}: stateless `[CATEGORY]` masking over
565
565
  * regex + NER matches. With no detector, identical to `maskText`.
566
566
  */
567
- async maskTextAsync(text14) {
568
- if (!this.nerDetector) return this.maskText(text14);
569
- const spans = await this.detectAllSpans(text14);
570
- return this.rebuildSpans(text14, spans, (category) => `[${category}]`).text;
567
+ async maskTextAsync(text15) {
568
+ if (!this.nerDetector) return this.maskText(text15);
569
+ const spans = await this.detectAllSpans(text15);
570
+ return this.rebuildSpans(text15, spans, (category) => `[${category}]`).text;
571
571
  }
572
572
  /**
573
573
  * Async counterpart to {@link redactMessages}. Text parts are redacted
@@ -653,9 +653,9 @@ var init_redactor = __esm({
653
653
  * {@link restoreForStorage} instead, which tolerates the mangled echoes the
654
654
  * extraction models produce.
655
655
  */
656
- deAnonymize(text14) {
657
- if (!text14.includes("[")) return text14;
658
- let restored = text14;
656
+ deAnonymize(text15) {
657
+ if (!text15.includes("[")) return text15;
658
+ let restored = text15;
659
659
  for (const [placeholder, original] of this.placeholderToValue) {
660
660
  if (restored.includes(placeholder)) {
661
661
  restored = restored.split(placeholder).join(original);
@@ -680,15 +680,15 @@ var init_redactor = __esm({
680
680
  * - `unresolved` is derived from the lookup miss during this pass, not from a
681
681
  * regex re-scan of the output — so it can't trip over a restored value.
682
682
  */
683
- restoreForStorage(text14) {
683
+ restoreForStorage(text15) {
684
684
  if (this.storagePattern === void 0) this.storagePattern = this.buildStoragePattern();
685
685
  if (!this.storagePattern || this.placeholderToValue.size === 0) {
686
- return { text: text14, unresolved: false };
686
+ return { text: text15, unresolved: false };
687
687
  }
688
688
  this.storageLookup ?? (this.storageLookup = this.buildStorageLookup());
689
689
  const { exact, ci, ciCollisions } = this.storageLookup;
690
690
  let unresolved = false;
691
- const restored = text14.replace(
691
+ const restored = text15.replace(
692
692
  this.storagePattern,
693
693
  (match, bracketed, bare) => {
694
694
  const body = bracketed ?? bare ?? "";
@@ -1155,8 +1155,8 @@ function extractResponsesContent(body) {
1155
1155
  if (!root) return null;
1156
1156
  if (typeof root.output_text === "string" && root.output_text !== "") return root.output_text;
1157
1157
  if (!Array.isArray(root.output)) return null;
1158
- const text14 = root.output.filter((item) => asRecord(item)?.type === "message").flatMap((item) => Array.isArray(item.content) ? item.content : []).map((part) => asRecord(part)?.text).filter((t) => typeof t === "string").join("");
1159
- return text14;
1158
+ const text15 = root.output.filter((item) => asRecord(item)?.type === "message").flatMap((item) => Array.isArray(item.content) ? item.content : []).map((part) => asRecord(part)?.text).filter((t) => typeof t === "string").join("");
1159
+ return text15;
1160
1160
  }
1161
1161
  var RESPONSE_FORMAT_OK, RESPONSE_SCHEMA_OK, JSON_CONTRACT_REMINDER, RESPONSES_ONLY_MODEL_PREFIXES, CHAT_TO_RESPONSES_FIELDS, FOREIGN_ENDPOINT_SUFFIX, TIME_BUDGET_EXHAUSTED, MAX_TIMER_DELAY_MS, RETRYABLE_HTTP;
1162
1162
  var init_portalLlm = __esm({
@@ -2923,19 +2923,19 @@ function base64ToUint8Array(base64) {
2923
2923
  // src/lib/memoryEngine/vectorEncoding.ts
2924
2924
  var BYTES_PER_FLOAT32 = 4;
2925
2925
  var CANONICAL_BASE64 = /^[A-Za-z0-9+/]+={0,2}$/;
2926
- function encodeChunkVector(vector) {
2927
- const f32 = vector instanceof Float32Array ? vector : Float32Array.from(vector);
2926
+ function encodeChunkVector(vector2) {
2927
+ const f32 = vector2 instanceof Float32Array ? vector2 : Float32Array.from(vector2);
2928
2928
  return uint8ArrayToBase64(new Uint8Array(f32.buffer, f32.byteOffset, f32.byteLength));
2929
2929
  }
2930
- function decodeChunkVector(vector, onMalformed) {
2931
- if (!vector || vector.length === 0) return new Float32Array(0);
2932
- if (typeof vector !== "string") return Float32Array.from(vector);
2933
- if (vector.length % 4 !== 0 || !CANONICAL_BASE64.test(vector)) {
2930
+ function decodeChunkVector(vector2, onMalformed) {
2931
+ if (!vector2 || vector2.length === 0) return new Float32Array(0);
2932
+ if (typeof vector2 !== "string") return Float32Array.from(vector2);
2933
+ if (vector2.length % 4 !== 0 || !CANONICAL_BASE64.test(vector2)) {
2934
2934
  onMalformed?.();
2935
2935
  return new Float32Array(0);
2936
2936
  }
2937
2937
  try {
2938
- const bytes2 = base64ToUint8Array(vector);
2938
+ const bytes2 = base64ToUint8Array(vector2);
2939
2939
  if (bytes2.byteLength === 0 || bytes2.byteLength % BYTES_PER_FLOAT32 !== 0) {
2940
2940
  onMalformed?.();
2941
2941
  return new Float32Array(0);
@@ -3422,8 +3422,8 @@ var ATTACHED_FILES_OPEN_TAG = "<attached_files>";
3422
3422
  var ATTACHED_FILES_CLOSE_TAG = "</attached_files>";
3423
3423
  var ATTACHED_FILES_PREFIX = `${ATTACHED_FILES_OPEN_TAG}
3424
3424
  The user attached the following file(s) to this message. Their extracted contents are below; when the user refers to "the attached file", "this file" or "the document", they mean these.`;
3425
- function isAttachedFilesText(text14) {
3426
- return typeof text14 === "string" && text14.startsWith(ATTACHED_FILES_PREFIX) && text14.endsWith(ATTACHED_FILES_CLOSE_TAG);
3425
+ function isAttachedFilesText(text15) {
3426
+ return typeof text15 === "string" && text15.startsWith(ATTACHED_FILES_PREFIX) && text15.endsWith(ATTACHED_FILES_CLOSE_TAG);
3427
3427
  }
3428
3428
  function buildAttachedFilesText(fileContext) {
3429
3429
  return `${ATTACHED_FILES_PREFIX}
@@ -4141,7 +4141,7 @@ async function getMessageOp(ctx, uniqueId) {
4141
4141
  }
4142
4142
  return messageToStored(message, ctx.walletAddress, ctx.signMessage, ctx.embeddedWalletSigner);
4143
4143
  }
4144
- async function updateMessageEmbeddingOp(ctx, uniqueId, vector, embeddingModel) {
4144
+ async function updateMessageEmbeddingOp(ctx, uniqueId, vector2, embeddingModel) {
4145
4145
  let message;
4146
4146
  try {
4147
4147
  message = await ctx.messagesCollection.find(uniqueId);
@@ -4151,10 +4151,10 @@ async function updateMessageEmbeddingOp(ctx, uniqueId, vector, embeddingModel) {
4151
4151
  const address = ctx.walletAddress;
4152
4152
  await ctx.database.write(async () => {
4153
4153
  const key = await resolveMessageEmbeddingKey(address, message.content);
4154
- const storedVector2 = await serializeMessageEmbedding(key, vector);
4154
+ const storedVector2 = await serializeMessageEmbedding(key, vector2);
4155
4155
  await message.update((msg) => {
4156
4156
  msg._setRaw("vector", storedVector2);
4157
- if (msg.origin === "chunks_discarded" && vector.length > 0) {
4157
+ if (msg.origin === "chunks_discarded" && vector2.length > 0) {
4158
4158
  msg._setRaw("origin", "message");
4159
4159
  }
4160
4160
  msg._setRaw("embedding_model", embeddingModel);
@@ -4822,49 +4822,49 @@ init_logger();
4822
4822
  var DEFAULT_CHUNK_SIZE = 400;
4823
4823
  var DEFAULT_CHUNK_OVERLAP = 50;
4824
4824
  var DEFAULT_MIN_CHUNK_SIZE = 50;
4825
- function splitIntoSentences(text14) {
4825
+ function splitIntoSentences(text15) {
4826
4826
  const sentenceRegex = /[.!?]+[\s"')}\]]*(?=\s|$)/g;
4827
4827
  const sentences = [];
4828
4828
  let lastIndex = 0;
4829
4829
  let match;
4830
- while ((match = sentenceRegex.exec(text14)) !== null) {
4830
+ while ((match = sentenceRegex.exec(text15)) !== null) {
4831
4831
  const endIndex = match.index + match[0].length;
4832
- const sentence = text14.slice(lastIndex, endIndex).trim();
4832
+ const sentence = text15.slice(lastIndex, endIndex).trim();
4833
4833
  if (sentence) {
4834
4834
  sentences.push(sentence);
4835
4835
  }
4836
4836
  lastIndex = endIndex;
4837
4837
  }
4838
- const remaining = text14.slice(lastIndex).trim();
4838
+ const remaining = text15.slice(lastIndex).trim();
4839
4839
  if (remaining) {
4840
4840
  sentences.push(remaining);
4841
4841
  }
4842
4842
  return sentences;
4843
4843
  }
4844
- function chunkText(text14, options) {
4844
+ function chunkText(text15, options) {
4845
4845
  const {
4846
4846
  chunkSize = DEFAULT_CHUNK_SIZE,
4847
4847
  chunkOverlap: requestedOverlap = DEFAULT_CHUNK_OVERLAP,
4848
4848
  minChunkSize = DEFAULT_MIN_CHUNK_SIZE
4849
4849
  } = options ?? {};
4850
4850
  const chunkOverlap = Math.min(requestedOverlap, chunkSize - 1);
4851
- if (text14.length <= chunkSize) {
4851
+ if (text15.length <= chunkSize) {
4852
4852
  return [
4853
4853
  {
4854
- text: text14.trim(),
4854
+ text: text15.trim(),
4855
4855
  startOffset: 0,
4856
- endOffset: text14.length
4856
+ endOffset: text15.length
4857
4857
  }
4858
4858
  ];
4859
4859
  }
4860
- const sentences = splitIntoSentences(text14);
4860
+ const sentences = splitIntoSentences(text15);
4861
4861
  const chunks3 = [];
4862
4862
  let currentChunkSentences = [];
4863
4863
  let currentChunkStart = 0;
4864
4864
  let currentOffset = 0;
4865
4865
  for (let i = 0; i < sentences.length; i++) {
4866
4866
  const sentence = sentences[i];
4867
- let sentenceStart = text14.indexOf(sentence, currentOffset);
4867
+ let sentenceStart = text15.indexOf(sentence, currentOffset);
4868
4868
  if (sentenceStart === -1) {
4869
4869
  sentenceStart = currentOffset;
4870
4870
  }
@@ -4911,7 +4911,7 @@ function chunkText(text14, options) {
4911
4911
  if (overlapSentences.length > 0) {
4912
4912
  currentChunkSentences = [...overlapSentences, sentence];
4913
4913
  const overlapText = overlapSentences[0];
4914
- const overlapStart = text14.lastIndexOf(overlapText, currentOffset);
4914
+ const overlapStart = text15.lastIndexOf(overlapText, currentOffset);
4915
4915
  currentChunkStart = overlapStart === -1 ? sentenceStart : overlapStart;
4916
4916
  } else {
4917
4917
  currentChunkSentences = [sentence];
@@ -4931,18 +4931,18 @@ function chunkText(text14, options) {
4931
4931
  chunks3.push({
4932
4932
  text: chunkText2,
4933
4933
  startOffset: currentChunkStart,
4934
- endOffset: text14.length
4934
+ endOffset: text15.length
4935
4935
  });
4936
4936
  }
4937
4937
  }
4938
4938
  if (chunks3.length === 0) {
4939
- const trimmedText = text14.trim();
4939
+ const trimmedText = text15.trim();
4940
4940
  if (trimmedText.length > 0) {
4941
4941
  return [
4942
4942
  {
4943
4943
  text: trimmedText,
4944
4944
  startOffset: 0,
4945
- endOffset: text14.length
4945
+ endOffset: text15.length
4946
4946
  }
4947
4947
  ];
4948
4948
  }
@@ -5634,8 +5634,8 @@ var createClient = (config = {}) => {
5634
5634
  data = await response[parseAs]();
5635
5635
  break;
5636
5636
  case "json": {
5637
- const text14 = await response.text();
5638
- data = text14 ? JSON.parse(text14) : {};
5637
+ const text15 = await response.text();
5638
+ data = text15 ? JSON.parse(text15) : {};
5639
5639
  break;
5640
5640
  }
5641
5641
  case "stream":
@@ -5876,22 +5876,22 @@ function embeddingErrorFrom(response) {
5876
5876
  const message = typeof response.error === "object" && response.error && "error" in response.error ? response.error.error : "API embedding failed";
5877
5877
  return new EmbeddingHttpError(message, response.response?.status);
5878
5878
  }
5879
- async function generateEmbedding(text14, options) {
5879
+ async function generateEmbedding(text15, options) {
5880
5880
  const total = options.totalTimeoutMs;
5881
- if (total === void 0) return embedOne(text14, options, void 0);
5882
- return withDeadline((signal) => embedOne(text14, options, signal), total, "embedding");
5881
+ if (total === void 0) return embedOne(text15, options, void 0);
5882
+ return withDeadline((signal) => embedOne(text15, options, signal), total, "embedding");
5883
5883
  }
5884
5884
  var { inFlightByCache, cachedEmbeddingModels } = getEmbeddingCacheState();
5885
- async function embedOne(text14, options, outer) {
5885
+ async function embedOne(text15, options, outer) {
5886
5886
  const { cache } = options;
5887
- if (!cache) return Array.from(await requestEmbedding(text14, options, outer));
5887
+ if (!cache) return Array.from(await requestEmbedding(text15, options, outer));
5888
5888
  const model = options.model ?? DEFAULT_API_EMBEDDING_MODEL;
5889
- const cached = cache.get(text14);
5889
+ const cached = cache.get(text15);
5890
5890
  const cachedModel = cached && cachedEmbeddingModels.get(cached);
5891
5891
  if (cached && (cachedModel === void 0 || cachedModel === model)) return Array.from(cached);
5892
5892
  const inFlight = inFlightByCache.get(cache) ?? /* @__PURE__ */ new Map();
5893
5893
  inFlightByCache.set(cache, inFlight);
5894
- const requestKey = JSON.stringify([model, text14]);
5894
+ const requestKey = JSON.stringify([model, text15]);
5895
5895
  const pending = inFlight.get(requestKey);
5896
5896
  if (pending) {
5897
5897
  try {
@@ -5900,18 +5900,18 @@ async function embedOne(text14, options, outer) {
5900
5900
  if (outer?.aborted) throw err;
5901
5901
  }
5902
5902
  }
5903
- const request = requestEmbedding(text14, options, outer);
5903
+ const request = requestEmbedding(text15, options, outer);
5904
5904
  inFlight.set(requestKey, request);
5905
5905
  try {
5906
5906
  const embedding2 = await request;
5907
5907
  cachedEmbeddingModels.set(embedding2, model);
5908
- cache.set(text14, embedding2);
5908
+ cache.set(text15, embedding2);
5909
5909
  return Array.from(embedding2);
5910
5910
  } finally {
5911
5911
  if (inFlight.get(requestKey) === request) inFlight.delete(requestKey);
5912
5912
  }
5913
5913
  }
5914
- async function requestEmbedding(text14, options, outer) {
5914
+ async function requestEmbedding(text15, options, outer) {
5915
5915
  const { baseUrl = BASE_URL, model } = options;
5916
5916
  const timeoutMs = options.timeoutMs ?? DEFAULT_EMBEDDING_REQUEST_TIMEOUT_MS;
5917
5917
  const headers = {
@@ -5923,7 +5923,7 @@ async function requestEmbedding(text14, options, outer) {
5923
5923
  (signal) => postApiV1Embeddings({
5924
5924
  baseUrl,
5925
5925
  body: {
5926
- input: options.maskInput ? options.maskInput(text14) : text14,
5926
+ input: options.maskInput ? options.maskInput(text15) : text15,
5927
5927
  model: model ?? DEFAULT_API_EMBEDDING_MODEL
5928
5928
  },
5929
5929
  headers,
@@ -6184,10 +6184,10 @@ async function chunkAndEmbedMessage(ctx, messageId, options) {
6184
6184
  }
6185
6185
  const textChunks = chunkText(message.content, options);
6186
6186
  const chunkTexts = textChunks.map((c) => c.text);
6187
- const embeddings = await generateEmbeddings(chunkTexts, options);
6187
+ const embeddings2 = await generateEmbeddings(chunkTexts, options);
6188
6188
  const messageChunks = textChunks.map((chunk, i) => ({
6189
6189
  text: chunk.text,
6190
- vector: embeddings[i],
6190
+ vector: embeddings2[i],
6191
6191
  startOffset: chunk.startOffset,
6192
6192
  endOffset: chunk.endOffset
6193
6193
  }));
@@ -6302,13 +6302,13 @@ async function chunkAndEmbedAllMessages(ctx, options, filter) {
6302
6302
  if (shortMessages.length > 0) {
6303
6303
  try {
6304
6304
  const texts = shortMessages.map((m) => m.content);
6305
- const embeddings = await generateEmbeddings(texts, options);
6305
+ const embeddings2 = await generateEmbeddings(texts, options);
6306
6306
  for (let i = 0; i < shortMessages.length; i++) {
6307
6307
  try {
6308
6308
  await updateMessageEmbeddingOp(
6309
6309
  ctx,
6310
6310
  shortMessages[i].uniqueId,
6311
- embeddings[i],
6311
+ embeddings2[i],
6312
6312
  embeddingModel
6313
6313
  );
6314
6314
  embeddedCount++;
@@ -6327,10 +6327,10 @@ async function chunkAndEmbedAllMessages(ctx, options, filter) {
6327
6327
  for (const msg of longMessages) {
6328
6328
  try {
6329
6329
  const chunkTexts = msg.textChunks.map((c) => c.text);
6330
- const embeddings = await generateEmbeddings(chunkTexts, options);
6330
+ const embeddings2 = await generateEmbeddings(chunkTexts, options);
6331
6331
  const messageChunks = msg.textChunks.map((chunk, i) => ({
6332
6332
  text: chunk.text,
6333
- vector: embeddings[i],
6333
+ vector: embeddings2[i],
6334
6334
  startOffset: chunk.startOffset,
6335
6335
  endOffset: chunk.endOffset
6336
6336
  }));
@@ -6349,10 +6349,10 @@ var cryptoPriceCentroid = [0.025576787463333337, 0.0017598020599999997, -0.01339
6349
6349
  var noCryptoPriceCentroid = [0.015473095138684206, 0.0031634101517105263, -0.011257569272697374, -0.02186071628118421, 0.008889833600921049, -0.006683160151842105, -0.009353561542368423, 0.01352172231447368, -0.01804750482084211, -0.00367377302894737, -0.02944732364736842, -0.002762284484078947, 0.033265779919736845, -0.006296026233684209, 0.022671929989210516, -0.0011530866775394733, 0.007070449366500001, -0.0050351310097368415, 0.010799295548421052, 8887227547368423e-20, 0.016334833743289468, 0.014258147745263154, 0.009584979092368422, 0.003050773904342107, -0.013426355076315791, 0.03582639014592105, -0.01160198427105263, -0.012974957788421051, -0.0031303864967105266, 0.021372544676315785, -0.02374843410263159, -0.009223416682894739, 0.005602822635394739, 0.02924898819473684, -0.014123551471890794, 0.019027650408421047, -0.005074793619605263, -4600031255263159e-19, 0.010498459563947368, -0.011094227593421054, 0.010249076817105258, -5753623577631579e-19, -0.005674418818421051, -0.00447285064486842, -0.005516097867105263, -0.007470266562368424, -0.005471375803289476, -0.006780112021052632, 0.007059772195657894, 0.0021554959672368413, 0.004705735464473685, -0.02317132775394737, -0.011564555390789474, -0.002422056378552632, -0.006380764081578948, -0.004005146213289473, -0.00794062262769737, 0.01414054164342105, -0.01016237577355263, 0.003978143405131578, -0.03655277326578946, 0.006158242906276315, 0.004217046339078946, -0.008940671309210528, -0.00673433677186842, 0.010728261618421055, 0.005998754786184212, -0.012994214264868421, 0.01220040680802632, -0.010796953655434208, -0.006105011632500001, 0.008011191312894737, 0.006423354985394737, 0.0012142853823684213, 0.009146709284210528, 0.022887410982105266, -0.022682944046052637, -0.020356859009684213, 0.010394592805789476, 0.022593094030263154, -7750265294736841e-19, 0.010491877809868419, -0.00632094335789474, -0.00435166075344737, -0.0033312799659210527, -0.013687921215789472, -0.0021700710893421053, -0.009265354446052636, -0.007450454793684212, -0.01119890545223684, 0.01885215469736842, -0.0016829954880263156, 0.004660542770078946, 0.01614547219013159, 0.0012384379707105267, 0.0012953595593421052, -0.019026688374473685, -0.012046473879210519, -0.01890812402105263, -0.0013315808465131577, 0.011091345418421055, 0.021520818015789468, -0.005630902795947368, -0.0019751528094210527, 0.016361938930000004, -0.006861605829210528, -0.0028363347098684204, 0.008591381667894738, -0.009064190686052631, 0.0019356226038157898, 6169263489473686e-19, 0.005576595939605265, 0.01869662389342105, 0.001262012349342105, -0.005366806441447369, -0.016217105081578947, 0.0016831897417500007, -0.0018950253057894739, -0.002175052982236842, 0.015151523774342104, 0.009984357328157894, -0.008543766583157896, -0.00730858755781579, -0.005671754766447369, 0.016222894231578945, -0.006877592555789474, -0.00339728109881579, 0.002327833744078947, -0.007433236152460526, 0.003641817336996051, -22983315413157884e-20, -0.018579861956578948, -0.002013661149605263, -0.0012221983013157892, -0.005588193124592107, 0.0017740131994736844, -0.005087314752105264, -0.0024032324010526303, -0.021181957791973682, 0.015352973211842105, 0.0014077697809210523, 0.01886358938289474, 0.0034620092081578944, 0.001262707815105263, -0.016702094776315787, 0.0024528663467105263, -0.015399577423684214, 0.013716609889342105, 0.008007916322368419, 17873636657894727e-20, 0.012559814308552636, 0.004152347459210525, -0.007167261042105263, -0.010308009533421052, -0.0118209450956579, 0.0034850848647894755, -0.01689842138618421, 0.02312426354868421, 0.018107834585526318, -0.005113781234210525, 0.0036598878982894733, -0.002219674033289473, 0.010094555771578948, -0.004721280503184208, -4728102780263162e-19, -0.005741379793631579, 0.004688492021052632, -0.009298409537368421, 0.021306954543421058, 0.002625481324473684, 0.0021689222906578947, 0.0016470091790789468, 0.021918357023684207, 0.01859015762499999, 0.008736974258815788, -0.007575892959605263, 0.0012198560669736834, -0.013031221881184206, 0.005416682665447367, 0.014852952819736842, -27517017642368397e-20, 0.01096887469118421, -0.0013455180846052635, 0.022272436745131585, 0.0067934349073684175, 0.012959732387171052, -0.02075517668026316, -0.0064723936585, -0.0038070007211315794, 0.0012372250631578945, 0.0050306169430263175, -0.006763357246763157, -0.006772821312763157, 0.010125664042499998, 0.002038023320000001, 0.011549378190657895, 0.0029378070836842116, 0.010960937982500004, 0.010825824704473684, 0.0021591957962631583, 0.04206184268421052, -0.024262397277631575, 0.008255900677763156, 0.009695903923947372, -0.007390906788684211, -0.008087284358947368, -0.021996855926315787, 0.011287301983684214, -5568711708289474e-19, -0.014932725518421055, 0.009245778972302627, 0.0015213949119210516, 0.009132084528947367, 0.016006044472368423, 0.011636527018026314, 0.006784626309736844, 0.013307319816763155, -0.0027379106158421057, -0.0020452238106578946, -0.004009475287105262, 0.010760948439342109, -0.008745640049473686, -0.003213084865263158, -0.002908590922105263, -0.008224298627236842, -0.01243814725003421, 0.002076089559092105, -0.009891295528947368, 0.002955430833842103, -0.026389982763157894, 0.00307576746013158, -0.019563673766447378, 0.0016621273825, -0.008313485993421054, 0.004804929035789474, -0.00549750888473684, 0.00505214069705263, -0.011755459830263165, -0.0024296008852631576, 0.00875007432236842, -0.008075735610789475, -0.01105359596322368, 0.0039991457536842105, -0.010148718380263164, 0.0025960758788157894, -0.010566656651710528, 0.012436943196578952, -0.016535537697368412, 0.01290098068868421, -0.01656991388736842, -0.007831062019144736, 0.005940865221447369, -9759450793421052e-19, -0.008620581310184207, -0.003005893026447368, -0.002761302409605262, -0.0030793885886842114, -0.006974357054078946, 9721991617105264e-19, 0.010942189804473684, 0.002026653777631579, -0.012401945011578947, 0.0033469499360526318, 0.018924720229473682, -0.005991988553184208, 0.0033316007316315788, -0.015320591599605263, -0.02128828745542763, -0.0022622942237697373, 0.0069056783826315785, 0.004446302767763156, -0.016207595330789474, 11362097776315657e-20, 0.008954130263986842, -0.010221943235789475, 0.014461354018157896, 0.0028590932341973686, -0.010514913011447373, -0.015841919529473683, -0.01389901701263158, -0.009229765706842105, 2461921435526319e-19, 0.020577489130263162, -0.022800926136842106, -0.0015163221825394738, -0.013809464157236842, 0.004897803686315791, 0.018522811494736845, -0.009630460222828948, 0.011984547498157897, 0.0111937101125, 0.015270678807631577, 0.0019252811815789483, 0.014758101361842106, -0.005758524065263159, -0.0021391250729868427, -0.010472078178684207, -0.012900316256973682, -0.0014497102297763157, 0.006431885074342107, -0.003826420850657895, 0.004125123941578948, 7190557013157885e-20, 0.005760016457894736, -0.01029894582407894, -0.014202551836842109, -0.008429392661184212, -0.004542960022631579, 0.004390327258289474, -0.017841332352631578, -0.02092670811578947, -0.011721044171184207, 0.001154552708868421, -0.008358092435263156, -0.009767428120921056, 0.00617505359518421, 0.004506490673552631, 0.0020017606636842113, -0.00796983946092105, 0.020977802086842096, -0.0075353952266447415, -0.007463197555921055, -0.012128650817236842, 0.019736432668421053, 0.002261451146973684, 0.004720614210526316, -0.009998388954473686, -0.005624677788552632, -0.022545385379078953, -0.001583800878381579, -0.002379242887671053, -0.006442413411381578, -0.00695587538394737, 0.0011264698367105268, -0.0045705394853947385, -0.0015821324533815784, 0.023414226677631576, -0.0012724761923684214, 0.023761430540263154, 0.0029503868397894734, -0.0033352330858684217, -0.011512791865657892, 0.00981099949723684, -5708729797368422e-19, 8188937956578947e-19, 0.010694227110197371, 0.008592401465789476, -35825991868421067e-20, -0.004266100294447367, 0.005692018715789475, -0.0033002098638157907, 0.004866896994999999, 0.01000889828684211, 0.006752862654868419, 0.0026472819757499995, -0.005589931472697369, -0.017258877186842114, 0.01836197345605264, 0.003980058679868421, -0.0020851821997368417, -0.006682193140302631, 0.008638199788657895, 0.01154588990657895, -0.0014030509926710529, 0.00623447043604513, 0.016997480921671054, -0.0076195284961842105, 9118090571052634e-19, -0.01740562824342105, 0.001625513271842105, -0.012645379938157893, 0.010188843557894742, -0.012510250708026317, 0.0014163581344342104, 0.007640950823026323, 0.009030281375263157, -6778679552631581e-19, -0.021454867002973686, 0.001957897549473684, 0.001193311223026316, 0.0027351965483684215, -0.05114138984210526, 9931653628947367e-19, -0.0034956210430263156, -0.011831037061315788, 0.010289316701315792, -0.006878016126315793, 0.004890278758947368, 0.005483033461842105, -0.01275958679236842, -0.01331795716276316, 0.003143929424078947, -0.0022857318045394724, 0.007633577711973686, 0.0021747185855263158, 0.005520500721710526, 0.008252045688684212, -0.014708749063026315, -0.010071718517500002, 0.004989717453947367, 0.017077984349605266, -8273659215789473e-19, 0.005120420113328947, 0.007857212020657894, -0.007720276348289473, 0.002462438197763158, -55125038157895184e-21, 0.004356982750105262, -0.00700954478736842, 0.008855195414342104, -0.007593518517105262, 5683125496052636e-19, 0.006104346186842107, 0.0018523006100263158, 0.011868568778421053, 0.008818247002631579, 0.007355409463684211, 0.014110024566184213, -0.004139245012105264, -0.008042714513815788, -0.008814672356447366, 0.010348661143157892, 0.008645756135526317, -0.0039321516707894735, -0.018719250872499996, 0.016164309558789468, 0.011362069608157893, 0.012222493691973682, 0.009424688908947371, -0.00664402617118421, -0.007866664878289475, -0.012993650039078946, -0.018103016852631583, -0.0065906644863157875, 0.004789760346776317, -0.014935053199342104, 0.014902569211842109, 0.004785409491052631, 0.007345346444473684, 0.003159245409736842, 0.01312098370328947, 0.006301784642499999, 0.005022653047368423, -0.002849895648684211, -0.0032933022748421045, 0.004350993063026316, -0.007350343983026319, 0.010007334274736844, -0.0028172315381578953, -0.011997126834394734, -0.005281044011052631, 0.017256082294736845, -0.026231524928157893, 0.001482624986578947, -0.01504677556723684, -0.006961093627631583, -0.009158235009605265, -0.010464971171052636, -0.012205843889473683, 0.013581314933421051, 0.024057515715473682, -0.026571698318421058, -39512425210526327e-20, -0.008364490104342107, 0.01043953546486842, -0.006329244778157894, 0.00677121107763158, -0.006404679137105265, -0.008498417039605265, -0.011997726845921054, -0.00819236379276316, -0.008719842036447368, 2480567830263159e-19, -0.009615319662105265, 0.010179268672105262, 0.010257863497157897, -0.002203600034342105, -0.014915970727368411, 0.010107625643947371, -0.0016536920541710522, -0.006636945585526316, -0.016858044851315784, -0.020209110402631573, -0.007010765250131577, 0.0073754879921052625, 0.019676440628368427, 0.010058316429868416, -0.026224092562236838, -0.010421548158342108, 0.004843649796842105, -0.018334794059605263, 0.007321559153421053, 0.014406508708157897, -0.013035912961381586, 0.008222181527763156, -0.002566978908289474, 0.009497600043981577, -0.0056751013231578955, 0.004298258599210526, -0.00134152910618421, 0.0017198262138157904, -0.00527642314413158, -0.006738037163421052, 8391017913947374e-19, -0.011822055771453949, -0.0023647280209210526, 0.018581314182894736, 0.0013511696361842105, -0.008034561226052629, 0.0050400383831578945, 0.011289238419736843, -0.01018335548486842, -0.008891896734736842, 0.007739089927236841, -0.014787865826578945, -0.017835246043026314, 0.0056641722032894715, -0.0059957612642105255, -0.006282649575526315, 0.016645820401710514, 0.002203326760921053, 0.0022889429653157895, -0.008153908865789473, -0.009116433642894738, 0.014059073972894742, 0.006152197939947369, 0.01395997850157895, -0.012334291357763155, 0.017010570389868414, -0.0063333831828947355, -0.0025206653310921056, 0.006800531193421053, -0.004048019489342104, -0.006107880013157895, -0.011589549206710528, -0.0023016446209210527, 0.018917020458026318, -0.0018317876103026314, 0.007985371543710523, -0.009285482378157892, -0.007067705323684211, 0.011150805990789475, -0.009777598592105264, -0.008635949183289476, -0.004163104284868419, 0.010232138396315793, -0.0019257375613157897, -5739201986842089e-20, 0.013092055408684215, 0.01974871008065789, 0.005587073321842107, 0.025888940701315793, 0.016139226412631578, -0.0011026304183986845, -0.006448130678552632, 0.0013506662108157892, -0.00879462901421053, 0.0067748442927236825, -0.002999273877368421, 5861502590000002e-19, -31988263750131585e-20, -9557692903947368e-19, -0.005667702506315793, -0.006468547942684208, -0.017199129730526317, -0.019429718929210527, -0.003644407856578948, 0.004087335838671054, -0.003677765850855264, 0.007942120783605264, 6586344227631579e-19, -0.0037614600624999986, 0.0055129023461368415, 0.011244061396578945, 0.005010426876315791, 0.0072596023613157885, -0.008378387808157896, 0.01193223011842105, 0.002783704421578947, -0.0018955311381578942, 0.016495522016315784, 0.0010300654348684207, 0.0029166797853947372, 0.0019548181412, 0.0034482197978947357, -0.01597233675447369, -0.004172262047894737, 0.004349557685394737, 0.0057765581432894725, -0.017049438059999998, -0.004525430396052631, -28143429157894773e-20, 0.008926862911842108, -0.01706470510842106, -0.009343251894078945, -0.014551790916315796, 0.0037077234910526317, -0.024520926263157893, 0.005740144142368422, 0.0053956368143421056, -0.005766834186973687, -0.012353098134999999, 0.005150600744473685, -0.002591634655236843, -0.0034600672671052644, 0.020232129807894742, 0.0019706625393421055, -0.021094935969078955, 0.013562589856578945, -0.01982315960263158, 0.0022789787307368413, 0.0030350554696052627, -0.0023380354609868425, 0.0016429701249999996, 0.0013748243807894737, -0.011015212538802624, -0.01045923693026316, -0.010230515132368417, 0.0031865286891710532, 0.019525663493815786, -0.01229977110328947, -0.01392738180263158, 0.0047192255380921035, 0.009634271472381582, -0.0036637588399210516, 0.01367465738263158, -9074315167105264e-19, 0.009034615510460526, -0.013227085239526318, -0.008698134963421054, -0.005679745975289474, 0.016064328626710523, 6854882098684209e-19, -0.02409260117894737, -0.029390496973684222, -8429490286315783e-19, 0.017532396812105267, 0.003992892611842105, -0.015176699562894741, 0.017688143694565794, 0.015704753903289473, -0.006714242723157895, 0.006966373187026316, 0.014712872807894739, 0.0048426642788421065, 0.004560759092499999, 0.014764954930526316, 0.007755880210394735, -0.0063704605949999995, 0.013370230355131577, 0.006058873911578949, -0.007236065584644737, 0.02192650811447368, -0.0036055442649473683, 0.017262371172368424, -0.019675186598421057, 0.012352453031578945, -0.019395975741052625, -0.005476996759473683, -0.003981952255394738, -0.019128493134342103, -0.006420192784736843, 0.00663706127763158, -0.00931713626539474, -0.004438600155394738, -0.0074747220036842105, -3532221511315789e-19, 0.003786715305789473, 0.002143004024210527, -0.013259830103026315, -0.019481669799736843, 0.0063924609735921045, -0.006268689519868423, 0.011194401769210527, 0.014244597600921052, -0.009581357068684208, 0.015704279303947365, 0.002868509497368421, 0.009993456976842102, -0.009288659571184214, -0.00567008211111842, -0.0016774708461842105, -0.015881515857631583, -0.0031357240957894735, 0.009431347011250004, -0.02115866819605263, -0.002224235694342105, 0.016286955564605264, 0.007042988388157893, 0.002287434175, 0.010197640378157893, -0.005280943861578946, 0.0014105266302631581, 8359535263157892e-19, 0.0047502692026315805, 0.013299677349078947, -0.0023519426788157897, -0.004674174603421053, 0.018177119728907887, -0.0014176172173881575, 0.007134867282894738, -22741002690789458e-20, -0.022838398981578946, -0.003212089612105263, 2004287202631577e-19, -0.022176862091973677, -0.020671407409605266, 0.009063825494342106, -0.016635621425526326, -0.008275760027894737, -0.010347646235000002, 0.009041304183157893, 0.0051814241601315794, 0.005795941738552632, -0.006237753602210528, -0.004308292899078948, 0.027939477830263154, 0.0022927221325526313, -0.009122603172894738, -0.012685393528368422, 0.035720136647368415, 3721588992105262e-19, -0.015025574779078942, 0.0087486222525, -0.009074244906710525, -0.01173346431697368, 0.012090590483960533, 0.016366954857105268, 0.011179668721052633, -0.0073358287721842115, -0.007733899611315792, -0.003457529575921053, -0.006236338289078949, 0.005774385420526318, -0.018860930085526313, 0.01522345625828947, -0.012091792738157891, -0.004068704780263158, -0.004178824925921053, -0.013820312269210535, -0.01096366969644737, -0.004025642653947369, -0.024534325314078946, 0.006440052884473688, -0.016726629586052633, -3620708957894737e-19, 0.0047140585557894745, 0.0018035156026315793, 0.0048402487059210535, -0.00438187360013158, -6329667841710535e-19, 0.013023098627184216, -0.0015603331286578957, -0.0015727194086052627, 0.015044479001315789, 0.003913626584973687, -0.011406708371973688, 0.009567988548947368, 0.0048712744065789486, 8060304496052634e-19, -0.0027007557632499997, -0.007984334569848683, 0.0035786119902631594, 0.008549296575394733, 0.013448384334736838, 0.003980597008986842, 0.0027732479433552628, 0.0022548364651710537, 0.01305019627302631, -0.010885881758421052, 0.0046425705302631575, -0.006159144808684208, 0.0016908100748684212, 0.010177649750394735, -0.00148574499868421, -0.007758489989078948, -0.010132687943157893, 0.010328826282539472, -0.007675625043065791, 0.010875474622368417, -10961718381578953e-20, 2469314122368423e-19, 0.01456813955157895, -0.002258910603421052, -0.006317790170921054, 0.008751932444473686, -0.009791627398947367, 0.015247204259210523, 0.010811477365789473, 0.006444553805289473, -0.009046801008342103, 0.0030660862369736833, 0.020425601981842102, 1083259947368725e-21, 0.024182386267499998, -0.017303176044473685, 0.006597084168552631, 0.001865562837526316, 0.001028871313631579, 0.01472760354684211, -0.0075378481717105275, 0.010146784916184209, -0.007357307590657895, 0.015889662872500005, -0.0010280143740789473, 0.008057754063236841, -0.0017568669571052641, -0.004133698758421052, 0.007827215762368422, 0.03512832019999999, -0.00993780903394737, -0.004260993277631579, -0.008866919430526315, -0.012339414527631576, -45847830315789447e-20, 0.00838245042193421, -0.016904068641184215, -0.01032341292509211, -0.0179430145493421, -0.005017911380025, 0.004198584343289474, -0.012134608429342105, 0.02621189465, 0.021764919877236843, -0.0016967839548684218, 0.0064469595144736845, 0.0015113159294999998, 0.01449087951447368, 0.00908490776328947, 0.0021144275999999997, -0.0023710569351315784, -0.012429141851184206, -0.007313173065394735, -0.003165631556907895, -0.005191618546052632, -0.00811820481360526, 0.006263298302894738, -4727746834342098e-19, 0.01215529816414474, 0.005959134763223686, -0.003053097290263157, 0.0022509379385526307, -0.012437947575526312, -0.017363427211052634, -0.0044620109, 0.01702834882368421, -0.0014438623280263164, 0.007209018304078949, -0.005530027731842105, -0.006350269325728949, -1933061736184215e-19, -0.012560664186842102, 0.021907004355263156, -0.00368476647618421, -0.008714235420315792, 0.006064745458157897, 0.004239938750368421, -0.003381502998157895, -0.009450509392500002, 0.021473245165789474, -0.006664313856578946, -0.007727308110131578, 0.01755496648539474, -0.008046387513815787, 0.004243436594473684, -0.0018419240855263163, -0.002696314727236842, 0.00458863617605263, -0.009136615755921052, -0.01227240456026316, 0.007315492906276317, 0.001563661388157895, -0.005130049675394736, -0.002669057950473685, -0.0014561823650000002, -0.005081315489473683, -0.019940945634210522, 0.0020929494719736843, 0.004403723249342103, -0.03075529604868421, -0.008624309510289472, 0.01228930504118421, -0.009409504784473681, 0.0011323868934210513, -5501856157894726e-19, 0.011253276619736843, -0.005881537943934211, -0.009128014259078948, -0.002782203197434212, -0.00439761305381579, 0.018774566821052625, -0.011816556899605264, -0.019359096755263157, -0.009348714950473683, -0.0010719945900657896, 0.010479289703256579, -0.011939962278157891, 0.005665995433736843, 0.006774268349210528, 0.0034390900013157896, -0.008370486944868423, 0.017960268711842104, -0.0040098660762236836, 7006663912157889e-19, 0.0015448419175000006, 0.030164748171052642, -0.013288672209210527, -0.0194342324281579, -0.014333865537368415, -0.0010687613120394742, 0.006369927146184209, -0.02037403711921052, -0.0011595645836842109, 0.012291525279210526, -0.004659846724868422, 0.014351864156447373, 0.004539899117368421, -0.011356260933815792, 0.014434559298684207, 0.003388873248815791, 6091339384210531e-19, 0.009991929092763158, 0.019049285447499998, -0.007336658402000001, 0.01645323191407895, 0.011546428464605267, -0.003781113732894739, 0.01016362579592105, 0.003369438427763157, -0.012699591561842107, -0.027960629820000003, 0.006582685929197369, -0.0014268903726315791, 0.005638759550394738, -0.006515546567039474, -0.004676419364394737, 0.008950068268947365, -0.006762236009210526, 0.010658080675000004, -0.005891587223157895, -0.014665679521842107, -0.013644553504473684, 10368947013157792e-20, -0.007762898519210526, -0.01131838790855263, -0.00988497489276316, -0.0072114894752039445, 0.0027077467686842105, 7480073221052632e-19, 0.001175619631578947, 9005636573684216e-19, -0.017333229999605265, 5094909162236838e-19, 0.012029732047368418, 0.009794908618684218, -0.01157117548918421, -0.009239849182894735, 0.005636658962236845, -0.008340407034210524, -817503516907895e-18, 0.003921638921052632, 0.005545640947368417, 0.014569629413078954, -0.00717244047236842, 0.00835087193605263, -0.008531247800499998, -0.004064330462, 0.008101339765526315, -0.01701503037605263, 0.004955823044473687, -0.0022204531394868425, -0.01208521188631579, -0.002832061093026315, -0.002318643040434209, -0.007110677303947368, 0.001033564958947368, 0.027433827638157895, 0.010220588290263156, -0.007394786349605265, -0.006538531349210523, -0.0022718601860526317, -0.004229559157973685, 0.005938436034868422, 0.01048373804263158, 0.00986031018078947, 0.020336058257894734, 0.004668691585657895, -0.011039444343815792, -0.03195965501315791, 22211712236841965e-20, 0.004621380856581578, -0.0032872489723684223, 0.0022427985402631574, 0.009466410571710526, 0.017591113605263154, -0.004106379021052631, 0.006385616363748682, -0.0040017953515789455, 0.0012984135143552632, -0.0013681684519605262, 0.006150785983582896, 0.02349364751052632, -0.003507428290921053, -0.023245202525000005, 0.0073350322506578955, -0.012751762621973684, -0.009509772432105263, -0.011624634206315787, 0.008383111918289473, 0.008738430290394734, -0.0019306551646052629, 0.004987825924447366, 0.0067051984610657905, 0.010962145944078953, -0.006160766227763156, -0.01599381954276316, -0.005996254381473684, 0.013413042621052635, -0.016699554863157894, -0.00425797138263158, -0.002346582932368421, -0.003454997969210526, 0.015414278531447364, 0.0020144495526315796, 0.004778662968414474, 0.019607659189473686, -36090899996052645e-20, -0.008492139364605267, 0.007747498233499999, -0.0013514066389473686, -0.013021238629802628, 0.02135893455000001, 0.0050934569453947335, -0.005380931788039476, 0.0034462612061184213, 0.002471601183026315, 0.0018443146213815793, -0.005110344829342106, -0.014184218227105262, -0.0043937764976315795, -0.004010257807763158, 0.007609986475131577, -0.0017383072384999994, -0.008765348437499997, 0.006436899067289473, -0.005252098280921053, 0.0012666882906842106, 7271012838815791e-19, -0.012168801171973687, -0.006950649873815789, 0.006179354461447367, 0.008584705725921056, 6826743815789457e-20, 0.005478510884342106, -0.001656087406842105, 0.004353472659210527, -0.007852758323026314, 0.00774670264888684, -0.004548253065789474, -0.00872336939763158, 0.007497302493421052, -0.003937119212631579, 0.005084670148232898, -0.006804365856578951, -0.004160022079342104, -8716827518421054e-19, -0.0018917191575000003, -0.04542618686578948, -7962240394736886e-20, 0.005303945623421051, -0.0010489784114473685, 0.0040561710610526325, -0.005575023273947369, -0.014307941818026318, -0.005483095651842106, -0.0036865826026315804, -0.007326996465921051, -0.007258892687710523, -0.017002108826973682, 0.0026596006468421053, 0.007241479605526319, -0.006855145818736838, -0.007547068765263157, -0.011135433282763159, 0.015574704355921056, 0.015176253521052627, -0.006872319883815792, 0.0017937790452631581, 0.0012157494165789468, 0.007882637975789471, 0.003405427387894736, -0.004297595478375, 0.017864616917368424, 0.0030970381859210523, -0.0023354204692105267, 0.0017386867781578944, 0.02049815361294737, -0.00913410340657895, 0.01556748598855263, 0.0014741332142105261, 0.00888697265651316, -0.008259757955789475, 0.010162209150921054, -0.015258628212236844, 0.007913002543421052, 5999896474736846e-19, 0.010361211858157896, -0.005668571334210528, 0.009625429015263158, -0.0104467670125, 82077470868421e-17, -0.0016111464500000003, 0.011819657311842107, -0.010997043170815787, 0.026556267275000003, 0.006691072826710528, 0.020695954338157893, 0.003105390495, 0.007586750871802631, -0.006386726654605265, -0.02003319237539473, 4345854440394738e-19, -0.008994508450263157, -0.026183591028947364, -0.002199864392631578, -0.0028300363084210523, 0.008933973642105263, -0.004872168878026316, -0.010508434657894736, -0.030814126236842106, 0.003977499332947367, 0.003367798314605263, -0.008800812126184209, 0.03421133572763158, 0.036882231234210514, -0.009774976162894739, 0.014867376786052633, 0.01847335194828948, 0.004703114508157895, 0.004981278706842106, -20820300881578947e-20, 0.0023825047832894738, -0.006051949050131578, 0.005748253940526316, -0.048717287638157886, 0.006936276815973685, -0.00717120160088158, -0.0011371543828947368, -633878522763158e-18, -0.009472156436842108, 0.004011299037763159, -6579590755328946e-19, 0.006974676819078946, -0.005393841788815792, -0.004757979923842104, -0.0033050710856578945, 0.011350404267631583, -0.007076194413157896, 0.0017202756382894743, 0.012773173556842102, 0.0030848825621578946, 0.0027823394973684207, -0.00670719708276316, 0.005835784166710526, 0.006515324253026317, 0.008066022838947366, 0.001960170838894737, 0.0051619980871052615, 0.0026211382473684216, -5182459471052627e-19, -0.0027954785167105234, -0.004234536522631581, -0.009315601918947366, 0.008809953131578951, -6880571447368561e-21, -7682047319210527e-19, -4287664078947533e-21, -0.008450649188421052, -0.0035262061703947374, 0.012014457226315788, 0.00802163259636842, -0.014263569363815795, -0.001529443673157895, 0.0038201108919736853, -0.0021061006564999994, -0.006485662478921053, -4953983351315789e-19, -39382826565789427e-20, 0.0028122849150000006, -0.012065431929342112, -0.004557107439381579, -0.004202265546447372, -0.006648211306315786, -0.0026814599381578944, -0.004716990799535528, 0.011677914061486841, 0.0054311442510526315, -0.009687709625394739, -0.00401446957026316, 21303643315789461e-20, -0.004548820044210527, 0.001488740388592105, -0.008498280648552632, -0.009067142177105258, -0.001475207605789474, 0.003382969827236843, -0.003364108026184211, -0.015231927833026314, -25714068360526294e-20, -0.009678724665486842, 21494394868420982e-20, 0.0069928910540789455, -0.009154249508157892, -0.014927330287236848, -0.04244073076315791, -0.009253368699736841, -0.007564927833815789, -0.006217242748684212, -0.007667895968815788, 0.012352994166578951, 0.005073167429381579, -0.005000820531315791, -0.01045439083394737, 0.0015025571015789476, 0.0064443839557894724, -0.007921140097105263, 0.01298356292368421, 0.022927954959605267, -0.005738576246052634, 0.01002808020881579, -0.0017933789327631581, -0.0036308607342026324, 0.007852910432894737, 0.008723654298289477, 0.005285313737631579, 0.013029228591842109, 0.0033245363744736855, -0.00546107157763158, -0.01238937413552632, -0.014016715163947365, -0.00480338421131579, -0.017565224993223685, -0.0010297757147368421, 0.0190754480131579, -0.016528817848684218, -1554027478552634e-19, -0.0033909335259210555, -0.02275056143078949, -0.012455294898723683, -4695065194736842e-19, -0.019497075148026316, 29407749652631535e-20, -0.004932486893276316, 800515078947368e-20, -0.019466739034210534, 0.0011483287201315788, -0.006102988706842104, 0.004115763767592106, 0.004177756370252632, -0.002618433127763157, -0.00537044665544737, -0.011829460742671057, 0.00692578045657895, 0.006913495407763157, -0.0012394369451315791, 0.004177181062190789, -0.004855147448592105, -0.009354103443947366, 0.008475817234342108, -0.0060853426540789495, 0.017770833389999994, 0.010468942911184213, -0.006522560685973683, -0.015092426563342105, 0.008636236548684206, 0.004441229959605264, 0.005320611943289475, -9800074276184207e-19, -0.010191143523026322, -0.007796377074999998, 0.005595688935526317, -0.0016283605736842112, -0.012121330430263163, 0.008727131922578948, 0.002284515743368422, 0.002682018403026316, 0.02112667354078947, -0.013087226411842108, 0.011961740068421057, -0.0029621327447368426, -0.00711086599605263, -7157445806315789e-19, 0.00296389472118421, -0.002106245437236842, -2060961381578952e-19, -0.0023762942430657894, 0.0067748971048684214, 0.02305358949394737, 0.024209113952105267, -0.0010323672338157883, 5835666469736843e-19, 0.0011928865788157893, -0.013926641433421053, -0.0010454462015131592, -0.008992499685921052, 0.005833304399473685, 0.007247240086842105, 0.007005285494078946, 0.00532119499868421, -0.002409817022763158, -0.009118484332407894, 0.00902553582131579, 0.003644393953815789, -0.001458669926578947, -0.007759722557236839, -0.015974711869276317, 0.005593415395263159, -0.00699891096894737, 0.013671992413157898, 0.0030071592296052633, -0.00725996611631579, 0.00831834310973684, 15080351578947707e-21, 0.010492338298289472, -0.011587350163157897, 0.007662332826842105, 0.008755792813026311, 0.007074787369210524, 0.01825972633684211, 0.005628270758078947, 0.013933462579342108, 4695127519736841e-19, -0.016538577678947376, 0.013688757842105262, -0.00958296806763158, -0.01084689514210526, 0.004655695267894736, 0.002764839804828948, -0.008966435890710524, 0.01818742012328948, -0.002021167613421053, 0.011088005707894739, -0.003949641440789475, 0.016206056167105264, -0.018271099290000006, 0.012128778174342108, 0.016409871427894733, -0.005132905442789474, 0.013977325583552627, 0.0027061513397368423, -0.030432116805263153, 0.009202131592500001, -0.005219011863552631, -0.02768622942105263, 0.005146511143078947, 0.016741514684210528, 0.008617631309868421, 0.001446558946578948, -0.010973319831578945, -0.002393318402447369, 0.0025146223098815794, 0.002058704305, 0.009670727197499998, 0.006972026925486846, 0.007941592818026316, 0.006313998498157896, 0.004550358204605262, 0.019503475739868426, -0.00808706035526316, 0.0014521665658289477, 0.008814657770526316, -0.0034991419792894736, 0.001152647225789473, 0.0035165233944736848, -0.008015521834605265, 0.0030662299349999986, -0.008316208095789476, 0.0018460274468421055, 0.010874037769736845, 0.0019301458946052628, 0.014981398493289479, 0.0063040013951315785, 0.0011182811667105259, -0.001531185306381579, 0.007286755069710524, 0.007252432990381575, 0.005447569480263158, 0.005672717215565791, -0.011183678003684212, 0.0010281094409210528, 0.0037040489348026313, -0.018558228386052637, -0.0024118456417105264, 0.001912976863157895, 0.004824422551335526, -0.007085397379605263, 0.010146420386052636, -0.012797370635526323, 0.005280684883421054, -0.007430231397421052, 0.0012657216987105263, -0.003414122816315788, -0.001953577547894738, 0.004944337450526315, -0.009499839262763153, -0.007726497248157897, 0.02043591631578946, 0.005235241476657896, -0.016428867193421043, -0.02316521289473684, -5283661032894735e-19, 0.0039097042727631575, -33895851092105274e-20, 0.01083217157236842, -7426432255263161e-19, -0.00391929611618421, -0.007359749506882893, -0.0035571319606578938, 0.012559667453289472, 0.0058923027007894745, 0.015785403049999997, -0.013460644672368413, 8476099292105275e-19, -0.0033159500932236833, 0.008975023673552632, -0.01474813875868421, 0.01023825899394737, -0.01589566984736842, -7458934167105253e-19, 0.015296658677631575, 0.008350472782171053, -0.01303794148592105, 0.009825855495394734, -0.0031653390423157907, -0.0023992715984210533, 0.012867784544868418, -0.007730846508157893, -0.008233608065789473, -0.00578186875105263, 7660654657894731e-19, 0.007309484258749999, -0.004728002686184211, 0.024414807685526316, 0.07103057530263161, 138350805131579e-18, -0.0227730847868421, -0.002000239483157895, -2523412961842105e-19, 0.0036002593248947363, -0.00960461145763158, -0.014719047412763165, -0.010525172183026317, -0.008946292160657896, -0.00487614558486842, -0.015348885583552638, 0.005484280077631576, 0.0047399032012368425, -0.011332118468552635, 0.018375535672368423, 0.0028248364129736837, 0.002669773003710525, -0.013733811623947365, -0.012085463925657897, -0.005202895044802634, 0.0011071545386052636, 0.002822448957105263, -0.005775769501039475, -0.007958374655000005, -0.012961527270999999, 0.008736424775394736, 0.001623934084342105, -0.0029857376405, 0.006539750386447366, -921088730657895e-18, 0.01011317570105263, 0.004816758724236842, 0.01006797531394737, -0.024919923669736846, -0.013252434965131578, 0.004975805359868419, 0.0028436151710394737, 0.026767861371052633, 0.01679312495263158, 0.0029180558214473695, -0.01334025122631579, 0.006395531258157895, 0.012167909879868426, 0.0010437845743947376, 0.015899900866315795, -0.015891970886315786, -0.007016795418947369, 0.005720414304868421, 0.014279509605394737, 0.011842180225789475, 0.012174502878815788, -0.004032991572842103, -0.01191846249868421, 0.006569720230394738, -0.007758679420881577, 0.008243021787499999, -0.0056768207752631574, -0.010259304986710528, -0.005975154729605264, 0.022218811560526314, -0.01284212495, -0.0043886743385526325, -0.007587261113289475, -0.00100997453736842, 0.007466683218736842, 0.0017474622250000002, 0.011411024255263157, 0.007287669592105263, -0.011071793518989473, -0.007791523718026317, 0.0024424171717105266, 0.010883432589473684, 0.017893625253684212, 0.008674725273447368, 0.00948412372276316, 0.004439929401005265, -0.012966921410526314, -0.009952035897894734, -0.009481836221250003, 6631337719736842e-19, 0.013784739155921056, 0.01274559315868421, 0.015312255263157895, 0.014739994169736837, 0.001961665102973683, 0.016666361813815787, -0.01601210714707894, -0.003862630162710527, 0.0017456178976315803, 0.002383359211842105, 0.005658344708289475, 0.02028012731447368, 0.0038586854298289478, -0.003930425682236844, 0.005947570116842103, 0.006645788041973682, 0.00593962558863158, -0.0055098527475, -2709300878947366e-19, -0.02526451096052632, 0.0034957235959210526, -0.004797192927499998, 0.010852291108092103, -0.0024250138515789464, -0.008193180311052631, -0.006060304734868421, -0.005015898619736843, 0.009915213199078949, 0.0049576433317105265, 13137401934210517e-20, -0.011906290325000004, 0.005487915484868421, -0.0026353010490789476, -0.006053524171552631, -0.01679510672763158, 0.0019228737013157898, 0.01702610227171053, 0.007407213732763154, 0.001119691041315789, -0.0041095490676315806, -8301038464210527e-19, 0.0033998062114736845, 0.010597575788947365, 0.014257269136842107, 0.007372944618421052, -0.0035281079432894734, -0.017203723107131575, 0.004068165850842105, 0.00382046129631579, -0.011138788382368418, 0.01527541427763158, 0.01094105444394737, 0.003186118735263158, -0.011153858221842101, -0.001682062516447369, 1102902368421087e-20, -0.007634609815394738, -0.0024121695576315794, -0.004676494936184211, -0.004374885159342105, -0.004125291510394737, 8512605788947367e-19, -0.015911860113236847, -0.01630071632578947, 0.0075893821925000025, 0.016570409282894737, -0.0028060973136842106, -0.010812139536144735, -0.0035154795997368424, -0.007599472084868421, -0.0027118450077763152, 0.003790211149736841, -0.0016624428627631574, -0.006025105557500002, -0.00271212489868421, 0.004819238931578948, -2838972343421054e-19, 0.008508885079999997, 0.0037412741409736843, 0.003480958837938158, 0.01989113539539474, -0.007170555643552633, 0.007131082274999999, -0.00324891509618421, 0.017624990426578946, -0.008696587564605262, 0.009625076661710525, -0.003385572580052631, -0.0011940798148684204, 0.013382737070394736, -0.0019341717852631578, 0.014078404609210527, 0.006157531654513156, -0.00436843442881579, 0.010804814319078945, 0.016877812977368414, -0.004866282633157894, -0.004019908407105263, -0.008622002943026319, -0.001156913919736843, 0.00860937810460526, 0.00854736410960526, 0.006645876394210526, 0.006044397847105263, -0.0029129494269078955, 0.005728795454605264, 0.003868690374868421, 14415561068421056e-20, -0.011550837929210526, 0.0024273528732894744, 0.01675736555552631, 0.008618001551842105, -0.009086696278947369, -0.0019255664260000005, 0.017823474286842108, 0.023852092268289476, 0.005640211945657894, -0.0157103212696579, 0.002671248446973685, 5732126974736841e-19, -0.003747782739723685, -0.015167234880263156, -7942613815789339e-21, 20631670931578946e-20, 0.005739634929078944, 0.008089517185263155, -0.005618019369960528, -0.004716671923026316, 0.002440650008157895, -0.013887452536578948, 0.010245098745394738, 0.011824351372763156, -0.005547870031710528, -16388543065789472e-20, -0.0074466632465789466, 0.00498810127631579, 0.015039879665789478, -0.0040669246943421085, -0.005869341766447369, -0.024218201709868412, 0.001695024713552631, -0.005041553392631579, -0.00783228454736842, -0.005132145636842107, 579431247268421e-18, 0.0026811771932894746, -0.007146641212236844, -0.008457516277105264, -0.015692255188223682, 0.024690377132894726, 20765250613157882e-20, -0.0020539644646052624, -0.005768370673684211, 0.003702322850921053, 0.004201434479473683, 0.0028723328136842103, -0.014360589550263161, 0.003967806877105263, 0.004476002342671051, 0.004944308020131578, -0.01157276546618421, -0.009082047036973684, 0.0036693403972368425, 0.009826728072236843, 0.0074656336861842094, -6485088782894734e-19, -0.0014051343403289473, 0.007369758026842101, -0.010425479788289477, 0.01821328323157895, -0.012023113507986844, 0.001740522146710527, 0.005332594062894738, -0.001378770888421052, -0.015753834223815794, 0.0076369660996052635, -0.014926969834157896, 0.0038507784668157883, -0.0041886614165, 0.005354455710657894, -9931518065789487e-20, -0.002756159138157895, 0.014061157835657897, -13951124842105257e-20, -0.013132667226578947, -0.0019348305806052633, -0.009907254651973684, 0.009314450074276314, -0.006995864365000003, -0.004312180836447369, 0.004297729036710528, 0.0047553823486842116, -0.00931211325394737, 0.021702308997368424, 0.007112765311718424, -0.008150883757249996, -0.0015760545419210529, -16017972894736844e-20, 0.0012709232195131578, 0.008913342906302628, -0.009902096786842104, 0.03158665600926315, -0.0043072190056578944, 0.007661704021052634, 0.004888625593815791, 0.003962992540921054, 0.004328961708421054, -0.0062252458030263155, -0.0073411886288157905, -0.002077252053605263, -0.011778288789210526, -0.00824901193289474, -0.0036174059680000002, 0.008596170780328946, -0.007529505605394737, 0.00450591202768421, -0.016162284833421053, -0.006285099551315791, 0.01741020744342105, -0.004753392869697369, 0.004862889815131579, 0.008373598259, 0.007595550645657895, -0.007107993389473689, -0.008475462659473682, 5595674320263158e-19, -0.0034365798056578915, -0.016078184318421052, -0.010819015256052633, -0.0018932811597368428, -0.0060824286468421015, 0.009014217587631579, -0.005298673378684211, 0.0020203203051710524, 0.0023555486237763156, -0.011414600681763159, -0.029000318375131576, 0.012605560375, -0.015203555485526316, 0.013647403227894738, -0.008804857755526316, 0.008642128292289471, -7019206473684211e-19, 0.028421054261842115, 0.010750185311184211, 0.004273382298328947, 0.014962174191052634, -0.0091029727825, 0.004545577043947365, -0.005067943168815789, -0.008576309225131579, -0.009371516520921051, -0.003953041012539474, 0.0026335486594868413, 0.0010443595075789475, -0.006137380078947367, -0.019068207819210526, -0.0066171946843947395, 0.0154603859943421, -0.03956156613026316, -0.005423286051376317, 0.0064764647446052615, 0.017917068601973684, 0.018834929819078944, -0.023795076729473678, -0.005232680938421053, 0.007063256785526317, -0.002471332747368421, -0.005540072479078948, 0.0030247992273684196, -0.041372428210526314, -0.022792676082894738, 0.01496056775592105, 7162006171052637e-20, -0.0054049346089473675, -5917285729473686e-19, -0.006140541838736841, 0.01165498020263158, 7520184688157894e-19, -0.004048719246052633, -0.004093513149078948, 0.001113782621578947, -0.00515289844513158, -0.014532121503749999, -0.005462963103684211, 0.002013934241710526, 0.006934004597374998, 0.011849665684605267, -0.02845128821973684, -0.0027645604678947374, -0.029641802678947365, 0.005846543234157898, 0.004001273209868421, 0.009660376192697369, -0.01431830397552632, -0.0034636234957236833, -0.015780388346842117, -0.0061515257567105255, 0.011677517784078944, 0.011294756013947365, 0.009406988080263162, 0.02362260060394736, 0.006315555671052633, -0.00983715779947368, -0.012793336953947368, -0.010380582411513158, -0.005019749015, 0.004049450225131579, 0.017717702139473684, 0.012014558753947363, -0.004216072575789474, 0.012309840076065792, 0.003926167156578947, -0.011685566748684212, -25353602302631577e-22, -0.005299348902368422, 0.007730379013289471, -0.0027699679941184216, -0.0069104686293421065, -0.002654266115921053, -0.012859640121842106, -0.0107146154105921, 0.004399860249078947, -0.006205988169868421, -0.002287691709381579, 0.0022477117532631575, -0.011032372216710525, 0.0038386147140789476, 0.017001313835526322, 0.003409522446052632, 0.0038818556153947365, 0.0010723420983289483, 0.007902039610460527, 0.0023776093863157894, -0.006922669011657895, -0.012493596986842102, 5051128443421054e-19, -0.003519559938197369, 0.009428645297631578, -0.0010605874422368415, -0.008557814389473686, -7813989881578948e-19, -0.008372406573684214, 9731762513157829e-20, -0.008460361298552634, -0.0022174336363157904, -0.008624776876973684, 11917679249999991e-20, 0.006416730669828947, 0.008520198330263157, 0.012873614050657895, 0.011955042275394739, 0.01041146601725, -0.007033908750526316, -0.0016643551606578938, -0.011975207748157898, -0.010176406554210527, 0.0046722559355434215, -0.019248556189473687, 0.012035626013513158, 0.005876074411052633, 0.0023601008795000006, 0.0017393916595131586, -0.006760177633552631, 0.0037472353740789477, 0.08577118239473684, -0.004266319282368422, -0.0071308153913157875, 0.002913963492236842, -0.011218220720921051, 0.0016349006751315786, -0.0019050253921052633, -0.003319563322894737, -0.004499976557500002, 0.009833074842368417, 0.007605858973947369, 0.005772069280921054, -5503060188947367e-19, 0.013013069021578944, -0.0034565342047368423, -0.01143237421848684, 0.01110795669013158, -987561984539474e-18, -0.006423849459473684, 0.00217356449263158, 0.0010567873492894734, 0.014532239263815788, 0.010447370052631582, -0.00759626205513158, -0.0022266032110526313, -0.008538287243881578, -0.01131031077157895, -0.015313536264473682, 0.005158005157763159, 0.0030549536626315785, 0.004764115755657894, -0.012034718590789474, -0.006626763940263157, 0.009110119795921048, -0.002301413071921053, 0.015578638884210528, -0.005167726482500001, 0.02117604996315789, 0.008285337067996052, -0.007844231455157892, -0.01983585482868422, 0.008469638907236843, 3119132776315813e-20, -0.001960619750092105, -0.0174250582075, 0.0024971948229210532, -0.009844892709210526, -0.00997894878157895, 0.008923550396710523, -0.015006534729868421, 0.010365114785526321, -0.01453934758578947, -0.003352099966710527, 7359328694736843e-19, -0.010912618383552628, 0.00553644026263158, -0.0020364845940789474, 0.01638792804421053, -0.002702654283236842, 8317131059210523e-19, -0.0062164165, 0.01416901248881579, -0.001157289313026316, 0.0015120998847368426, 0.018197012598026318, 0.018230856374999993, 0.0013759326027105259, -0.0022414605464473685, 0.010594263889473684, 0.0032048177697368407, 0.0015967663478421053, 0.005898981746447367, 0.0026566908555921056, 0.007526576979868416, 0.006680355165921054, -0.010573069984868419, -0.0037745313918421054, 0.005754974540473685, 0.008721350822763157, -0.004220488521921052, 0.007543852856315786, 0.002001725290789474, 3765012028947365e-19, -0.005974376834473688, -0.007132448870578947, -0.008149476120263158, 0.020858640447368428, -0.0026150683706578945, 0.0025981752977631586, 0.011055772810526318, 0.006417484732236842, 0.02127346352631579, -0.010789793555, 0.0018354179835526315, 0.01635032267421053, -0.00914016103246053, 0.00721719150447368, -0.011749975486184212, 0.007983058785, -0.0025599285438157905, -0.02525250945921052, 0.016565419086578947, -0.0049727678667105275, 0.016954254666710526, 0.0072252290184210526, 0.00663506177881579, -0.016708790731052633, -0.019179279734736834, 0.0036575822153815793, -0.0036278681642105243, 9362055535526312e-19, 0.003667399366578948, -0.005599063442105262, -0.001710235229973684, -0.0020441094883684213, 0.008895651518289471, 0.011197020705263155, -0.0096675727705921, 0.0048109815131578935, -0.009713690278157895, -6161499026315836e-20, 0.013903376549342109, -0.0037505515171052627, -0.004402282192631579, -0.00803135064986842, -0.0022901599207236834, 0.0028172990298684225, 0.005441962186973684, 0.008157506930394737, -0.005246615045631578, 0.0017373259923157893, -0.011001224905657895, 0.0012983470696052632, -0.01309617162052632, 5287650694736846e-19, -0.012678124126447364, -0.004449979991315788, 0.013012943638552632, 0.002311609178421053, 0.00852208751355263, -0.0021326908651973695, 0.006498695877500001, -0.012073736925131582, 0.010822192646592104, 0.004732820625263159, -0.003690172558684211, -0.009818942454868423, -0.00727969328513158, -0.01263686636618421, -0.003183486671921052, -0.009880075140921055, 0.002198814761578948, 0.013470662695263156, 0.00607287450868421, -6002962989999996e-19, 0.008114174997552634, 0.011275753842105262, -0.005673379224736841, 0.0031662297654605257, 0.0028777117961842117, 0.008016936837894739, 0.0017901154897368426, -0.006646555544013159, -0.008096424208289474, -0.006122036452894737, -0.0057617752151315794, 0.0011516110418421056, 0.0033034063114473684, 0.001144898634342105, 0.015016336455263162, -0.005089427256578948, 0.011095485811210526, -0.01487947794381579, 2754231664473685e-19, 0.01434458742828948, 0.004142680879736844, -0.008173420285131577, 0.009047083722894741, 0.006638912060921054, -0.010928462396842106, 0.005584001594493421, -0.006758851203157896, 0.012239943157835526, 7178325472368416e-19, 0.004164529241644737, 0.006919659793157895, 0.0018766501502631577, 0.005851904381052632, 0.01649575659144737, 0.018543284467894737, -0.004570943860131577, -0.014199454217763158, -0.004522597645789472, 0.01323128955736842, 0.009430725228289473, 4302028357894734e-19, 0.014124286351315792, 0.0014682764307894735, 0.014347456733684217, -0.004273947661315787, -0.005397340513289473, 0.004777006242105263, 0.0014340101824815783, 0.004214361838684211, 0.004253698227473684, -0.005495129646250002, -0.004944426877631579, 0.001132264872631579, -0.025759664019736846, 0.01343974873236842, 0.007074848766842105, -0.017592669572894747, 0.0017375639004473685, 0.015513802537763154, -976651714342105e-18, 0.006099546812236844, 0.009297965083289474, -0.006545829302368422, 0.002187739041315791, 0.003335506018026315, 0.0021257748652631593, 0.007083832225526319, -0.00821666152184211, 0.008502307442157893, -0.0012726394867368417, 0.003975927348552632, 0.005120596614473684, 0.005579327967368418, -0.0076789852039473696, -0.021034838578947373, 0.007545610900131577, 0.011339017010394737, 0.01220300189605263, 0.012834558334486842, 23943841328947444e-20, -0.012060543739868423, -9013390900000001e-19, -0.007001447220394739, 0.001807072239342103, -0.007920413789473684, -0.014183284144078948, 0.0032435898167105224, 0.007661070786578948, -0.009576734622368422, -24735532930263165e-20, -3279625464473687e-19, 0.00592114891631579, -0.0031360228920394744, -0.004423669705131578, -0.006236715882473684, -0.01428929095, 0.0012041522547368432, 0.009992463885789478, 0.014660581713355257, -0.012100258024789475, -0.0041604909128947366, -0.0022737396475000005, -0.005318546005078945, -0.0019765347979631576, 0.001943228074394737, 0.01009488755486842, 0.006165831676578947, 0.0018300388325000001, -18122561157894723e-20, -0.020566950382894744, -0.006887413951872369, 0.004043231116447368, 0.014405956009276313, -0.004649199056078947, 0.016667253566842104, -0.012720103426315793, -0.004804016313157894, -4011695289473683e-19, 0.004846170921052631, -0.0016384565850263162, 0.017794608296052634, -0.007291804857605264, 5409149652631579e-19, -0.005412328068421052, 0.014002738125526317, 0.007782216855789474, 0.03379361171052632, -0.0037693036657894725, 0.006207439997131578, 0.011665550201763155, -0.002727257783815789, 0.006404820097236843, -0.007757448749342103, 0.00321114124381579, -0.005974114834342104, -0.017798501374999998, 0.008996167303710525, 0.004107372101447368, 0.007539583035263157, -0.0014233594372368415, 0.00381117836013158, 0.008256078101842102, -0.0018291068210526304, 0.0019358302312894743, -0.010674378317894738, 0.0065658293554078945, -0.007450003366710528, 0.004437219244605264, -0.024618154752631582, -0.015038326359078957, -0.00463826566381579, 0.007930537400131579, 0.004519121789078946, -21704581684210515e-20, -0.007922356677894737, -0.011271936131578942, 0.006213316302368421, -0.001811201335361843, -0.06298805399342101, -0.003931348754999999, -0.002375323733289475, 0.006955065128421053, 0.011551465797368423, 0.005049561330973682, -0.004226440632631578, 0.001415731466381579, -13998377784210452e-20, -0.0011909930659210531, -0.002045448113026316, -7439456209210522e-19, 0.008089150971763161, -0.007385254353552632, 0.0017794121346052629, -0.0021466796694736847, -0.007901907795526318, -0.006739856069736841, -0.0031380352994736845, 0.0076046099585000025, -0.011527594351315795, -0.0020396639011052635, 0.001525548389342105, -0.006094216933684211, -0.0014722651828947364, -4518903077631577e-19, 0.007140101749473689, -0.011676537059210524, -0.019966328755921053, -0.0024167389288157906, -0.008110973655078945, -0.010138389487328942, 0.004652459228947369, 0.003344180307855263, -0.00269698604401316, -0.006219439502236842, -0.012621290809263159, -0.010441855874605261, -0.001525004825868421, 3106502772368417e-19, -0.02632054453157896, 0.014578032460263153, -0.004134980474473683, 11510845465789741e-21, 0.0062397942408684215, -0.0063305206980263165, -0.0032845915709868406, -0.011880825206578951, -0.004127339640789471, -0.005412744576842107, 5791435789473685e-19, -0.005604593690263158, 0.01140999920789474, -0.0035105268881578944, -0.005644377784736843, 3777405411052633e-19, 0.006655294573118422, 0.012310034789868423, -0.012314680914342105, -0.004660671697236843, 0.019227642512499997, 0.012370556660526312, 0.0018540437435131578, 2843068044736842e-19, 0.0029149404551315795, 0.001349117293078947, 0.004231145650921054, 0.005014896011447368, 0.0030759806921052636, 0.002634996195394737, -0.02146838184355263, -0.023354627235526327, 0.007463801508881578, -0.044740355858815806, 16885995480789474e-21, 0.0018187605642105266, -0.0028608081773684206, -0.019586663092236847, -0.005291358396439473, -9306446955263162e-19, 9336062423026312e-19, 0.00640387573013158, -0.05765600515921052, -0.0010193050008289466, 0.0029813614198157894, 0.0017824373404078948, -0.006496215178552631, 0.024087691802631577, -0.010348639678947369, 503021751973684e-18, -0.009403571023947366, 0.012732326389460522, -0.005403565589605263, 10905120605263125e-20, -0.008504000929605262, 0.006370600620263157, 0.018242643109210525, 0.009379113575526317, -0.01214825572302631, -0.0015711109278947369, -0.0020749150806842107, 0.0051656843653947355, -0.015150247375526317, 0.0034633881215789457, -0.0023204803727631573, 0.0013554988172368421, -0.00916673603631579, -1386599248684208e-19, -0.011236653686842102, 0.01057515615355263, 0.0038270946907894747, 0.0032054099676315792, -718647992236842e-18, -8057763245394725e-19, -0.004644138220394738, 5584668676973688e-19, 0.004134472640657893, 0.003242992475139473, 0.004408569986710524, 0.006886769568421052, 0.0022040188868421057, 0.004717420271184211, -0.010944220514868425, -0.01496134418960526, -0.004904572456118423, -0.0029349479123026317, 5269890798684209e-19, -0.018642433568684214, -0.0014636822255263157, -0.0032874282358578933, -0.005220993034210527, -0.001006430675144737, 9930258057894734e-19, 0.01337606780197368, 0.009240478431184211, -0.01117918292618421, 0.015037270521710534, 0.00705424925763158, 0.004022910573421053, 0.004511536920394735, 7300990415789472e-19, 0.0025198337564868423, 0.004174408284605264, -0.006822327408157894, -0.012508884771973679, 0.0018977242146052643, 0.00169175941868421, 0.00914618583809211, 0.00616711017276316, -0.016066297167105267, -0.007600618392368421, -5936514901315801e-19, 0.009191851769736843, -0.01048495533644737, 0.0039003314751315785, 0.010082093744078946, -0.02150961690736843, -0.003076141387631579, 0.01795051239210526, -0.0016097397646052626, 0.006738568165394737, -0.01008712938552631, -0.0023239680332894736, -0.0023542645427631586, -0.007415254536973685, -0.0017370888950000002, -2142969864736847e-19, -0.0019526079594736842, 0.004812759554289475, -0.003177666265657895, -0.010193668303157894, -0.008950753272763155, -0.012276084238157898, -0.013801354708684207, 0.013260181611973685, 0.005137841782236843, -0.005623419413947369, 0.002380635332763157, 0.020261579571842093, 0.0025086264638157895, 23285078407894738e-20, -0.013896984565526316, -0.002813308350394737, 0.006464827561842104, -0.0017387912031578952, -0.009293710947368423, -0.002234433483973683, 0.0029236971019736837, -7009606947368418e-19, 0.004321338025526315, 0.011410774383157896, 0.0019641712277631575, -0.0032173488855263156, -9017514617105258e-19, 0.02536431413421052, -0.0036204208476315796, -0.0045066121440394714, 0.007895695332842106, 0.01375771906894737, 0.0016665629351973685, -0.009256044322434214, -0.010135795456671053, 0.008737079069078947, 0.0034428967317105263, -0.010638219975263161, -0.004573688986184211, -0.008506904400102367, 0.0025543856753947364, 0.004874314954210525, 0.010396809270921051, -0.0018452750817105265, 0.01090056822052632, 0.02098761590078947, 0.009814058689144733, -0.0029276505494736844, -0.010893099969697373, 0.01975842706710526, -0.010948870352592106, 0.0058412445308815815, 0.015515693848684214, 0.0020952677422368424, 0.008907295886842106, 0.00873527318223684, -0.006631097216973685, -0.01977647116223684, 0.010740387438947363, 0.008736050202499998, -6532119030263152e-19, -8522597289473685e-19, 0.007881729391184214, 0.007262564786315789, 0.009642556828684206, 0.009887033669644734, -0.00506204858236842, 0.00914667588671053, -0.005646160281184208, 0.0015682480643947365, 0.007187644667573682, -6413499337828947e-19, 0.0014132899411842103, 0.0017755321165263149, -0.007160940067000004, 0.012367878591973682, 22851084263157844e-20, -0.006308410619078947, -0.0015791580263157898, 0.00442315712593421, -0.006452675031118422, -0.009020969568421053, -0.011030041889539469, -8780194159210523e-19, 9627984798684214e-19, 0.00363151196994737, 0.02183342311710526, 0.02024013596973684, -0.012353824388684213, -764319970657895e-18, 0.002105059234210527, -0.0014566305570592104, 0.002706323287631579, 0.00607090862407895, -0.009545597578157896, -0.004247753485894737, -0.0176261248381579, -0.0031491103884210524, -0.003108941359539473, 0.015593445543815788, -0.04427306710881578, -0.0020792380994736847, 0.011489951907105264, 0.006966976375342106, 0.0015082572486578947, 0.007737702031710525, -0.00655683788473684, 0.007863643000657894, 0.002917634675013158, -0.004152638770789473, 0.005619210159473683, 0.005586618189342104, 0.010026886728421051, -0.004179918709473686, -0.005501686800131579, -0.00604261921421053, -0.0071300491338157895, 0.014459129589473686, -0.0037379425788157897, -0.0020940462386842117, -0.00957774127394737, -0.03357854765131578, 0.025668219275000004, 0.022622876078947373, 0.0022629713582894718, -0.0026858775323684216, -0.0017051095038157894, 0.003815842962894737, -3828872972368422e-19, 0.0026066615468157894, 0.012387053006578948, -0.006318214374868418, -0.007521578666315793, -0.01284997625631579, 0.012826012949078947, 0.0010223195625, -0.011615881295131579, 0.0022139161670263153, -0.002016348744078947, -0.0028064120447368417, -0.015572008834210525, -0.0019618904405263164, 0.00544554776289474, 0.009761993845921054, -0.012984902144736842, -0.014145811457894734, -0.008978529723144736, 0.004056017691315789, -0.011844596710394733, -0.0059587758225, 0.007508870492105264, -0.005443937433289474, 0.002935879441578947, 0.01486225123960526, -0.005532202826052629, 0.005462015192631581, -0.02565744589868421, -0.008383098813815791, 0.003647495577368422, 5357671111842098e-19, 0.01166961910486842, -0.006377186925131579, 0.0127008994825, -0.009436918356578944, 0.0020323967420921053, -0.008456428355526319, -2027747211842104e-19, -0.0030937144914473694, -0.011085721413078948, -0.009645654179210527, -0.014846991478947372, -0.0035684288476315797, -0.011654160063684214, -0.01581150187026316, -0.016840036789473687, 0.013057866414473684, -0.008234539141578947, 0.0053163960105263195, 0.020490004785526317, -0.00960410656486842, -0.006657243668236841, 0.010736420357105264, -0.01748494961973684, 0.0011016242359736844, 0.005718755139868422, 0.006338006613157893, 0.0038684128078947367, 0.005595157857631579, 0.017694987824210535, 0.017391755352355258, -0.003702699658552634, -0.005022188236513158, 0.01342638474771316, -0.0043205563098684206, -0.0028454328957894745, 2592531746052632e-19, -0.004767219290789473, 0.013560908384539477, 0.005906873550263159, -0.009617733145394736, 0.003591151950263157, 0.005010814367368423, 0.0012510964286842107, 0.0028993149072368417, -0.0051906266312368434, 0.00729437020368421, -0.012531499855657886, 0.020476676778750005, -0.009869155927894734, 0.0025973456112368416, -0.021903372915789476, 0.008153542140921052, -0.006835870289605262, -0.010486773017592106, 0.017626112727631586, -0.004606312977368421, -0.014957404596052633, 0.0020897874979618424, -0.004724369788980265, 0.021548606073684213, -0.0019029721914473681, 0.006200722453289475, -0.003450824262276317, -0.006826156169210524, -0.010176031075657897, 0.024789349911842107, 0.003143936896315789, -0.004955119694078948, 9158874664473686e-19, 0.0052856249526315804, 0.01390172287763158, 0.004978571828947366, -0.0032051206281578947, -0.007972612475236842, -0.007769723397631579, -0.00202725623381579, -0.003416697538776315, -0.002556709217407894, 0.0184408019, -0.01105052606855263, -0.014664148855789474, 0.003882449320657895, -0.012429670850921054, 0.013084466028552635, -0.04336451231578946, 0.0074979511960526326, -0.001663643616907895, 0.008059816289473682, -0.011445970542105267, -0.004167850928697367, -0.003230411173657895, 0.02097656965710526, -0.011578596098421053, 0.012013696860657893, 0.001233423443421052, -0.002649905661144737, -0.00883562393153947, 0.0015486095338157892, -0.010413099061842105, 0.013987708639236847, -0.0038697919174999996, 0.006219689598421055, 0.006652394345230264, -0.005381284718815789, -0.0037626181478947387, 0.01059816618401315, 0.003220842913421052, 0.0035804951468421044, 0.010183990906447369, -0.009547694365789472, 7697464371184215e-19, -0.011326520949342108, 0.036538593302236834, 9323258973684188e-20, -0.008973688185921053, 0.00706366331381579, 0.001107784416394737, -4910452642105268e-19, -6440596276315794e-19, -0.0036792987653684202, 0.003713873318157893, -0.004735835042960525, -9658112065789478e-19, -0.043979574686842084, -0.0016790318328947353, 9925788503157894e-19, 0.018722528654473682, -0.0021518665293421054, 0.0035296605411842103, 1413653897368415e-19, -0.017016988203947366, 0.004561038191973685, 0.015442165966184201, -0.007485759814473685, -0.017065918415000002, 0.009342482221710524, -0.0020734458669736835, -0.002520825664789474, -0.021231756026315784, -0.010013884122368423, 0.009265903680263157, 0.008139276791052632, -5609036057894738e-19, 0.015773905215697364, -0.001884182508960525, -0.0024270794468947356, -0.00422654353631579, 0.006008762833684209, -0.003698271740263158, 0.016081907390789473, 0.030718033629736848, -0.007108369866842106, 0.00527163336881579, -9271790684210529e-19, 0.0068789392490789456, -0.013093138075605264, -0.012924308120526315, 0.00556886656968421, 0.0033076618509210527, 0.0017935490473684217, -0.008094466807394738, -0.01079597931, 0.01151358625263158, 0.00893792486236842, 0.010344446836842108, -0.00719051074644737, 0.00572758606, 0.004846286956973685, 0.00814658403092105, -0.0010492790623684207, 0.0049120969460526315, -0.01486755767197368, 0.004852195027565792, -0.007043126832710525, 0.005356651270263156, -0.0035065615885723684, -0.005829078253026317, 0.025083412392631576, 0.0015541765726315804, -0.013320558341842105, -0.027978110792105267, -0.004866113275657896, 0.009822611491184208, -0.004338714495526316, 0.028622747207894733, 0.0056140354747368434, -0.012210432556184212, 0.0033045029190263164, -19000230480263145e-20, -0.0034141616881578937, -0.004623406075394737, 0.006392982858421052, 0.01835209741710526, 0.01747985185131579, 0.004233065692460527, 0.01626176455263158, 0.0032433631718421056, -0.011749469372421053, -0.012891163621052632, -0.01571628433157894, 0.002652207523026316, 0.004507458543026318, -0.01775668739868421, -0.03493414880657894, -0.016362935907894737, 7675142188157897e-19, 0.010285956762684217, -0.0014735680384210526, 0.011252831868552636, 9547897207894737e-19, 0.006510753468289477, 0.005189211297763158, -0.013117319414473682, 0.003801194065131578, -0.008176472670263162, -0.008538372863026316, 0.02108607474342105, 0.0037161164223684204, -0.004774306337894736, -0.0077946213527631605, 0.0024585640678947366, -0.012176232483421057, -0.012235060736184205, 0.001400212257894737, 0.0027084579294736843, 0.0068722990685526324, 0.013335502111842099, -0.005830226586052632, 0.011873504235263161, -0.013693625648026312, -0.010449696567302632, 0.011044927082500003, 0.015400494224552629, -0.009381916401355262, 0.006673642672368421, -0.0018263740446052626, -0.0021770728546052624, 0.016361497218421055, -0.01863254121315789, -0.003530500149210525, -0.03730359020723685, -0.004191118148289474, -0.0045071628236842114, 0.015596569568947373, 0.004240642962276315, -0.002759536991368422, 0.005148003131355265, -0.0069468455677631595, 0.012819585946447368, -0.003170211528815789, 0.01752115107447369, 0.009766708002105265, 0.01720768516973684, -0.01617324446578948, 0.012112183639473681, -0.021386946318421057, -19106013060526326e-20, 0.006491905236710525, 0.012694083912631583, -0.012121427248552632, 0.007453259151052631, -0.005300583340657895, -0.0034357232692105253, -0.008234549374210526, -0.0049134867761842105, -0.011864055638157895, -0.00727513381118421, -0.006225588572394736, -0.014474562209210527, -1696423735526317e-19, -0.009927942404210525, 0.005164234018026316, 0.0017515462315789469, 0.0015904607235526311, 0.007963644751578946, 0.012216724002631584, -0.009501306335068424, -0.003338244066407896, -0.013702270143026316, 3177477896842107e-19, -0.004519560832171056, 0.002465137685263159, 0.0021053644855789483, 0.01910074195263158, 0.012031324014473682, -0.0018186422331578943, 0.005212327788421051, -0.004785163042710527, 0.0021153964885526322, -0.00444928972188158, -0.0035029865, 0.0075856674897368396, -0.016637170858460525, -0.0049104649688157895, 0.004211803076513158, -8546719754210526e-19, -0.005023115469473685, 0.0029476111911842105, 0.002885427894921053, 0.004207519965584211, -0.0045995042944736875, 0.003015317669210526, -0.003959649376578948, -0.001799221694921052, -0.010122554486973682, -0.004602558039210528, 0.0013513901315789464, 3764912463157896e-19, 0.008489159527105262, 0.014707852295131572, 0.002345036650789474, -0.0032689961036842102, 0.04255329955263159, -0.014716855848684204, 0.008619987162236838, 0.008365918811578948, -0.005013759794736842, 0.004195959585499997, -0.008992120611710525, -0.009782703207236846, -0.0022335605896052625, 0.01287937127763158, -0.015554637754473693, 0.008397985909605265, 0.002251561622499998, -0.010050093168815789, 0.008956767632171053, 0.013687852065394742, 0.013600534268289477, 0.004365934441315789, -0.0030305592554868413, -0.00781057913469737, -0.004966902079605262, 0.01856187427644737, -0.0025631659986842118, 0.004677612719921054, 10226186131578904e-20, -0.014421684380263157, 0.016739205349605258, 0.0050146044172894744, 0.011911084407631578, -0.002687138399210526, 0.00960758048539474, -0.002726553521315789, -2118536161842109e-19, 0.013187813793947371, 0.009969895463026316, 0.006658861126052631, -0.0018322755946052636, -0.0017487937331578944, -0.011101524417894743, -0.032939431818421065, 0.01520578899605263, 0.0015081202571052632, -0.005066026860486843, 493556515986842e-18, 0.004060829064605263, -0.005561150131894735, 0.010997560033026309, 0.004095647503947369, 0.012622729288684204, -0.004958941837157896, 0.006538527521447367, -0.0010266161943421049, -0.004851542462973687, 0.0016268616459210535, 0.008403855759605262, -0.005476859455, -0.00812804427618421, 0.007041481924657892, 8838693684210528e-20, 0.00597193902618421, -0.00842409854263158, 0.0024697172419736856, 0.005663838686578944, 0.0036075020965789487, -0.0023292463477631578, -0.0032376719465789477, 0.021101475338026313, 26567486563157904e-20, 0.016493054231184204, -0.002458445587631579, 0.0010258956694736841, 0.00225805411368421, 0.0031990768135526323, 0.006263685490526316, -0.004572679283552632, 0.009529538310526317, -0.011298854067368422, -0.010216326432368422, -0.01634466709473685, -0.014281002560460524, 2702401223684224e-20, 0.005255444044671053, -5290619164473683e-19, 0.020079138140789477, -0.0017828449621052637, -0.012192540535789468, -0.007199579816184209, -0.00116835002625, 0.00958368675736842, 0.007733851895789477, 0.007963292808289474, 0.025216065143421052, 0.004103331857894736, 0.0030591781828947368, -0.009872114714473685, -0.004663548545, 0.004991833832105262, -0.006863926871710525, 0.001242838931578947, 0.020425079027802634, 0.012370465663815786, -0.012126274007894736, 0.010670443024473687, -0.01464566428460526, -0.0038673775906710524, 41958086710526394e-21, 0.01994244099210526, 0.015357990706842106, 0.0063989385026315794, -0.018309239200000004, 0.006747877917368419, -0.017506960167236837, 0.005670401942631581, -0.010581732321578946, 0.0011620065078947373, 0.012163235759210531, 0.006399715106223681, -0.006113071873210528, -0.0028651888345789466, 0.002149627898157895, -0.012140688709210527, -0.010713522528947373, 0.02737408816710527, 0.017518066717105266, -0.005137931570986841, 0.003589904351447368, 0.0010994190049210533, -0.004798525595026317, -4554749059210497e-20, -6981043210526358e-20, 0.017134092135131583, 0.012083527265789476, -0.049615527359210515, 0.005816751165736842, 0.01857131190000001, 0.02351225466336842, 0.01219104790131579, -0.0010487995125921048, -0.0044726659714473685, -0.001028941063157895, -0.005443464117499998, -0.00634262967868421, 0.010381099005263152, 0.001703392962105263, -0.009139037917894735, 0.009512460323684208, 0.008586436496315792, -0.025455710537105262, -0.009792295319078947, -7742059002744737e-19, 0.018877256644736842, 0.038857334956578955, 0.003912381590921053, -0.008361733056842105, 0.016590833038421057, -0.005869556491710525, 0.009990736888552633, 38346460510526274e-20, -0.016626637246578948, -0.012364668933289474, 0.0018547245361842113, 0.006512999228605265, -0.001085481154868421, -0.009963445404999997, 0.004301809971973684, 3661409990131576e-19, -4224867659394737e-19, 48160601578947393e-20, -0.007223044006763162, -0.026113254673289465, -0.0013004677222368422, -0.0017831314044736836, 0.01561539529144738, -0.0066719939618421036, -0.00877529002351316, 0.006605579253289475, 0.005603149853552632, -0.007193712031578948, -0.0016247132320263158, -0.012534181940394738, 0.017229109368421053, 0.00245370861631579, -0.006031722248552632, 0.0031117475930263158, 0.0043886369376315805, -0.0024453895729249996, 0.00690473798328947, 40740072210526353e-20, -0.0031424490643421057, 0.019926203121315794, 0.012182200482894739, 0.008118145491578951, -0.005559053631315788, -27164370357368446e-20, -0.003351124758092105, 0.005957678860368421, -0.008513101869473681, 0.007304541067499999, 0.019957336234210518, -0.0030209489469736834, 0.004469626572763158, 0.012090736671578948, 0.01514115723331579, 0.0042360726635526326, -0.010162506523684207, -0.002649304801184211, -0.007750173208749997, 0.0019587431771447374, -0.027095424518421053, 0.0066075871005263145, 0.00536601891631579, -0.0010357673420394737, -0.003466868494342106, 0.014316960686578954, 0.0023369776231578956, -0.0053653818119210545, -0.007858214859999999, -0.013146294391315785, -0.0018566735342105262, -0.009514895538421051, -0.0036132000074342112, 0.0034368430490789486, -8554010195394731e-19, -0.0032387031372368437, 0.00244777456131579, -0.006286163061842106, 0.011771267721710532, 0.023035620363157896, -0.0043442739443421054, -0.009922730226315792, -0.004276738937499999, -0.0035189323507894745, 0.0039030267724473704, 0.014395429023592102, -0.0012053757906578947, -2897619489473682e-19, 0.007045867771144736, 0.007517767199210526, 0.007418771915644738, 0.010169157498289476, 0.00706302323276316, 0.013311043676250002, 0.003038169512894737, 0.0033463043809210517, 0.001753204881197368, -0.0074550630986842115, -0.03247426388684211, -0.014712809272763156, -0.01257650307744737, -0.005583758863815789, -0.010988394333684212, -0.01094829823105263, 0.014527793146184208, -0.01726736960019736, -0.0011412191313157898, -0.003875160005921052, 0.0054491025328289484, 0.00764098283223684, -0.01397128377631579, 0.020156240986078953, -0.018178711318157893, 0.007760771186842106, -0.012693300230263159, 0.0034562666953947383, 0.017623470872368423, 0.01328646389205263, 0.006033057996184212, 0.0021477171030263157, 0.004209592630394737, 0.022607883206578958, 45995770960526315e-20, 0.004256902114473686, 0.007727120836526311, -0.011495399911315795, -0.006097572578026317, -0.003288532194342106, 23524967355263143e-20, -0.01843602415421052, -0.006332212189999999, -0.007104603521578947, -0.006046406687763155, 0.0031444280434210527, 0.011026709301315791, 0.007965343235657892, -7478460321052628e-19, 0.010399411723157894, -0.003222595633552633, 0.0013722621246052631, -9306063203684211e-19, -0.008244672536447365, 0.010224801592763153, 0.011236862973157893, 0.002438936607828946, -0.0011834995152631578, -0.007761896696973684, -0.006536142010526313, -0.004305835025789474, -0.006375306423552633, 0.002894340127526317, -0.007056530478157897, -0.006344087711473684, 0.012371267300526317, -0.008661172924210528, 0.016608231906578945, 0.006209598555605264, -0.0049610081385394736, -0.006289596580421053, -0.008653004873157896, 0.006589724684342105, 0.0042221396663157905, -0.024205309596052636, -0.007927559016842107, -0.0036796517148684213, -0.010860645916842101, -0.001776141146973683, -0.0066375001164473675, 0.002395305515921052, -0.014593319744736844, 0.00733454749668421, 0.0019130213015789476, -0.02945044170131579, 0.0021041659146052625, -0.002779561371539474, -0.020078335207894735, 0.003642550809710527, 5936502644736846e-19, 0.00325616999868421, 0.017399437181578953, -0.06370752007631578, -0.003701780296631579, 0.007564594753552632, -0.00405948423839737, 0.0015840840405263162, 0.005836310675263158, -0.012381032086315788, -0.004665367583947368, -0.0010173959317894734, 0.005156387308802632, -0.0165339495006579, 734178938157895e-18, 0.024508261125789473, 0.01724277075526316, 0.008913617889078948, 0.018123411353289477, 0.019972735151315802, -0.015223236485526315, -0.011504417352105265, 0.010046699026184209, -0.009774468743421052, 0.014051472367763159, -799595632236844e-19, 0.015914003425263158, -0.010235261282894738, -0.012426796318973685, -0.00529559477105263, 0.0032275154818421047, -0.012022474961184216, 0.004842165463157897, -0.012777494966842105, 0.007940708949736842, -0.010386868507894734, -0.012277893373289472, -0.01469461501513158, 6472758955460526e-19, 0.011309826192631581, 0.0014896182946052632, -0.0018290806492105261, 0.004781091154078948, 0.009413893570921053, 0.00916419533118421, -0.002920155307368421, -0.004322433785789473, 0.010922147476842106, -9692939010657897e-19, -0.00471161965105263, 0.0022456688428947364, -0.01511019358289474, 0.01469485253026316, -0.0034939871920921027, 0.005169176186973684, -0.004767383189802632, -0.004363123971710525, 0.008160435356184211, 0.008593854647631578, -0.014373928093157892, 0.012998453866184211, 0.012818183890921054, -0.0012967544054736846, 0.018860078121447365, 0.011299536434868421, 0.010162780092499995, 0.010768595093881578, 0.006929429669736845, -0.009301306071052631, -0.001229964434210526, 0.022915811622105268, 0.005473494591263157, 0.01684595049736842, 0.0068085582832894745, -0.009735548395394736, -0.008009809031052632, 0.00818278650394737, -0.00514607482631579, -0.0017882432596052638, -0.003795041893157895, -0.0028177598829473675, -0.009401223562894738, -0.015638386469736837, -0.013144470036842108, -0.0025362829124999987, -0.015570190517552634, 0.0072135779351315795, -0.0033293784007894737, 0.0033921677573684203, 0.0171126722368421, -0.016200724738157896, 0.002023070578552632, -0.005874176478421054, -0.007982894414539473, -0.01305297109342105, 0.013835959466144737, -0.007678114530657894, 0.0016565042665789473, -0.0029898593556578947, 0.018475673282499997, -0.004774599107368421, -0.01045985660768421, 5002329298684213e-19, 455613157105266e-19, 0.012770474667763154, 0.0036531933109210527, -0.006355904673157896, -0.00323254957336842, -28950164197368423e-20, -0.0016983754679473682, -6461348456578951e-19, 0.011579839645394736, 3174967802632419e-21, -0.009248690072105265, 0.010413905775572371, 0.00742944108473684, 0.00453180122631579, 0.01615883042802631, -0.0032757992935526312, -0.0038371938214394738, -0.002908959269342105, 0.009208926093951316, -0.0014955339189473683, -0.013758465006973683, -0.0063294295475, -0.005727852496578948, -0.005272904527105263, -0.001316834533684211, -0.01645172019144737, -0.007092707085578947, -0.003522257189605263, -0.013505265605263156, -0.011881032946052632, 0.011369551982828954, 44452595263157905e-21, -0.006352405066578949, 0.0052995613325, 0.009505844287763156, -0.006053228503013156, 0.006845024962368421, -0.011510292038552633, -0.0032177408799999997, -0.004505434028289475, 0.004123595264342105, 0.006593527555000002, -0.011078657794605259, -0.014011584826078945, 0.0029858133488157895, 4344722920789474e-19, 0.008640971361973684, 0.006481291948157893, -0.005891967694342105, 0.008448872632763157, 0.016859102106052633, 0.0014603208068421055, 0.005249472965605262, -0.00686901125013158, -0.010637044371578948, 0.011924648195789474, -0.0058005032065789495, 0.015501499024999997, -0.006453810105921054, -0.002997035320473683, 0.018575800172368425, -0.008515451444736838, 0.012462028264473679, -0.003774380357539475, -0.0019450062711842105, 0.00391133496173684, 0.004730433910526316, -0.001315982468776316, 3232796018157894e-19, -0.0066704201258026286, 0.00680665693223684, -39029438710526344e-20, 0.005489703965131578, 0.008671756791842107, -0.012851425032368417, 0.003147755206052631, 0.0026194010623684216, -0.007664137591973682, -0.011883636635, 0.004133208043763159, -8303924315789413e-20, 0.003270837395131579, -0.005892774992763157, 0.012238801593815785, 0.006942355931973683, 0.02878469881921053, 9479045131578946e-19, 0.0017351399474736847, 0.008778382914078947, 0.0010939997295263163, 0.0030465893436842097, 0.014783142862368417, 0.01642540962717105, 0.0036857923714473675, -0.015363344993026315, 0.009919231350263158, -0.011551756493421059, 0.0023134715465394744, 0.011385295549473687, 0.013802586752105264, -0.01116167753921053, -0.003641126586684211, -0.013648889441184206, 0.014234762527368418, 0.002806655006105263, -0.013499138960736849, 0.005006243019473683, 0.015739427460526312, -0.0027175753445131574, -0.010932971389473686, -0.010770135974552631, 890700216526316e-18, -0.012623942286842103, 0.016124839350000003, -0.002831514939934211, 0.012697006429342104, -0.007019076696973686, -0.006475317798065787, 0.007137869946052634, 0.006031961175105265, -0.00705848445763158, 0.0033737443014210527, -2768167815789512e-20, 0.017694467707894734, 0.006258390639605262, -0.002385706069394737, 0.003583886412894737, -7993168968421051e-19, -0.01620972400113158, 0.01370171146118421, 0.00461520679318421, -7547631113157896e-19, 0.002939954357631579, -0.006845462558289473, 0.007328082212763157, 0.007676322326467105, 0.004349595261973684, 0.015829044343197374, -0.00368448221881579, 5303418106447364e-19, 0.0026827215614473685, -0.008580460431710527, 0.005024989097499999, -0.003635687485394737, 0.002272944439315789, -0.006124602738289472, -0.016172138838026325, 0.015377584130394738, 0.010782426606184206, -0.021383269930657894, 0.005706450336052631, 0.0018523320315789475, 3522892494736843e-19, 0.004350316041157894, 0.005934959479144734, 0.01708160452131579, -0.007678650551447369, -0.0033582777418421053, -0.017157569269684224, 0.007354085403947371, 8351606031578944e-19, -0.005335390844342104, -0.002535301282368421, 0.014636234615921057, 0.004858749898355263, 0.007662922150526313, -0.0016256868378026308, 0.01556731267368421, -0.005104593538289476, -0.019748377389473677, -0.013980995652631582, 0.00946453539263158, -0.008415238208421055, -0.011370187082631577, -0.024026692542368423, -0.028569824043500013, -0.004478069888947369, 0.0031515005953947363, -0.002700122834605264, 0.00815917739855658, -0.00445320840494737, 0.006830579967631578, -0.006684497927105263, 0.010432664122105263, -0.014661140320368424, -0.006587801074605265, 0.007357709939078946, -0.005931698591973684, -7732484365789474e-19, -0.002239530471052632, 0.007788843097894735, 0.0064669147390789454, -0.0030537573617631575, 0.017894125887236843, 0.014577202200000002, 0.0015132674616710532, -0.0057732834064473685, -0.0027821142750131585, -0.01908095769276315, 0.009781772397894737, 0.009500178334210524, -0.08152622444736843, 0.008212754039473679, -0.01767476994144737, 0.0026395801725000003, 0.0014657673559210526, 0.007638076904605263, 0.004058115665973685, 0.0035145148113157896, -0.011827003826315791, -0.0027065570113157895, 0.0023756798456578943, 0.008448311618421052, 0.017983404865789466, 0.016279126637631577, -0.0012591387876315795, -0.01015563660263158, -0.007210258607868422, 5225580767105262e-19, 0.008399898934210526, 0.005169876301250003, -0.0054817867677631575, 0.004851883672052633, 8781897375131572e-19, -0.004407749175657896, -0.0037234890038684225, 0.010837226267236846, -0.008299530855789473, 0.012997853572105266, -0.017374133039473685, 0.01771941214802632, -0.010850383854999996, -0.0025922976049605273, -0.005014948546052633, 0.001572493777631579, -0.009683719784736844, 0.003544048853289474, -0.005399044507894736, 0.0019298673893421046, 0.008562550747213162, 0.007685438104276315, 9653876659736838e-19, 0.006209795067934209, -0.007815720736421053, 0.01339235502684211, -0.014595927550000002, -0.001961306322894736, 0.01755357029118421, 0.009892284107105262, -0.004357266436710526, -0.024933551971052636, -0.008265622360263156, 46308488684210446e-21, 0.008073451047105263, -0.006002720232921055, 0.00960784907105263, -0.008960232250921057, 0.009452138660526316, -1669984473684197e-19, 0.006347901398026315, 0.006253983917105261, -0.001933425444473684, -0.010605378191710526, 0.0017956876511842107, 0.010316846388552634, -0.006851734682407896, 0.017523879366710526, -0.003045540768026316, 0.021021487419736837, -0.00978115143263158, 0.007848767184210523, 0.008862482220921052, -0.01242224652736842, 0.0013790572871052633, 0.014478706237421052, -0.008613721365578947, 8338612144736844e-19, 0.003780419830131578, 0.00346602358868421, 0.01269026605723684, 0.009463772316851317, 0.012594825682894736, -0.0069123792341578925, 0.0013869928297368425, -0.012008816909210525, -0.005822936399078947, -0.016418475083815786, -0.010629006791973683, 0.008168218550394738, 0.00664607999610526, -5069868140000001e-19, 0.004181848071447371, -0.0011114877839473682, 0.02246608591315789, -0.0034439313037368416, -0.004351277874210527, 0.0014461106753947362, -0.009660680614197373, -0.005408365936052628, 0.01752714284907894, 0.008516543233210525, 0.002278526259736842, -0.006875266473026315, -0.0069421802624999975, 0.013035910887894736, 0.0015391923593421058, 0.0012664572747368423, 0.0011414591399473686, -0.0037214528182894745, 0.015104741671868427, -0.013068065997078947, -9741302530000001e-19, -0.0033918721798684216, 0.005097137174605263, 0.004477671593026316, 0.006166728530789473, -4620546571052633e-19, -0.00529603509618421, 8418184122421051e-19, -0.0012031493919868418, 15712514144736853e-20, -0.0019224767417105261, 0.005464992050000003, 0.004573905729556577, -0.005107717659999997, -0.001779724216276316, 0.0062555419631578945, 0.014157424513157893, -0.002229668639710526, -0.004112240003421051, -0.008737391783947368, -0.01772272931749999, -0.011969726380789475, 3489228665526319e-19, 0.008398761923223683, 0.006083781918289473, 0.0038491992196052634, 0.006757484750263158, -0.0033988848290789457, 0.010786320785381581, 0.007709229539986843, -0.0027759906160526315, 0.01513786151671053, -33675679921052606e-20, -9034154792105268e-19, -0.006730010358421051, -0.0038794277310526316, 0.011774508437552627, 0.0075108212575000005, -5415923363157894e-19, -0.010228818563289476, -0.004567732969605264, -0.006103785833947367, -0.007408031901286839, -0.0032699436107894737, -0.007860791874210528, 0.01599756300842105, -0.016585482788684217, -0.008410989815789471, -0.0024622896271447366, -31383816486842115e-20, -0.006790721234210526, 0.0037121541342105256, -0.009942839455, -0.012361527721052628, 0.019747696744736844, -0.004605994977907893, 0.0033676318580263156, 8737887935394738e-19, 0.002211198596144737, 0.010937877776315795, -0.01129901567118421, -8168034689473677e-19, -0.009641223938421057, 0.009402437952631576, 0.0056297516052631605, -0.0010065862368421055, -0.02594543341447368, -0.0011355776477631582, -0.011891248669605264, -0.00839228417031579, 0.007896343589210524, 0.007322515729342106, 0.0033040433167105263, 0.003778204579868421, 0.011096790547631581, -0.0015593353430263153, 0.014356465188157893, -0.006630788594118421, 4828352872894737e-19, 0.0010450569010473684, -0.007027775473815791, -0.006984254253157892, -0.00792534963342105, -0.00162584528, -0.006522221855263158, 0.01805963293197369, -0.004809070690789476, -0.01814591389078947, -0.005865267296828947, 0.003988285848684209, -0.008169152964999999, -0.008437095909210527, 0.009360843043815788, 0.030021375652105258, 0.007297060365657896, -0.0023612295406578963, -0.01073050399763947, 0.0019045162401315795, 0.00651718905263158, 0.0010275199546052635, -0.006277306921263158, 0.0012021913027105262, -0.011182417592105264, -0.002024020123421053, -0.006231476668342106, 4796000135526314e-19, 0.006449109247355262, 7456603261184208e-19, -0.005144762157460526, -0.0021357675948684212, -0.01883197047171053, -0.025576503247368407, -0.013539074083421053, -0.011034470814473686, 0.0024368244498684222, -0.002245899774736842, 0.007094408709210526, 0.0012029363072368422, -0.009510369465000001, -0.012366834156578943, 22163493250000016e-20, -864950124473684e-18, -0.0054156288555263134, 0.005750937247368423, 0.003270796098421053, 0.002449161180921053, 52041173618420834e-21, 0.010704513787500002, 0.001962141009605263, 0.004546446430526313, -0.009514348226710524, 0.013900074301842112, 0.007515311701355261, 0.0035688571342105263, -0.0031417825293421063, 0.013631733623026311, 0.004473217585789474, 0.022099065907894736, -0.010242928179605263, -0.021115605811315788, -0.0020430657981592103, -0.004960829025921049, 6026669513157779e-20, -0.004585000899605264, -0.004475863079315788, -0.004507509982368421, 0.012760686508684211, 0.0035079304818421055, 0.0043142242481578955, -0.0037753994023157884, 0.009972505233289472, 0.004257388717499998, 0.0037933767182894737, -0.003782828635039474, -0.016245113222631585, -0.0067635378846052615, 0.001699853626842106, 0.0049727823532894734, -0.0026726438017763156, 35606309460526324e-20, 0.0014221154155263163, -0.006753894785657897, -0.0021303370428947363, 0.0020290390381578942, 0.0065541381115789485, 0.005578077509210527, 0.00597834956631579, -0.015656070957894737, -0.005700937814868422, -0.003300278165210526, 0.0010437032015789478, -0.006081244438026316, -0.012030119331578949, 0.008609655173684212, -0.012421846317171054, 0.0038849181815789487, -0.003441401350921053, 0.005337632936842106, -0.00501430082631579, 0.007684295191355262, -0.018589622549210528, 0.0020294963380921055, -0.01736990133552631, -12342767794736842e-20, 0.013101640196631579, -19718100105263185e-20, 0.00191136175070921, 0.002991744120394736, 0.005360340401578948, -0.002541910205657895, -0.011420830478947371, 0.0025571802081578946, -0.007654641906842104, 1324760923026315e-19, 0.009839589908289474, 0.014137809323684214, 0.005973617257894737, 0.0044086344710526325, -0.007683909966710525, -0.014283573396973682, -0.015558832550000004, 0.006422352959605265, 0.0015610042364473677, 0.005954876463289471, 0.01747821746710526, 0.012649821948026316, -0.00588777466013158, 0.00278459120360921, -0.0027093084425131573, 0.00528561605, -0.0013567440365789465, -0.0036329947868421046, -0.027717547824078946, -0.009446810628947372, 0.0016673699111842107, 0.01964425766578947, -0.00695099289526316, 0.01540288453881579, -0.0017949823404736845, -0.0017532934771052637, 0.011818318206578948, 0.0014771281863157897, 0.010423521287236842, 7254289103947369e-19, -0.004566167288026315, -0.003529428743197369, 0.0011952240294736843, -0.003898400712605264, -0.010473680018684213, 0.00285922366139474, -0.006599853688026317, -0.02107415088815789, 0.0052880693118421045, 0.006744707181578948, -0.00798451460657895, -0.004557204219868423, -0.01156681187255263, 0.0076239759752631635, 0.0035902046968684207, -0.012573743979605262, -0.003764909397236842, 6335979498684211e-19, -0.003016045632947368, 0.0018927498906578949, 0.007497210715789474, -0.005934193091907899, 0.0035080823515789466, -0.0018217714548684216, -5523007649828952e-19, -7058270163815789e-19, 0.012370342157368423, -15139791644736762e-21, -0.013432961709210524, -4939559349999998e-19, 0.010054779912499996, -0.001919280470486842, -0.0013844150172368421, 0.007696783919605264, 0.008991117240473684, -0.007747281024078945, -0.004739962277894735, 0.007187543989473684, 0.003015955778815791, -0.001928289877644735, 0.004620562280552632, -0.0014514659089473684, -0.020361874824473686, 0.010851485952894735, -0.0048367870628947375, 7418370901184215e-19, 0.003954019490328949, -0.0036905010957894754, 0.005135467446315788, -7641653630263166e-19, 0.002803192092157894, 9011874512236843e-19, -0.006852827178236843, -0.009182144093157896, 6662634763552632e-19, 0.003859204278289474, 0.002627766069263158, 16687577934210564e-20, -0.004155122549868421, 0.007481256317894739, 0.010201827506842105, -0.02001931662526316, 0.008597913657499998, 0.009211417565, -0.003000300423684211, 48565491249999974e-20, -0.006839893910657894, -0.0024400726705263165, 0.0018072735346052636, -0.019441373660526323, 0.008917724683289475, 0.006977527517447371, 0.0012267423015789476, 37295210526322205e-22, -0.03201578951578947, 0.0014607340267894736, 0.010337255695263156, 0.002957082175947369, 0.009742125079473684, 0.0062952107691315795, 0.010293411451381573, 0.007467224718026317, -0.01702668064539474, 0.005315579784210528, -0.03403872432368421, -0.0036593492817105257, -0.013481478045789471, -0.005543817282105263, 0.0024990400036842106, -0.005272580224539472, 0.009082922817368418, -0.001777538198289474, -0.00401194444394737, 0.00793982549736842, 23839166631578926e-20, 0.005703706245131579, 0.0032615849919210536, 5623444232236841e-19, -0.009299548110394735, 0.0010441157952631576, -0.012694072275263158, 0.004126734016842105, -0.001088491213815789, -43924066513157913e-20, -0.006497900055789475, -0.008375932914473687, 0.006604953940657895, 0.008322977985131578, 0.0014929076139473686, -0.005037357923289473, 0.001687304174736842, 0.005036407010486843, 0.002468036690526316, 0.0014052489157894733, -0.0022257209973684214, 0.005458085299473683, 0.009009774955749998, 0.0858067330657895, -0.007581642367631578, 0.01083994584868421, -0.0022605711906578943, 21345696315789494e-20, -0.005091092415263156, -0.0064649052059342115, -0.0031673467632894734, 0.007837809513026317, -0.0048379660456749985, 0.003358471353947369, -0.007209436236315789, -0.004074764670526317, -0.002432236466131579, -0.001538101053328947, -0.003958276178197368, -0.001431222515394737, -0.002890863070263158, -0.005015565842105263, 0.006637256008947367, -0.01610401879026316, 16318058486842113e-20, 0.006704906538815789, -0.00704305531026316, -0.006291144144078946, 0.00933739933177632, 0.003039505811973684, -0.002349317244736842, 6161272673684213e-19, 0.011576436187894739, 19294986634210533e-20, -5418114680263158e-19, 0.002641153911184212, -0.00675274457026316, 0.008304665786171056, 0.001867557076842105, 0.007009144105789473, 37644492855263173e-20, 0.008968001444210526, 0.0015434073640789474, 0.005244117515263159, 0.0029953329880263156, 5347106021052633e-19, 0.004156591307368421, -0.0022211070997368424, 0.0034716415264473685, -0.0065318866889473685, 977989682631579e-18, -0.0014095522748684215, -0.006451674766447366, 0.0032100871473157893, -0.005529904199539473, 0.0059584155557894725, -9850399996052639e-19, 0.006995684919078948, -0.0022856163722368393, -0.01090589053710526, 0.009130581944078944, 0.00312594295013158, 0.007374450093421053, 0.0025797777251710522, 29641350526315737e-21, 0.001176881737763158, -0.014572063391447372, -2289824355263157e-19, -0.004469249211710526, 0.007769186374868425, -0.002506505231434211, 0.006041142717631577, -0.002120238433026316, -0.009695580013552628, -0.005020087666881578, 0.005143053156315791, 0.007150294719789475, 0.0023021195396710527, 0.003707133851447368, 0.006069693725921051, -0.00467861785710526, 0.02125906401236842, 9268083446052627e-19, -0.003634692288684209, -0.003680463652815789, 0.0040336247021052615, 0.0013372253536447368, 0.0021130635865789465, -4880915286842109e-19, -0.012233446567342104, -0.004310965072894738, -0.01132869828552632, -0.006841497305263159, -0.0016422147394736845, -0.002537146005289474, 0.003615671777368422, 0.00814799093118421, -0.005056491793263158, 0.013174237758684208, 3394553878157892e-19, -0.008489372885473684, -0.0027938550723684203, 0.0030627760844078957, 9348454796052637e-19, 0.004848255386842105, -0.0117739507, -6810965494736843e-19, -0.002880153715, 0.008861613728178947, 0.0033199058337500006, -0.003612675859078948, 0.002928360304065789, 0.0039185375651315775, -7332073442631576e-19, -0.0012935513150789466, 0.004886879997894738, 0.007781129023552632, -0.004267412731052632, -0.003639562495460526, 0.00523262424868421, -0.003657068880394737, 0.005125610617552631, -0.004419953952236842, -9843244355092107e-19, -2347114171052623e-20, 0.0016072527152631584, 0.003128275799539474, 4279722777368421e-19, 0.006050774428552632, -0.004237210059210528, -0.0025468053725000005, 0.0026924242311184205, -0.02019396686092105, -0.005761839523684209, -0.009751797271973686, 0.011594078876973685, 9348787827236843e-19, 0.014106164205263163, 6055481813026316e-19, -7440742407894764e-20, -0.005227106624868422, 0.013380218100789466, 0.008165820871447366, -4882895227631577e-19, -0.0010533377903157893, -0.0016510250091447362, 0.0018723641477631577, -0.004344320649736843, 0.002451466830486842, 0.003751309517368421, -1192675066447369e-19, 5871760036842106e-19, 0.00721447406936842, 0.003513352502315789, 0.009986706387763158, -0.003577922982105263, -0.006272508934210527, 0.00939798507907895, 0.005559408675131579, -0.004530027807368421, 0.008267799573289474, 9763903811842103e-19, 6323663030263157e-19, -0.018563745183684206, 0.003477922045657895, 0.0034454675522368416, 0.0022030032148815794, 9718481634210526e-19, -0.006363050955000002, 0.009044980506973683, -0.007551598236973688, -6711054927894736e-19, -0.0013286158334210524, 0.0017464641878947365, -0.011715851191973686, -0.005520589822500002, 8535201651315791e-19, 0.010038929649605262];
6350
6350
 
6351
6351
  // src/lib/chat/preProcessor.ts
6352
- function wrapAsUserText(prefix, text14) {
6353
- if (!text14 || !text14.trim()) return [];
6352
+ function wrapAsUserText(prefix, text15) {
6353
+ if (!text15 || !text15.trim()) return [];
6354
6354
  return [{ role: "user", content: [{ type: "text", text: `${prefix}
6355
- ${text14}` }] }];
6355
+ ${text15}` }] }];
6356
6356
  }
6357
6357
 
6358
6358
  // src/lib/chat/cryptoPriceClassifier.ts
@@ -6372,8 +6372,8 @@ async function classifyCryptoPrice(prompt, options) {
6372
6372
  }
6373
6373
  async function classifyCryptoPriceBatch(prompts, options) {
6374
6374
  const { margin = 0.02, ...embeddingOptions } = options;
6375
- const embeddings = await generateEmbeddings(prompts, embeddingOptions);
6376
- return embeddings.map((emb) => classify(emb, margin));
6375
+ const embeddings2 = await generateEmbeddings(prompts, embeddingOptions);
6376
+ return embeddings2.map((emb) => classify(emb, margin));
6377
6377
  }
6378
6378
  function createCryptoPricePreProcessor(options = {}) {
6379
6379
  const margin = options.margin ?? 0.02;
@@ -7041,7 +7041,7 @@ function findMatchingTools(promptEmbeddings, tools, options) {
7041
7041
  if (!tools || tools.length === 0) {
7042
7042
  return [];
7043
7043
  }
7044
- const embeddings = Array.isArray(promptEmbeddings[0]) ? promptEmbeddings : [promptEmbeddings];
7044
+ const embeddings2 = Array.isArray(promptEmbeddings[0]) ? promptEmbeddings : [promptEmbeddings];
7045
7045
  const results = [];
7046
7046
  for (const tool of tools) {
7047
7047
  if (!tool.embedding || tool.embedding.length === 0) {
@@ -7049,7 +7049,7 @@ function findMatchingTools(promptEmbeddings, tools, options) {
7049
7049
  }
7050
7050
  try {
7051
7051
  let maxSimilarity = -Infinity;
7052
- for (const embedding2 of embeddings) {
7052
+ for (const embedding2 of embeddings2) {
7053
7053
  const similarity = cosineSimilarity(embedding2, tool.embedding);
7054
7054
  if (similarity > maxSimilarity) {
7055
7055
  maxSimilarity = similarity;
@@ -7080,12 +7080,12 @@ function scoreTools(promptEmbeddings, tools) {
7080
7080
  const scores = /* @__PURE__ */ new Map();
7081
7081
  if (!promptEmbeddings || promptEmbeddings.length === 0) return scores;
7082
7082
  if (!tools || tools.length === 0) return scores;
7083
- const embeddings = Array.isArray(promptEmbeddings[0]) ? promptEmbeddings : [promptEmbeddings];
7083
+ const embeddings2 = Array.isArray(promptEmbeddings[0]) ? promptEmbeddings : [promptEmbeddings];
7084
7084
  for (const tool of tools) {
7085
7085
  if (!tool.embedding || tool.embedding.length === 0) continue;
7086
7086
  let maxSimilarity = -Infinity;
7087
7087
  try {
7088
- for (const embedding2 of embeddings) {
7088
+ for (const embedding2 of embeddings2) {
7089
7089
  const similarity = cosineSimilarity(embedding2, tool.embedding);
7090
7090
  if (similarity > maxSimilarity) maxSimilarity = similarity;
7091
7091
  }
@@ -7296,13 +7296,13 @@ function createServerToolsFilter(options = {}) {
7296
7296
  const exclude = new Set(options.excludeTools ?? []);
7297
7297
  const sets = options.toolSets ?? [];
7298
7298
  const matchOpts = options.matchOptions;
7299
- const filter = (embeddings, tools) => {
7300
- const matches = findMatchingTools(embeddings, tools, matchOpts);
7299
+ const filter = (embeddings2, tools) => {
7300
+ const matches = findMatchingTools(embeddings2, tools, matchOpts);
7301
7301
  if (matches.length === 0) return [];
7302
7302
  const matchedNames = new Set(matches.map((m) => m.tool.name));
7303
7303
  let finalNames;
7304
7304
  if (sets.length > 0) {
7305
- const scores = scoreTools(embeddings, tools);
7305
+ const scores = scoreTools(embeddings2, tools);
7306
7306
  const selectedScores = new Map(
7307
7307
  [...scores].filter(([name]) => matchedNames.has(name) && !exclude.has(name))
7308
7308
  );
@@ -9340,13 +9340,13 @@ var StreamSmoother = class {
9340
9340
  /**
9341
9341
  * Add text to the buffer. If smoothing is disabled, passes through immediately.
9342
9342
  */
9343
- push(text14) {
9344
- if (this.destroyed || !text14) return;
9343
+ push(text15) {
9344
+ if (this.destroyed || !text15) return;
9345
9345
  if (!this.enabled) {
9346
- this.callback(text14);
9346
+ this.callback(text15);
9347
9347
  return;
9348
9348
  }
9349
- this.buffer += text14;
9349
+ this.buffer += text15;
9350
9350
  this.ensureTimer();
9351
9351
  }
9352
9352
  /**
@@ -9357,9 +9357,9 @@ var StreamSmoother = class {
9357
9357
  if (this.destroyed) return;
9358
9358
  this.stopTimer();
9359
9359
  if (this.buffer.length > 0) {
9360
- const text14 = this.buffer;
9360
+ const text15 = this.buffer;
9361
9361
  this.buffer = "";
9362
- this.callback(text14);
9362
+ this.callback(text15);
9363
9363
  }
9364
9364
  this.resolveDrain();
9365
9365
  }
@@ -9426,9 +9426,9 @@ var StreamSmoother = class {
9426
9426
  const currentSpeed = this.getCurrentSpeed(elapsed);
9427
9427
  const charsThisTick = Math.max(1, Math.round(currentSpeed * (TICK_INTERVAL / 1e3)));
9428
9428
  const toRelease = Math.min(charsThisTick, this.buffer.length);
9429
- const text14 = this.buffer.slice(0, toRelease);
9429
+ const text15 = this.buffer.slice(0, toRelease);
9430
9430
  this.buffer = this.buffer.slice(toRelease);
9431
- this.callback(text14);
9431
+ this.callback(text15);
9432
9432
  if (this.buffer.length === 0) {
9433
9433
  this.stopTimer();
9434
9434
  this.resolveDrain();
@@ -9873,9 +9873,9 @@ async function runToolLoop(options) {
9873
9873
  messages = await redactBatch(messages);
9874
9874
  if (preProcessors?.length) {
9875
9875
  try {
9876
- const text14 = extractLastUserText(messages);
9877
- if (text14.length > 0) {
9878
- const embedding2 = await generateEmbedding(text14, {
9876
+ const text15 = extractLastUserText(messages);
9877
+ if (text15.length > 0) {
9878
+ const embedding2 = await generateEmbedding(text15, {
9879
9879
  apiKey: headers?.["X-API-Key"],
9880
9880
  getToken: token ? () => Promise.resolve(token) : void 0,
9881
9881
  baseUrl
@@ -9883,7 +9883,7 @@ async function runToolLoop(options) {
9883
9883
  const results = await Promise.all(
9884
9884
  preProcessors.map(async (p) => {
9885
9885
  try {
9886
- return await p({ prompt: text14, embedding: embedding2, signal: combinedSignal });
9886
+ return await p({ prompt: text15, embedding: embedding2, signal: combinedSignal });
9887
9887
  } catch (err) {
9888
9888
  console.warn("[runToolLoop] pre-processor failed:", err);
9889
9889
  return void 0;
@@ -10042,11 +10042,11 @@ async function runToolLoop(options) {
10042
10042
  }
10043
10043
  });
10044
10044
  accumulator = createStreamAccumulator(model || void 0);
10045
- contentSmoother = new StreamSmoother((text14) => {
10046
- if (emitData) emitData(text14);
10045
+ contentSmoother = new StreamSmoother((text15) => {
10046
+ if (emitData) emitData(text15);
10047
10047
  }, smoothing);
10048
- thinkingSmoother = new StreamSmoother((text14) => {
10049
- if (emitThinking) emitThinking(text14);
10048
+ thinkingSmoother = new StreamSmoother((text15) => {
10049
+ if (emitThinking) emitThinking(text15);
10050
10050
  }, smoothing);
10051
10051
  let chunksEmittedDownstream = false;
10052
10052
  try {
@@ -10551,11 +10551,11 @@ Executing tool: ${toolInfo}
10551
10551
  }
10552
10552
  });
10553
10553
  currentAccumulator = createStreamAccumulator(model || void 0);
10554
- contContentSmoother = new StreamSmoother((text14) => {
10555
- if (emitData) emitData(text14);
10554
+ contContentSmoother = new StreamSmoother((text15) => {
10555
+ if (emitData) emitData(text15);
10556
10556
  }, smoothing);
10557
- contThinkingSmoother = new StreamSmoother((text14) => {
10558
- if (emitThinking) emitThinking(text14);
10557
+ contThinkingSmoother = new StreamSmoother((text15) => {
10558
+ if (emitThinking) emitThinking(text15);
10559
10559
  }, smoothing);
10560
10560
  let chunksEmittedDownstream = false;
10561
10561
  try {
@@ -10782,11 +10782,11 @@ async function resumeStream(options) {
10782
10782
  } = options;
10783
10783
  const strategy = getStrategy(handle.apiType);
10784
10784
  const accumulator = createStreamAccumulator(handle.model || void 0);
10785
- const contentSmoother = new StreamSmoother((text14) => {
10786
- if (onData) onData(text14);
10785
+ const contentSmoother = new StreamSmoother((text15) => {
10786
+ if (onData) onData(text15);
10787
10787
  }, smoothing);
10788
- const thinkingSmoother = new StreamSmoother((text14) => {
10789
- if (onThinking) onThinking(text14);
10788
+ const thinkingSmoother = new StreamSmoother((text15) => {
10789
+ if (onThinking) onThinking(text15);
10790
10790
  }, smoothing);
10791
10791
  const idleController = new AbortController();
10792
10792
  let watchdog;
@@ -10926,8 +10926,8 @@ async function classifyStockPrice(prompt, options) {
10926
10926
  }
10927
10927
  async function classifyStockPriceBatch(prompts, options) {
10928
10928
  const { margin = 0.02, ...embeddingOptions } = options;
10929
- const embeddings = await generateEmbeddings(prompts, embeddingOptions);
10930
- return embeddings.map((emb) => classify2(emb, margin));
10929
+ const embeddings2 = await generateEmbeddings(prompts, embeddingOptions);
10930
+ return embeddings2.map((emb) => classify2(emb, margin));
10931
10931
  }
10932
10932
  function createStockPricePreProcessor(options = {}) {
10933
10933
  const margin = options.margin ?? 0.02;
@@ -10966,8 +10966,8 @@ async function classifyWeather(prompt, options) {
10966
10966
  }
10967
10967
  async function classifyWeatherBatch(prompts, options) {
10968
10968
  const { margin = 0.02, ...embeddingOptions } = options;
10969
- const embeddings = await generateEmbeddings(prompts, embeddingOptions);
10970
- return embeddings.map((emb) => classify3(emb, margin));
10969
+ const embeddings2 = await generateEmbeddings(prompts, embeddingOptions);
10970
+ return embeddings2.map((emb) => classify3(emb, margin));
10971
10971
  }
10972
10972
  function createWeatherPreProcessor(options = {}) {
10973
10973
  const margin = options.margin ?? 0.02;
@@ -11006,8 +11006,8 @@ async function classifyWebSearch(prompt, options) {
11006
11006
  }
11007
11007
  async function classifyWebSearchBatch(prompts, options) {
11008
11008
  const { margin = 0.02, ...embeddingOptions } = options;
11009
- const embeddings = await generateEmbeddings(prompts, embeddingOptions);
11010
- return embeddings.map((emb) => classify4(emb, margin));
11009
+ const embeddings2 = await generateEmbeddings(prompts, embeddingOptions);
11010
+ return embeddings2.map((emb) => classify4(emb, margin));
11011
11011
  }
11012
11012
  function createWebSearchPreProcessor(options = {}) {
11013
11013
  const margin = options.margin ?? 0.02;
@@ -11031,8 +11031,8 @@ function sseFailureMessage(status, statusText, detail = "") {
11031
11031
  }
11032
11032
  function parseSseChunks(raw, incompleteBuffer) {
11033
11033
  const chunks3 = [];
11034
- const text14 = incompleteBuffer + raw;
11035
- const lines = text14.split("\n");
11034
+ const text15 = incompleteBuffer + raw;
11035
+ const lines = text15.split("\n");
11036
11036
  const remaining = raw.endsWith("\n") ? "" : lines.pop() ?? "";
11037
11037
  for (const line of lines) {
11038
11038
  if (!line.startsWith("data: ")) continue;
@@ -11532,6 +11532,7 @@ function createNearbyRequest(options, apiPath = "/api/private-memories") {
11532
11532
  }
11533
11533
  throw error;
11534
11534
  }
11535
+ if (response.status === 204) return null;
11535
11536
  return await response.json();
11536
11537
  } catch (error) {
11537
11538
  if (timedOut) throw new RemoteMemoryError("Nearby request timed out", 408, "timeout");
@@ -11907,6 +11908,16 @@ var ChatStoreError = class extends Error {
11907
11908
  // src/lib/chatStore/remote.ts
11908
11909
  var kinds = /* @__PURE__ */ new Set(["conversation", "message", "summary", "project", "memory_links"]);
11909
11910
  var cipherPattern = /^enc:v\d+:(?:[0-9a-f]{2}){28,}$/i;
11911
+ var maxPayload = 2 * 1024 * 1024;
11912
+ var storedDims = 1536;
11913
+ var maxRequestCiphertext = 8 * 1024 * 1024;
11914
+ var maxGetRefs = 50;
11915
+ var maxImportRecords = 100;
11916
+ var maxVerifyRevisions = 1e3;
11917
+ var maxChunksPerRecord = 16;
11918
+ var maxChunksPerRequest = 200;
11919
+ var maxAttachmentBytes = 50 * 1024 * 1024;
11920
+ var attachmentIdPattern = /^[0-9a-f]{32}$/;
11910
11921
  var metadata = [
11911
11922
  "kind",
11912
11923
  "id",
@@ -11949,7 +11960,62 @@ function validRecord(value) {
11949
11960
  ))
11950
11961
  return false;
11951
11962
  const root = value.kind === "conversation" || value.kind === "project";
11952
- return root ? value.conversationId === "" && value.sortKey === 0 : id(value.conversationId);
11963
+ return root ? value.conversationId === "" : id(value.conversationId);
11964
+ }
11965
+ function embeddings(write) {
11966
+ if (write.embeddings === void 0) return true;
11967
+ return Array.isArray(write.embeddings) && !write.record.isDeleted && (write.record.kind === "message" || write.record.kind === "summary") && write.embeddings.length <= maxChunksPerRecord && (write.embeddingModel === void 0 || typeof write.embeddingModel === "string" && write.embeddingModel.length <= 256) && Array.from({ length: write.embeddings.length }, (_, i) => i).every(
11968
+ (i) => vector(write.embeddings?.[i])
11969
+ );
11970
+ }
11971
+ function vector(v) {
11972
+ if (!Array.isArray(v) || v.length !== 1536 && v.length !== 4096) return false;
11973
+ let nonZero = false;
11974
+ for (let i = 0; i < v.length; i++) {
11975
+ const x = v[i];
11976
+ if (typeof x !== "number" || !Number.isFinite(x)) return false;
11977
+ if (i < storedDims && x !== 0) nonZero = true;
11978
+ }
11979
+ return nonZero;
11980
+ }
11981
+ function vectorFields(write) {
11982
+ return {
11983
+ ...write.embeddings !== void 0 ? { embeddings: write.embeddings.map((v) => v.slice(0, storedDims)) } : {},
11984
+ ...write.embeddingModel !== void 0 ? { embedding_model: write.embeddingModel } : {}
11985
+ };
11986
+ }
11987
+ function text2(value) {
11988
+ return typeof value === "string";
11989
+ }
11990
+ function timestamp(value) {
11991
+ return typeof value === "string" && Number.isFinite(Date.parse(value));
11992
+ }
11993
+ function presigned(value) {
11994
+ if (!object(value) || !text2(value.url) || !/^https:\/\//.test(value.url) || !text2(value.method) || !object(value.headers) || !Object.values(value.headers).every(text2) || !timestamp(value.expires_at))
11995
+ invalid();
11996
+ return {
11997
+ url: value.url,
11998
+ method: value.method,
11999
+ headers: value.headers,
12000
+ expiresAt: value.expires_at
12001
+ };
12002
+ }
12003
+ function attachment(value) {
12004
+ if (!object(value) || !text2(value.attachment_id) || !attachmentIdPattern.test(value.attachment_id) || !integer(value.size_bytes, 1) || value.state !== "pending" && value.state !== "committed" || value.owner_kind !== void 0 && value.owner_kind !== "message" && value.owner_kind !== "summary" || value.owner_id !== void 0 && !id(value.owner_id) || !timestamp(value.created_at) || value.committed_at !== void 0 && !timestamp(value.committed_at))
12005
+ invalid();
12006
+ return {
12007
+ id: value.attachment_id,
12008
+ sizeBytes: value.size_bytes,
12009
+ state: value.state,
12010
+ ...value.owner_kind !== void 0 ? { ownerKind: value.owner_kind } : {},
12011
+ ...value.owner_id !== void 0 ? { ownerId: value.owner_id } : {},
12012
+ createdAt: value.created_at,
12013
+ ...value.committed_at !== void 0 ? { committedAt: value.committed_at } : {}
12014
+ };
12015
+ }
12016
+ function ref(value) {
12017
+ if (!object(value) || !text2(value.kind) || !kinds.has(value.kind) || !id(value.id)) invalid();
12018
+ return { kind: value.kind, id: value.id };
11953
12019
  }
11954
12020
  function sameMetadata(a, b) {
11955
12021
  return metadata.every((key) => a[key] === b[key]);
@@ -12005,8 +12071,11 @@ async function createRemoteChatStore(options) {
12005
12071
  isDeleted: r.is_deleted,
12006
12072
  data: {}
12007
12073
  };
12008
- if (!validRecord(plain) || typeof r.payload !== "string" || r.payload.length > 2 * 1024 * 1024 || !cipherPattern.test(r.payload))
12074
+ if (!validRecord(plain) || typeof r.payload !== "string" || r.payload.length > maxPayload)
12009
12075
  invalid();
12076
+ if (plain.isDeleted && r.payload === "")
12077
+ return { record: plain, version: value.version, serverUpdatedAt: value.server_updated_at };
12078
+ if (!cipherPattern.test(r.payload)) invalid();
12010
12079
  const envelope = JSON.parse(await decrypt(r.payload));
12011
12080
  if (!object(envelope) || envelope.schema !== 1 || envelope.account_id !== accountId || envelope.key_id !== keyId || !validRecord(envelope.record) || !sameMetadata(plain, envelope.record))
12012
12081
  invalid();
@@ -12016,30 +12085,46 @@ async function createRemoteChatStore(options) {
12016
12085
  serverUpdatedAt: value.server_updated_at
12017
12086
  };
12018
12087
  };
12019
- const putMany = async (writes, signal) => {
12020
- if (!Array.isArray(writes) || writes.length < 1 || writes.length > 25) invalid();
12088
+ const seal = async (record2, signal) => {
12089
+ if (record2.isDeleted) return "";
12090
+ const payload = await encrypt(
12091
+ JSON.stringify({ schema: 1, account_id: accountId, key_id: keyId, record: record2 })
12092
+ );
12093
+ signal?.throwIfAborted();
12094
+ if (!cipherPattern.test(payload) || payload.length > maxPayload) invalid();
12095
+ return payload;
12096
+ };
12097
+ const capture = (items, max, signal) => {
12098
+ if (!Array.isArray(items) || items.length < 1 || items.length > max) invalid();
12021
12099
  const seen = /* @__PURE__ */ new Set();
12022
- const captured = writes.map((write) => {
12100
+ let chunks3 = 0;
12101
+ return items.map((item) => {
12023
12102
  signal?.throwIfAborted();
12024
- if (!validRecord(write.record) || !integer(write.expectedVersion)) invalid();
12025
- const record2 = JSON.parse(JSON.stringify(write.record));
12026
- const recordKey = `${record2.kind}/${record2.id}`;
12103
+ if (!validRecord(item.record) || !embeddings(item)) invalid();
12104
+ chunks3 += item.embeddings?.length ?? 0;
12105
+ if (chunks3 > maxChunksPerRequest) invalid();
12106
+ const copy = JSON.parse(JSON.stringify(item));
12107
+ const recordKey = `${copy.record.kind}/${copy.record.id}`;
12027
12108
  if (seen.has(recordKey)) invalid();
12028
12109
  seen.add(recordKey);
12029
- return { record: record2, expectedVersion: write.expectedVersion };
12110
+ return copy;
12030
12111
  });
12112
+ };
12113
+ const putMany = async (writes, signal) => {
12114
+ if (Array.isArray(writes) && writes.some((w) => !integer(w.expectedVersion)))
12115
+ invalid();
12116
+ const captured = capture(writes, 25, signal);
12031
12117
  let bytes2 = 0;
12032
12118
  const prepared = [];
12033
12119
  for (const write of captured) {
12034
- const record2 = write.record;
12035
- const payload = await encrypt(
12036
- JSON.stringify({ schema: 1, account_id: accountId, key_id: keyId, record: record2 })
12037
- );
12038
- signal?.throwIfAborted();
12039
- if (!cipherPattern.test(payload) || payload.length > 2 * 1024 * 1024) invalid();
12120
+ const payload = await seal(write.record, signal);
12040
12121
  bytes2 += payload.length;
12041
- if (bytes2 > 8 * 1024 * 1024) invalid();
12042
- prepared.push({ record: wire(record2, payload), expected_version: write.expectedVersion });
12122
+ if (bytes2 > maxRequestCiphertext) invalid();
12123
+ prepared.push({
12124
+ record: wire(write.record, payload),
12125
+ expected_version: write.expectedVersion,
12126
+ ...vectorFields(write)
12127
+ });
12043
12128
  }
12044
12129
  const result = await request(
12045
12130
  "/records/batch",
@@ -12054,7 +12139,8 @@ async function createRemoteChatStore(options) {
12054
12139
  const out = [];
12055
12140
  for (let i = 0; i < result.items.length; i++) {
12056
12141
  const value = result.items[i];
12057
- if (!object(value) || value.version !== prepared[i].expected_version + 1 || !object(value.record) || value.record.payload !== prepared[i].record.payload)
12142
+ const deleted = prepared[i].record.is_deleted;
12143
+ if (!object(value) || !object(value.record) || value.record.kind !== prepared[i].record.kind || value.record.id !== prepared[i].record.id || value.record.payload !== prepared[i].record.payload || (deleted ? value.record.is_deleted !== true || !integer(value.version, 1) : value.version !== prepared[i].expected_version + 1))
12058
12144
  invalid();
12059
12145
  out.push(await decode(value));
12060
12146
  }
@@ -12083,7 +12169,7 @@ async function createRemoteChatStore(options) {
12083
12169
  async list(query) {
12084
12170
  const limit = query.limit ?? 20;
12085
12171
  const parent = query.conversationId ?? "";
12086
- if (!kinds.has(query.kind) || !integer(limit, 1) || query.includeDeleted !== void 0 && typeof query.includeDeleted !== "boolean" || limit > 50 || (query.cursor?.length ?? 0) > 2048 || (query.kind === "conversation" || query.kind === "project" ? parent !== "" : !id(parent)))
12172
+ if (!kinds.has(query.kind) || !integer(limit, 1) || query.includeDeleted !== void 0 && typeof query.includeDeleted !== "boolean" || limit > (query.kind === "message" ? 200 : 50) || (query.cursor?.length ?? 0) > 2048 || (query.kind === "conversation" || query.kind === "project" ? parent !== "" : !id(parent)))
12087
12173
  invalid();
12088
12174
  const params = new URLSearchParams({
12089
12175
  account_id: String(accountId),
@@ -12094,7 +12180,7 @@ async function createRemoteChatStore(options) {
12094
12180
  });
12095
12181
  if (query.cursor) params.set("cursor", query.cursor);
12096
12182
  const value = await request(`/records?${params}`, {}, query.signal);
12097
- if (!object(value) || !Array.isArray(value.items) || value.items.length > limit || value.next_cursor !== void 0 && (typeof value.next_cursor !== "string" || value.next_cursor.length > 2048))
12183
+ if (!object(value) || !Array.isArray(value.items) || value.items.length > limit || value.next_cursor !== void 0 && (typeof value.next_cursor !== "string" || value.next_cursor.length > 2048) || value.total !== void 0 && !integer(value.total))
12098
12184
  invalid();
12099
12185
  const items = [];
12100
12186
  for (const item of value.items) {
@@ -12104,11 +12190,258 @@ async function createRemoteChatStore(options) {
12104
12190
  items.push(result);
12105
12191
  }
12106
12192
  query.signal?.throwIfAborted();
12107
- return { items, ...value.next_cursor ? { nextCursor: value.next_cursor } : {} };
12193
+ return {
12194
+ items,
12195
+ ...value.next_cursor ? { nextCursor: value.next_cursor } : {},
12196
+ ...value.total !== void 0 ? { total: value.total } : {}
12197
+ };
12198
+ },
12199
+ putMany,
12200
+ async getMany(refs, signal) {
12201
+ if (!Array.isArray(refs)) invalid();
12202
+ const wanted = /* @__PURE__ */ new Map();
12203
+ for (const r of refs) {
12204
+ const checked = ref(r);
12205
+ wanted.set(`${checked.kind}/${checked.id}`, checked);
12206
+ }
12207
+ const found = /* @__PURE__ */ new Map();
12208
+ let pending = [...wanted.values()];
12209
+ while (pending.length > 0) {
12210
+ const batch = pending.slice(0, maxGetRefs);
12211
+ pending = pending.slice(maxGetRefs);
12212
+ const value = await request(
12213
+ "/records/get",
12214
+ { method: "POST", body: JSON.stringify({ account_id: accountId, refs: batch }) },
12215
+ signal
12216
+ );
12217
+ if (!object(value) || !Array.isArray(value.items) || value.remaining !== void 0 && !Array.isArray(value.remaining))
12218
+ invalid();
12219
+ const asked = new Set(batch.map((r) => `${r.kind}/${r.id}`));
12220
+ for (const item of value.items) {
12221
+ const snapshot = await decode(item);
12222
+ const key = `${snapshot.record.kind}/${snapshot.record.id}`;
12223
+ if (!asked.has(key) || found.has(key)) invalid();
12224
+ found.set(key, snapshot);
12225
+ }
12226
+ const remaining = (value.remaining ?? []).map(ref);
12227
+ if (remaining.some((r) => !asked.has(`${r.kind}/${r.id}`) || found.has(`${r.kind}/${r.id}`)))
12228
+ invalid();
12229
+ if (remaining.length > 0 && value.items.length === 0) invalid();
12230
+ pending = [...remaining, ...pending];
12231
+ }
12232
+ signal?.throwIfAborted();
12233
+ return [...wanted.keys()].flatMap((key) => {
12234
+ const snapshot = found.get(key);
12235
+ return snapshot ? [snapshot] : [];
12236
+ });
12237
+ },
12238
+ async account(signal) {
12239
+ const value = await request("/account", {}, signal);
12240
+ if (!object(value) || value.account_id !== accountId || !text2(value.key_id) || value.state !== "none" && value.state !== "migrating" && value.state !== "active" || !integer(value.record_count) || !integer(value.storage_bytes) || !integer(value.vector_count))
12241
+ invalid();
12242
+ if (value.key_id && value.key_id !== keyId)
12243
+ throw new ChatStoreError("Canonical chat key does not match", 409, "key_mismatch");
12244
+ const out = {
12245
+ keyId: value.key_id,
12246
+ state: value.state,
12247
+ recordCount: value.record_count,
12248
+ storageBytes: value.storage_bytes,
12249
+ vectorCount: value.vector_count
12250
+ };
12251
+ return out;
12108
12252
  },
12109
- putMany
12253
+ async importRecords(records, signal) {
12254
+ const captured = capture(records, maxImportRecords, signal);
12255
+ let bytes2 = 0;
12256
+ const prepared = [];
12257
+ for (const item of captured) {
12258
+ const payload = await seal(item.record, signal);
12259
+ bytes2 += payload.length;
12260
+ if (bytes2 > maxRequestCiphertext) invalid();
12261
+ prepared.push({ record: wire(item.record, payload), ...vectorFields(item) });
12262
+ }
12263
+ const value = await request(
12264
+ "/import",
12265
+ {
12266
+ method: "POST",
12267
+ body: JSON.stringify({ account_id: accountId, key_id: keyId, records: prepared })
12268
+ },
12269
+ signal
12270
+ );
12271
+ if (!object(value) || !integer(value.written) || value.written > prepared.length) invalid();
12272
+ return value.written;
12273
+ },
12274
+ async verify(revisions, signal) {
12275
+ if (!Array.isArray(revisions) || revisions.length > maxVerifyRevisions) invalid();
12276
+ const asked = /* @__PURE__ */ new Set();
12277
+ const wireRevisions = revisions.map((r) => {
12278
+ const checked = ref(r);
12279
+ if (!integer(r.updatedAt, 1) || typeof r.isDeleted !== "boolean") invalid();
12280
+ asked.add(`${checked.kind}/${checked.id}`);
12281
+ return {
12282
+ kind: checked.kind,
12283
+ id: checked.id,
12284
+ updated_at: r.updatedAt,
12285
+ is_deleted: r.isDeleted
12286
+ };
12287
+ });
12288
+ if (wireRevisions.length === 0) return [];
12289
+ const value = await request(
12290
+ "/verify",
12291
+ {
12292
+ method: "POST",
12293
+ body: JSON.stringify({ account_id: accountId, revisions: wireRevisions })
12294
+ },
12295
+ signal
12296
+ );
12297
+ if (!object(value) || !Array.isArray(value.missing)) invalid();
12298
+ const missing = value.missing.map(ref);
12299
+ if (missing.some((r) => !asked.has(`${r.kind}/${r.id}`))) invalid();
12300
+ return missing;
12301
+ },
12302
+ async activate(signal) {
12303
+ const value = await request(
12304
+ "/account",
12305
+ { method: "PUT", body: JSON.stringify({ account_id: accountId, state: "active" }) },
12306
+ signal
12307
+ );
12308
+ if (!object(value) || value.state !== "active" || typeof value.transitioned !== "boolean")
12309
+ invalid();
12310
+ return value.transitioned;
12311
+ },
12312
+ async changes(cursor, options2) {
12313
+ const limit = options2?.limit ?? 100;
12314
+ if (!integer(limit, 1) || limit > 200 || cursor !== void 0 && (!text2(cursor) || cursor.length > 2048))
12315
+ invalid();
12316
+ const params = new URLSearchParams({ account_id: String(accountId), limit: String(limit) });
12317
+ if (cursor) params.set("cursor", cursor);
12318
+ const value = await request(`/changes?${params}`, {}, options2?.signal);
12319
+ if (!object(value) || !Array.isArray(value.items) || value.items.length > limit || value.next_cursor !== void 0 && !text2(value.next_cursor) || value.changes_cursor !== void 0 && !text2(value.changes_cursor))
12320
+ invalid();
12321
+ const items = [];
12322
+ for (const item of value.items) items.push(await decode(item));
12323
+ options2?.signal?.throwIfAborted();
12324
+ return {
12325
+ items,
12326
+ ...value.next_cursor ? { nextCursor: value.next_cursor } : {},
12327
+ changesCursor: value.changes_cursor ?? cursor ?? ""
12328
+ };
12329
+ },
12330
+ async search(embedding2, options2) {
12331
+ const limit = options2?.limit ?? 20;
12332
+ const kindsFilter = options2?.kinds;
12333
+ if (!Array.isArray(embedding2) || !embeddings({
12334
+ record: { ...emptyMessage, isDeleted: false },
12335
+ embeddings: [embedding2]
12336
+ }) || !integer(limit, 1) || limit > 50 || kindsFilter !== void 0 && (!Array.isArray(kindsFilter) || kindsFilter.length === 0 || kindsFilter.some((k) => k !== "message" && k !== "summary")) || options2?.conversationId !== void 0 && !id(options2.conversationId))
12337
+ invalid();
12338
+ const value = await request(
12339
+ "/search",
12340
+ {
12341
+ method: "POST",
12342
+ body: JSON.stringify({
12343
+ account_id: accountId,
12344
+ embedding: embedding2.slice(0, storedDims),
12345
+ limit,
12346
+ ...kindsFilter ? { kinds: kindsFilter } : {},
12347
+ ...options2?.conversationId ? { conversation_id: options2.conversationId } : {}
12348
+ })
12349
+ },
12350
+ options2?.signal
12351
+ );
12352
+ if (!object(value) || !Array.isArray(value.items) || value.items.length > limit) invalid();
12353
+ const hits = [];
12354
+ for (const item of value.items) {
12355
+ if (!object(item) || !integer(item.chunk) || typeof item.score !== "number" || !Number.isFinite(item.score))
12356
+ invalid();
12357
+ const snapshot = await decode(item);
12358
+ if (snapshot.record.isDeleted || kindsFilter !== void 0 && !kindsFilter.includes(snapshot.record.kind) || snapshot.record.kind !== "message" && snapshot.record.kind !== "summary" || options2?.conversationId !== void 0 && snapshot.record.conversationId !== options2.conversationId)
12359
+ invalid();
12360
+ hits.push({ ...snapshot, chunk: item.chunk, score: item.score });
12361
+ }
12362
+ options2?.signal?.throwIfAborted();
12363
+ return hits;
12364
+ },
12365
+ async deleteAll(signal) {
12366
+ const value = await request(`/records?account_id=${accountId}`, { method: "DELETE" }, signal);
12367
+ if (!object(value) || !integer(value.deleted)) invalid();
12368
+ return value.deleted;
12369
+ },
12370
+ attachments: {
12371
+ async create(sizeBytes, signal) {
12372
+ if (!integer(sizeBytes, 1) || sizeBytes > maxAttachmentBytes) invalid();
12373
+ const value = await request(
12374
+ "/attachments",
12375
+ {
12376
+ method: "POST",
12377
+ body: JSON.stringify({ account_id: accountId, size_bytes: sizeBytes })
12378
+ },
12379
+ signal
12380
+ );
12381
+ if (!object(value)) invalid();
12382
+ const created = attachment(value.attachment);
12383
+ if (created.sizeBytes !== sizeBytes || created.state !== "pending") invalid();
12384
+ return { attachment: created, upload: presigned(value.upload) };
12385
+ },
12386
+ async commit(attachmentId, owner, signal) {
12387
+ if (!attachmentIdPattern.test(attachmentId) || !object(owner) || owner.kind !== "message" && owner.kind !== "summary" || !id(owner.id))
12388
+ invalid();
12389
+ const value = await request(
12390
+ `/attachments/${attachmentId}/commit`,
12391
+ {
12392
+ method: "POST",
12393
+ body: JSON.stringify({
12394
+ account_id: accountId,
12395
+ owner_kind: owner.kind,
12396
+ owner_id: owner.id
12397
+ })
12398
+ },
12399
+ signal
12400
+ );
12401
+ if (!object(value)) invalid();
12402
+ const committed = attachment(value.attachment);
12403
+ if (committed.id !== attachmentId || committed.state !== "committed" || committed.ownerKind !== owner.kind || committed.ownerId !== owner.id)
12404
+ invalid();
12405
+ return committed;
12406
+ },
12407
+ async get(attachmentId, signal) {
12408
+ if (!attachmentIdPattern.test(attachmentId)) invalid();
12409
+ let value;
12410
+ try {
12411
+ value = await request(`/attachments/${attachmentId}?account_id=${accountId}`, {}, signal);
12412
+ } catch (error) {
12413
+ if (error instanceof ChatStoreError && error.status === 404) return null;
12414
+ throw error;
12415
+ }
12416
+ if (!object(value)) invalid();
12417
+ const found = attachment(value.attachment);
12418
+ if (found.id !== attachmentId) invalid();
12419
+ return {
12420
+ attachment: found,
12421
+ ...value.download !== void 0 ? { download: presigned(value.download) } : {}
12422
+ };
12423
+ },
12424
+ async delete(attachmentId, signal) {
12425
+ if (!attachmentIdPattern.test(attachmentId)) invalid();
12426
+ await request(
12427
+ `/attachments/${attachmentId}?account_id=${accountId}`,
12428
+ { method: "DELETE" },
12429
+ signal
12430
+ );
12431
+ }
12432
+ }
12110
12433
  };
12111
12434
  }
12435
+ var emptyMessage = {
12436
+ kind: "message",
12437
+ id: "query",
12438
+ conversationId: "query",
12439
+ sortKey: 0,
12440
+ createdAt: 1,
12441
+ updatedAt: 1,
12442
+ isDeleted: false,
12443
+ data: {}
12444
+ };
12112
12445
 
12113
12446
  // src/lib/db/chat/lazyDecrypt.ts
12114
12447
  var LRU_CAPACITY = 256;
@@ -12471,14 +12804,14 @@ var MaskScopedEmbeddingCache = class extends Map {
12471
12804
  this.inner = inner;
12472
12805
  this.masked = masked;
12473
12806
  }
12474
- key(text14) {
12475
- return `${this.masked ? "m" : "r"}:${text14}`;
12807
+ key(text15) {
12808
+ return `${this.masked ? "m" : "r"}:${text15}`;
12476
12809
  }
12477
- get(text14) {
12478
- return this.inner.get(this.key(text14));
12810
+ get(text15) {
12811
+ return this.inner.get(this.key(text15));
12479
12812
  }
12480
- set(text14, value) {
12481
- this.inner.set(this.key(text14), value);
12813
+ set(text15, value) {
12814
+ this.inner.set(this.key(text15), value);
12482
12815
  return this;
12483
12816
  }
12484
12817
  };
@@ -17235,8 +17568,8 @@ var STOPWORDS = /* @__PURE__ */ new Set([
17235
17568
  "user",
17236
17569
  "users"
17237
17570
  ]);
17238
- function tokenize(text14) {
17239
- const m = text14.toLowerCase().match(TOKEN_RE);
17571
+ function tokenize(text15) {
17572
+ const m = text15.toLowerCase().match(TOKEN_RE);
17240
17573
  if (!m) return [];
17241
17574
  return m.filter((t) => !STOPWORDS.has(t));
17242
17575
  }
@@ -17448,13 +17781,13 @@ function embedVaultRows(ctx, options, rows, preparation) {
17448
17781
  );
17449
17782
  [...missing].forEach(([key, row], index) => {
17450
17783
  const request = batch.then((vectors) => {
17451
- const vector = vectors[index];
17452
- updateVaultMemoryEmbeddingOp(ctx, row.uniqueId, JSON.stringify(vector), model, {
17784
+ const vector2 = vectors[index];
17785
+ updateVaultMemoryEmbeddingOp(ctx, row.uniqueId, JSON.stringify(vector2), model, {
17453
17786
  content: row.content,
17454
17787
  updatedAt: row.updatedAt?.getTime()
17455
17788
  }).catch(() => {
17456
17789
  });
17457
- return vector;
17790
+ return vector2;
17458
17791
  }).finally(() => {
17459
17792
  entries.delete(key);
17460
17793
  if (entries.size === 0) pendingRows.get(ctx)?.delete(options.maskInput);
@@ -18068,12 +18401,12 @@ async function preEmbedVaultMemories(vaultCtx, embeddingOptions, cache, options)
18068
18401
  }
18069
18402
  }
18070
18403
  if (uncachedTexts.length > 0) {
18071
- const embeddings = await embedVaultRows(vaultCtx, embeddingOptions, uncachedRows);
18404
+ const embeddings2 = await embedVaultRows(vaultCtx, embeddingOptions, uncachedRows);
18072
18405
  for (let i = 0; i < uncachedKeys.length; i++) {
18073
18406
  cacheRowVector(
18074
18407
  cache,
18075
18408
  uncachedKeys[i],
18076
- Float32Array.from(embeddings[i]),
18409
+ Float32Array.from(embeddings2[i]),
18077
18410
  uncachedVersions[i],
18078
18411
  uncachedTexts[i]
18079
18412
  );
@@ -19879,7 +20212,7 @@ function createAutoExtractor(options) {
19879
20212
  ...options.retainCtx,
19880
20213
  embeddingOptions: {
19881
20214
  ...options.retainCtx.embeddingOptions,
19882
- maskInput: (text14) => piiRedactor.maskText(text14)
20215
+ maskInput: (text15) => piiRedactor.maskText(text15)
19883
20216
  }
19884
20217
  } : options.retainCtx;
19885
20218
  function processTurn(messages, conversationId) {
@@ -21817,12 +22150,12 @@ ${JSON.stringify(
21817
22150
  function parseAnswer(body, base, parseSchema) {
21818
22151
  if (typeof body !== "object" || body === null) return base;
21819
22152
  const obj = body;
21820
- const text14 = extractCompletionContent(obj) ?? "";
22153
+ const text15 = extractCompletionContent(obj) ?? "";
21821
22154
  const usage = obj.usage;
21822
22155
  let structuredOutput;
21823
- if (parseSchema && text14) {
22156
+ if (parseSchema && text15) {
21824
22157
  try {
21825
- structuredOutput = JSON.parse(extractJsonCandidate(text14));
22158
+ structuredOutput = JSON.parse(extractJsonCandidate(text15));
21826
22159
  } catch (err) {
21827
22160
  getLogger().warn("[memory/reflect] structured output was not valid JSON", {
21828
22161
  err: err instanceof Error ? err.message : String(err)
@@ -21832,7 +22165,7 @@ function parseAnswer(body, base, parseSchema) {
21832
22165
  const promptTokens = usage?.prompt_tokens ?? usage?.input_tokens ?? 0;
21833
22166
  const completionTokens = usage?.completion_tokens ?? usage?.output_tokens ?? 0;
21834
22167
  return {
21835
- text: text14,
22168
+ text: text15,
21836
22169
  ...structuredOutput !== void 0 && { structuredOutput },
21837
22170
  basedOn: base.basedOn,
21838
22171
  usage: {
@@ -22403,10 +22736,10 @@ init_logger();
22403
22736
  // src/lib/memory/store/remotePipeline.ts
22404
22737
  var import_uuid4 = require("uuid");
22405
22738
  init_logger();
22406
- function storedVector(vector) {
22407
- if (!Array.isArray(vector) || vector.length !== 1536 && vector.length !== 4096 || vector.some((v) => !Number.isFinite(v)))
22739
+ function storedVector(vector2) {
22740
+ if (!Array.isArray(vector2) || vector2.length !== 1536 && vector2.length !== 4096 || vector2.some((v) => !Number.isFinite(v)))
22408
22741
  throw new Error("Remote memories require a finite 1536/4096-dimensional vector");
22409
- const out = vector.slice(0, 1536);
22742
+ const out = vector2.slice(0, 1536);
22410
22743
  const norm = Math.sqrt(out.reduce((sum, v) => sum + v * v, 0));
22411
22744
  if (!norm) throw new Error("Remote query/content vector has no direction after MRL truncation");
22412
22745
  return out.map((v) => v / norm);
@@ -22765,7 +23098,7 @@ function createRemoteMemoryPipeline(options) {
22765
23098
  const factSource = {
22766
23099
  graphRanking: options.graphRanking,
22767
23100
  temporalRanking: options.temporalRanking,
22768
- search: async (text14, searchOptions, embeddingCache) => {
23101
+ search: async (text15, searchOptions, embeddingCache) => {
22769
23102
  const queryOptions = {
22770
23103
  ...embeddingOptions,
22771
23104
  taskType: "memory_recall_embed",
@@ -22774,8 +23107,8 @@ function createRemoteMemoryPipeline(options) {
22774
23107
  }
22775
23108
  };
22776
23109
  const { prepare } = operation("recall", queryOptions);
22777
- const prepared = await prepare(text14, searchOptions);
22778
- const ranked = await rankPreparedVaultCandidates(text14, prepared, queryOptions, searchOptions);
23110
+ const prepared = await prepare(text15, searchOptions);
23111
+ const ranked = await rankPreparedVaultCandidates(text15, prepared, queryOptions, searchOptions);
22779
23112
  return {
22780
23113
  ...ranked,
22781
23114
  rankedOnCosine: prepared.memories.length > 0 && !prepared.embeddingsUnavailable,
@@ -22865,7 +23198,7 @@ var METADATA_FIELDS = [
22865
23198
  "published_at",
22866
23199
  "geohash"
22867
23200
  ];
22868
- function text13(value) {
23201
+ function text14(value) {
22869
23202
  return typeof value === "string" && value !== "" ? value : void 0;
22870
23203
  }
22871
23204
  function num(value) {
@@ -22886,14 +23219,14 @@ function revision(raw) {
22886
23219
  };
22887
23220
  }
22888
23221
  function embedding(raw, model) {
22889
- const value = text13(raw.embedding);
23222
+ const value = text14(raw.embedding);
22890
23223
  if (!value) return void 0;
22891
23224
  try {
22892
- const vector = JSON.parse(value);
22893
- const stored2 = text13(raw.embedding_model);
22894
- if (stored2 === void 0 ? vector.length !== LOCAL_VECTOR_DIMS : stored2 !== model)
23225
+ const vector2 = JSON.parse(value);
23226
+ const stored2 = text14(raw.embedding_model);
23227
+ if (stored2 === void 0 ? vector2.length !== LOCAL_VECTOR_DIMS : stored2 !== model)
22895
23228
  return void 0;
22896
- return storedVector(vector);
23229
+ return storedVector(vector2);
22897
23230
  } catch {
22898
23231
  return void 0;
22899
23232
  }
@@ -22907,7 +23240,7 @@ function stringArray(value) {
22907
23240
  }
22908
23241
  }
22909
23242
  function sourceChunkIds(raw) {
22910
- const value = text13(raw.source_chunk_ids);
23243
+ const value = text14(raw.source_chunk_ids);
22911
23244
  const ids = value && stringArray(value);
22912
23245
  return ids ? serializeSourceChunkIds(ids) : value;
22913
23246
  }
@@ -22919,39 +23252,39 @@ function fitsNearby(row) {
22919
23252
  }
22920
23253
  function invalid2(raw) {
22921
23254
  const id2 = raw.id;
22922
- return typeof id2 !== "string" || id2 === "" || bytes(id2) > MAX_ID_BYTES || !text13(raw.scope) || (num(raw.created_at) ?? 0) <= 0 || (num(raw.updated_at) ?? 0) <= 0;
23255
+ return typeof id2 !== "string" || id2 === "" || bytes(id2) > MAX_ID_BYTES || !text14(raw.scope) || (num(raw.created_at) ?? 0) <= 0 || (num(raw.updated_at) ?? 0) <= 0;
22923
23256
  }
22924
23257
  function metadata2(raw, model) {
22925
- const vector = embedding(raw, model);
23258
+ const vector2 = embedding(raw, model);
22926
23259
  return {
22927
23260
  scope: raw.scope,
22928
- kind: text13(raw.kind),
22929
- level: text13(raw.level),
22930
- folder_id: text13(raw.folder_id),
23261
+ kind: text14(raw.kind),
23262
+ level: text14(raw.level),
23263
+ folder_id: text14(raw.folder_id),
22931
23264
  is_deleted: bool(raw.is_deleted) ?? false,
22932
- ...vector && { embedding: vector, embedding_model: model },
23265
+ ...vector2 && { embedding: vector2, embedding_model: model },
22933
23266
  source_chunk_ids: sourceChunkIds(raw),
22934
23267
  proof_count: num(raw.proof_count),
22935
- source: text13(raw.source),
23268
+ source: text14(raw.source),
22936
23269
  event_time_start: num(raw.event_time_start),
22937
23270
  event_time_end: num(raw.event_time_end),
22938
- event_time_kind: text13(raw.event_time_kind),
23271
+ event_time_kind: text14(raw.event_time_kind),
22939
23272
  topics_user_managed: bool(raw.topics_user_managed),
22940
- topics: text13(raw.topics),
23273
+ topics: text14(raw.topics),
22941
23274
  topics_updated_at: num(raw.topics_updated_at),
22942
- media: text13(raw.media),
23275
+ media: text14(raw.media),
22943
23276
  topics_extracted_at: num(raw.topics_extracted_at),
22944
23277
  topics_extracted_version: num(raw.topics_extracted_version),
22945
- superseded_by: text13(raw.superseded_by),
23278
+ superseded_by: text14(raw.superseded_by),
22946
23279
  superseded_at: num(raw.superseded_at),
22947
23280
  last_observed_at: num(raw.last_observed_at),
22948
- fact_type: text13(raw.fact_type),
23281
+ fact_type: text14(raw.fact_type),
22949
23282
  archived_at: num(raw.archived_at),
22950
- trust_tier: text13(raw.trust_tier),
22951
- visibility: text13(raw.visibility),
23283
+ trust_tier: text14(raw.trust_tier),
23284
+ visibility: text14(raw.visibility),
22952
23285
  twin_opt_in: bool(raw.twin_opt_in),
22953
23286
  published_at: num(raw.published_at),
22954
- geohash: text13(raw.geohash)
23287
+ geohash: text14(raw.geohash)
22955
23288
  };
22956
23289
  }
22957
23290
  function defined(value) {
@@ -22962,7 +23295,7 @@ function defined(value) {
22962
23295
  async function prepareRow(raw, canonical, rings, model, updatedAt) {
22963
23296
  const deleted = bool(raw.is_deleted) ?? false;
22964
23297
  const { encrypt } = memoryCipher(canonical);
22965
- const localKindValue = text13(raw.kind_value);
23298
+ const localKindValue = text14(raw.kind_value);
22966
23299
  let plaintext;
22967
23300
  let kindValue;
22968
23301
  try {
@@ -23106,7 +23439,7 @@ async function remoteMetadata(request, ids, signal) {
23106
23439
  }
23107
23440
  async function backfillTopics(ctx) {
23108
23441
  if (!ctx.entityCtx) return;
23109
- const topicless = (await getAllVaultMemoryRowsOp(ctx)).filter((raw) => !text13(raw.topics) && !bool(raw.is_deleted)).map((raw) => raw.id);
23442
+ const topicless = (await getAllVaultMemoryRowsOp(ctx)).filter((raw) => !text14(raw.topics) && !bool(raw.is_deleted)).map((raw) => raw.id);
23110
23443
  if (topicless.length > 0) await backfillMemoryTopicsOp(ctx, topicless);
23111
23444
  }
23112
23445
  async function migrateMemoriesToRemote(options) {
@@ -23217,7 +23550,7 @@ async function migrateMemoriesToRemote(options) {
23217
23550
  track(reembedded, !!row.embedding && !usable.has(id2));
23218
23551
  track(unembedded, !row.embedding);
23219
23552
  track(placeholders, plaintext === void 0);
23220
- track(truncated, row.source_chunk_ids !== text13(local.get(id2).source_chunk_ids));
23553
+ track(truncated, row.source_chunk_ids !== text14(local.get(id2).source_chunk_ids));
23221
23554
  }
23222
23555
  let sent = 0;
23223
23556
  options.onProgress?.({ imported: sent, toImport: upload.length });
@@ -23635,12 +23968,12 @@ function createRemoteMemoryStore(options) {
23635
23968
  };
23636
23969
  const embedInBackground = ({ memory: { memory_id: id2, content } }) => {
23637
23970
  generateEmbedding(content, embeddingOptions).then(
23638
- (vector) => serialized(id2, async () => {
23971
+ (vector2) => serialized(id2, async () => {
23639
23972
  const current = await live(id2);
23640
23973
  if (!current || current.memory.content !== content || current.memory.embedding?.length)
23641
23974
  return;
23642
23975
  const saved = await persistence.put(
23643
- { ...current.memory, embedding: storedVector(vector), embedding_model: model },
23976
+ { ...current.memory, embedding: storedVector(vector2), embedding_model: model },
23644
23977
  current
23645
23978
  );
23646
23979
  notify("embedding", [saved]);
@@ -24133,8 +24466,8 @@ function createRemoteMemoryStore(options) {
24133
24466
  return finish();
24134
24467
  }
24135
24468
  const writes = targets.flatMap((record2, i) => {
24136
- const vector = vectors[i];
24137
- if (!vector) {
24469
+ const vector2 = vectors[i];
24470
+ if (!vector2) {
24138
24471
  result.failed++;
24139
24472
  return [];
24140
24473
  }
@@ -24143,7 +24476,7 @@ function createRemoteMemoryStore(options) {
24143
24476
  {
24144
24477
  memory: {
24145
24478
  ...record2.memory,
24146
- embedding: storedVector(vector),
24479
+ embedding: storedVector(vector2),
24147
24480
  embedding_model: model
24148
24481
  },
24149
24482
  expectedVersion: record2
@@ -24223,10 +24556,10 @@ function createRemoteMemoryStore(options) {
24223
24556
  if (!rejectsInput(error)) return null;
24224
24557
  }
24225
24558
  const vectors = [];
24226
- for (const [i, text14] of texts.entries()) {
24559
+ for (const [i, text15] of texts.entries()) {
24227
24560
  signal?.throwIfAborted();
24228
24561
  try {
24229
- [vectors[i]] = await generateEmbeddings([text14], embeddingOptions, signal);
24562
+ [vectors[i]] = await generateEmbeddings([text15], embeddingOptions, signal);
24230
24563
  } catch (error) {
24231
24564
  signal?.throwIfAborted();
24232
24565
  if (!rejectsInput(error)) return null;
@@ -24917,8 +25250,8 @@ async function synthesizeFacet(facet, ctx, options, prior, vaultPreparation) {
24917
25250
  memories
24918
25251
  });
24919
25252
  const noEvidence = result.basedOn.memoryIds.length === 0;
24920
- const { text: text14, legitimateEmpty } = extractFacetText(result.structuredOutput);
24921
- if (!text14 && !legitimateEmpty && !noEvidence) {
25253
+ const { text: text15, legitimateEmpty } = extractFacetText(result.structuredOutput);
25254
+ if (!text15 && !legitimateEmpty && !noEvidence) {
24922
25255
  getLogger().warn(
24923
25256
  "[memory/synthesizeProfile] facet synthesis returned degraded-empty; using fallback section",
24924
25257
  { facet: facet.key, recalledCount: result.basedOn.memoryIds.length }
@@ -24928,12 +25261,12 @@ async function synthesizeFacet(facet, ctx, options, prior, vaultPreparation) {
24928
25261
  const section = {
24929
25262
  key: facet.key,
24930
25263
  label: facet.label,
24931
- text: text14,
25264
+ text: text15,
24932
25265
  sourceMemoryIds: result.basedOn.memoryIds,
24933
25266
  generatedAt: Date.now()
24934
25267
  };
24935
- if (options.redactor && text14) {
24936
- const redacted = await options.redactor.redactTextAsync(text14);
25268
+ if (options.redactor && text15) {
25269
+ const redacted = await options.redactor.redactTextAsync(text15);
24937
25270
  section.text = redacted.text;
24938
25271
  }
24939
25272
  if (!legitimateEmpty && !noEvidence) {
@@ -25158,9 +25491,9 @@ async function assembleMemoryContext(options) {
25158
25491
  if (!refs.length) return [];
25159
25492
  const rows = await loadFacts({ ...filters, memoryIds: refs.map((r) => r.memoryId) });
25160
25493
  const byId = new Map(rows.filter(active).map((m) => [m.uniqueId, m]));
25161
- return refs.flatMap((ref) => {
25162
- const m = byId.get(ref.memoryId);
25163
- return m ? [asItem(m, "session", ref.score)] : [];
25494
+ return refs.flatMap((ref2) => {
25495
+ const m = byId.get(ref2.memoryId);
25496
+ return m ? [asItem(m, "session", ref2.score)] : [];
25164
25497
  });
25165
25498
  },
25166
25499
  []
@@ -25922,7 +26255,7 @@ async function verifyFactSupport(items, options) {
25922
26255
  }
25923
26256
  const maxEvidenceChars = Math.max(1, options.maxEvidenceChars ?? DEFAULT_MAX_EVIDENCE_CHARS);
25924
26257
  const redactor = resolvePiiRedactor(options.piiRedaction ?? true);
25925
- const safe = async (text14) => redactor ? (await redactor.redactTextAsync(text14)).text : text14;
26258
+ const safe = async (text15) => redactor ? (await redactor.redactTextAsync(text15)).text : text15;
25926
26259
  let truncatedCount = 0;
25927
26260
  const parts = [];
25928
26261
  for (const [i, item] of items.entries()) {
@@ -26038,7 +26371,7 @@ async function verifyMemoriesForPublish(memories, sources, options) {
26038
26371
  );
26039
26372
  const pending = [];
26040
26373
  for (const { index, uniqueId, content, ids } of withinBudget) {
26041
- const evidence = ids.map((id2) => resolved.get(id2) ?? null).filter((text14) => text14 !== null);
26374
+ const evidence = ids.map((id2) => resolved.get(id2) ?? null).filter((text15) => text15 !== null);
26042
26375
  const dropped = ids.length - evidence.length;
26043
26376
  if (ids.some((id2) => unreadable.has(id2))) {
26044
26377
  results[index] = {
@@ -26848,9 +27181,9 @@ async function autoFilterClientTools(clientTools, promptEmbeddings, cache, embed
26848
27181
  if (toolsNeedingEmbeddings.length > 0) {
26849
27182
  try {
26850
27183
  const descriptions = toolsNeedingEmbeddings.map((t) => t.description);
26851
- const embeddings = await generateEmbeddings(descriptions, embeddingOptions);
27184
+ const embeddings2 = await generateEmbeddings(descriptions, embeddingOptions);
26852
27185
  for (let i = 0; i < toolsNeedingEmbeddings.length; i++) {
26853
- cache.set(toolsNeedingEmbeddings[i].name, embeddings[i]);
27186
+ cache.set(toolsNeedingEmbeddings[i].name, embeddings2[i]);
26854
27187
  }
26855
27188
  } catch {
26856
27189
  return { tools: clientTools, activatedSetNames: /* @__PURE__ */ new Set(), matchedSetNames: /* @__PURE__ */ new Set() };
@@ -27314,8 +27647,8 @@ var sessionCache = /* @__PURE__ */ new Map();
27314
27647
  function generateRequestId() {
27315
27648
  return ++requestIdCounter;
27316
27649
  }
27317
- function parseSSEResponse(text14) {
27318
- const events = text14.split(/\n\n+/);
27650
+ function parseSSEResponse(text15) {
27651
+ const events = text15.split(/\n\n+/);
27319
27652
  let lastEventData = "";
27320
27653
  for (const event of events) {
27321
27654
  const dataLines = [];
@@ -27337,11 +27670,11 @@ function parseSSEResponse(text14) {
27337
27670
  }
27338
27671
  async function parseResponseBody(response) {
27339
27672
  const contentType = response.headers.get("Content-Type") || "";
27340
- const text14 = await response.text();
27341
- if (contentType.includes("text/event-stream") || text14.startsWith("event:") || text14.startsWith("data:")) {
27342
- return parseSSEResponse(text14);
27673
+ const text15 = await response.text();
27674
+ if (contentType.includes("text/event-stream") || text15.startsWith("event:") || text15.startsWith("data:")) {
27675
+ return parseSSEResponse(text15);
27343
27676
  }
27344
- return JSON.parse(text14);
27677
+ return JSON.parse(text15);
27345
27678
  }
27346
27679
  async function initializeMCPSession(accessToken) {
27347
27680
  const requestId = generateRequestId();
@@ -28664,9 +28997,9 @@ New lines of conversation:
28664
28997
  {new_lines}
28665
28998
 
28666
28999
  New summary:`;
28667
- function estimateTokens(text14) {
28668
- if (!text14) return 0;
28669
- return Math.ceil(text14.length / 4);
29000
+ function estimateTokens(text15) {
29001
+ if (!text15) return 0;
29002
+ return Math.ceil(text15.length / 4);
28670
29003
  }
28671
29004
  var PER_MESSAGE_OVERHEAD_TOKENS = 4;
28672
29005
  var MAX_MESSAGES_PER_SUMMARIZATION = 20;
@@ -28726,14 +29059,14 @@ function splitMessagesAtThreshold(messages, tokenThreshold, minWindowMessages) {
28726
29059
  }
28727
29060
  async function redactSummaryPrompt(prompt, redactor, onPiiRedacted) {
28728
29061
  if (!redactor) return prompt;
28729
- const { text: text14, matches } = await redactor.redactTextAsync(prompt);
29062
+ const { text: text15, matches } = await redactor.redactTextAsync(prompt);
28730
29063
  if (matches.length > 0 && onPiiRedacted) {
28731
29064
  try {
28732
29065
  onPiiRedacted(matches);
28733
29066
  } catch {
28734
29067
  }
28735
29068
  }
28736
- return text14;
29069
+ return text15;
28737
29070
  }
28738
29071
  async function progressiveSummarize(options) {
28739
29072
  const {
@@ -29471,7 +29804,7 @@ function useChatStorage(options) {
29471
29804
  [piiRedaction, currentConversationId]
29472
29805
  );
29473
29806
  const maskForEmbedding = (0, import_react5.useCallback)(
29474
- (text14) => isPiiRedactor(resolvedPiiRedaction) ? resolvedPiiRedaction.maskText(text14) : text14,
29807
+ (text15) => isPiiRedactor(resolvedPiiRedaction) ? resolvedPiiRedaction.maskText(text15) : text15,
29475
29808
  [resolvedPiiRedaction]
29476
29809
  );
29477
29810
  const maskEmbeddingInput = isPiiRedactor(resolvedPiiRedaction) ? maskForEmbedding : void 0;
@@ -29674,13 +30007,13 @@ function useChatStorage(options) {
29674
30007
  const opts = { getToken, baseUrl, model: embeddingModel };
29675
30008
  if (shouldChunkMessage(message.content, DEFAULT_CHUNK_SIZE)) {
29676
30009
  const textChunks = chunkText(message.content);
29677
- const embeddings = await generateEmbeddings(
30010
+ const embeddings2 = await generateEmbeddings(
29678
30011
  textChunks.map((c) => mask(c.text)),
29679
30012
  opts
29680
30013
  );
29681
30014
  const messageChunks = textChunks.map((chunk, i) => ({
29682
30015
  text: chunk.text,
29683
- vector: embeddings[i],
30016
+ vector: embeddings2[i],
29684
30017
  startOffset: chunk.startOffset,
29685
30018
  endOffset: chunk.endOffset
29686
30019
  }));
@@ -30317,7 +30650,7 @@ function useChatStorage(options) {
30317
30650
  return {
30318
30651
  callRedactor: redactor,
30319
30652
  callPiiRedaction: forInnerSend,
30320
- maskForCall: (text14) => redactor ? redactor.maskText(text14) : text14
30653
+ maskForCall: (text15) => redactor ? redactor.maskText(text15) : text15
30321
30654
  };
30322
30655
  };
30323
30656
  const retirementError = await retirePendingTurn();
@@ -30326,7 +30659,7 @@ function useChatStorage(options) {
30326
30659
  getLogger().warn("[useChatStorage] detached partial not saved:", retirementError);
30327
30660
  }
30328
30661
  const effectiveAssistantUniqueId = assistantUniqueId ?? (resumable ? `msg_${(0, import_uuid7.v7)()}` : void 0);
30329
- const embedToolText = (text14, mask, masked, token) => {
30662
+ const embedToolText = (text15, mask, masked, token) => {
30330
30663
  const opts = {
30331
30664
  getToken: token,
30332
30665
  baseUrl,
@@ -30334,10 +30667,10 @@ function useChatStorage(options) {
30334
30667
  maskInput: mask,
30335
30668
  cache: embeddingCache ? maskScopedEmbeddingCache(embeddingCache, masked) : void 0
30336
30669
  };
30337
- return shouldChunkMessage(text14, DEFAULT_CHUNK_SIZE) ? generateEmbeddings(
30338
- chunkText(text14).map((c) => c.text),
30670
+ return shouldChunkMessage(text15, DEFAULT_CHUNK_SIZE) ? generateEmbeddings(
30671
+ chunkText(text15).map((c) => c.text),
30339
30672
  opts
30340
- ) : generateEmbedding(text14, opts);
30673
+ ) : generateEmbedding(text15, opts);
30341
30674
  };
30342
30675
  if (walletAddress && signMessage && !hasEncryptionKey(walletAddress)) {
30343
30676
  try {