@evomap/evolver-core 2.0.0-beta.9 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/dist/algo/antiDistill.js +1 -167
  2. package/dist/algo/bans.js +1 -33
  3. package/dist/algo/candidateAssembly.d.ts +7 -2
  4. package/dist/algo/candidateAssembly.js +1 -205
  5. package/dist/algo/capabilityCandidates.js +1 -136
  6. package/dist/algo/confidence.js +1 -196
  7. package/dist/algo/conversationSniffer.js +1 -149
  8. package/dist/algo/cycleEngine.d.ts +23 -2
  9. package/dist/algo/cycleEngine.js +1 -425
  10. package/dist/algo/cycleFailureClassifier.js +1 -112
  11. package/dist/algo/epigenetics.js +1 -41
  12. package/dist/algo/evolutionEvent.js +1 -24
  13. package/dist/algo/exploration.d.ts +7 -0
  14. package/dist/algo/exploration.js +1 -55
  15. package/dist/algo/geneHealth.d.ts +2 -2
  16. package/dist/algo/geneHealth.js +1 -16
  17. package/dist/algo/geneIntake.js +1 -128
  18. package/dist/algo/genePromotion.js +1 -53
  19. package/dist/algo/geneSelection.d.ts +63 -5
  20. package/dist/algo/geneSelection.js +1 -246
  21. package/dist/algo/index.d.ts +2 -0
  22. package/dist/algo/index.js +1 -20
  23. package/dist/algo/memoryGraph.js +1 -86
  24. package/dist/algo/mutation.js +1 -22
  25. package/dist/algo/orchestrator.d.ts +8 -1
  26. package/dist/algo/orchestrator.js +1 -75
  27. package/dist/algo/publishEligibility.d.ts +34 -0
  28. package/dist/algo/publishEligibility.js +1 -0
  29. package/dist/algo/solidify.js +1 -63
  30. package/dist/algo/strategyPresets.js +1 -61
  31. package/dist/algo/ucb1.d.ts +53 -0
  32. package/dist/algo/ucb1.js +1 -0
  33. package/dist/assetstore/assetSidecarRecords.d.ts +7 -2
  34. package/dist/assetstore/assetSidecarRecords.js +238 -0
  35. package/dist/assetstore/assetSidecarRecovery.js +2 -2
  36. package/dist/assetstore/assetStoreHealth.d.ts +6 -0
  37. package/dist/assetstore/assetStoreHealth.js +56 -14
  38. package/dist/assetstore/assetStoreStorage.d.ts +1 -1
  39. package/dist/assetstore/assetStoreStorage.js +27 -9
  40. package/dist/assetstore/assetSyncLedger.d.ts +86 -0
  41. package/dist/assetstore/assetSyncLedger.js +683 -4
  42. package/dist/assetstore/index.d.ts +1 -0
  43. package/dist/assetstore/index.js +1 -0
  44. package/dist/assetstore/localAssetStoreSnapshot.d.ts +51 -0
  45. package/dist/assetstore/localAssetStoreSnapshot.js +329 -0
  46. package/dist/assetstore/localJsonl.d.ts +4 -2
  47. package/dist/assetstore/localJsonl.js +89 -9
  48. package/dist/assetstore/provenance.d.ts +80 -4
  49. package/dist/assetstore/provenance.js +313 -5
  50. package/dist/assetstore/provider.d.ts +58 -1
  51. package/dist/assetstore/provider.js +97 -6
  52. package/dist/benchmark/antiGeneBenchmark.d.ts +2 -0
  53. package/dist/benchmark/antiGeneBenchmark.js +1 -251
  54. package/dist/benchmark/antiGeneImpact.js +1 -34
  55. package/dist/benchmark/antiGeneRollout.d.ts +2 -0
  56. package/dist/benchmark/antiGeneRollout.js +1 -268
  57. package/dist/benchmark/benchmark.js +1 -26
  58. package/dist/benchmark/evolutionThesisSolver.js +1 -41
  59. package/dist/benchmark/index.d.ts +2 -1
  60. package/dist/benchmark/index.js +1 -6
  61. package/dist/benchmark/selectionFlatAbstention.d.ts +152 -0
  62. package/dist/benchmark/selectionFlatAbstention.js +1 -0
  63. package/dist/benchmark/thesis.js +1 -150
  64. package/dist/benchmark/triggerShift.js +1 -106
  65. package/dist/bootstrap/envFingerprint.d.ts +9 -0
  66. package/dist/bootstrap/envFingerprint.js +5 -0
  67. package/dist/bootstrap/index.d.ts +2 -1
  68. package/dist/bootstrap/index.js +2 -1
  69. package/dist/bootstrap/v1EnvCompat.d.ts +111 -0
  70. package/dist/bootstrap/v1EnvCompat.js +280 -0
  71. package/dist/cycle/cycleTimeline.js +1 -74
  72. package/dist/cycle/index.js +1 -2
  73. package/dist/cycle/stateMachine.js +1 -25
  74. package/dist/events/eventArchive.d.ts +2 -0
  75. package/dist/events/eventArchive.js +13 -3
  76. package/dist/events/eventSchema.d.ts +7 -7
  77. package/dist/events/eventStore.d.ts +2 -0
  78. package/dist/events/eventStore.js +5 -1
  79. package/dist/events/ingest.d.ts +1 -0
  80. package/dist/events/ingest.js +1 -0
  81. package/dist/events/paths.d.ts +3 -1
  82. package/dist/events/paths.js +4 -0
  83. package/dist/events/public.d.ts +2 -2
  84. package/dist/events/public.js +2 -2
  85. package/dist/events/reports.d.ts +2 -0
  86. package/dist/events/reports.js +4 -0
  87. package/dist/exec/autoExec.d.ts +43 -2
  88. package/dist/exec/autoExec.js +76 -9
  89. package/dist/exec/autonomousCycle.d.ts +22 -4
  90. package/dist/exec/autonomousCycle.js +64 -13
  91. package/dist/exec/claudeBridge.d.ts +32 -7
  92. package/dist/exec/claudeBridge.js +281 -29
  93. package/dist/exec/prompt.js +5 -1
  94. package/dist/exec/runnerRegistry.d.ts +68 -26
  95. package/dist/exec/runnerRegistry.js +307 -72
  96. package/dist/exec/selfPr.js +1 -7
  97. package/dist/feedback/envelope.d.ts +61 -0
  98. package/dist/feedback/envelope.js +168 -0
  99. package/dist/feedback/index.d.ts +1 -0
  100. package/dist/feedback/index.js +1 -0
  101. package/dist/hooks/hooks.js +1 -0
  102. package/dist/hub/agentDirectory.js +1 -104
  103. package/dist/hub/assetCallLog.d.ts +35 -1
  104. package/dist/hub/assetCallLog.js +1 -72
  105. package/dist/hub/bindings.d.ts +8 -1
  106. package/dist/hub/bindings.js +1 -110
  107. package/dist/hub/capability.d.ts +90 -3
  108. package/dist/hub/capability.js +1 -1
  109. package/dist/hub/conversationDistiller.js +1 -264
  110. package/dist/hub/fake.d.ts +2 -2
  111. package/dist/hub/fake.js +1 -70
  112. package/dist/hub/hubReview.js +1 -106
  113. package/dist/hub/index.js +1 -11
  114. package/dist/hub/ingest.js +1 -15
  115. package/dist/hub/questionGenerator.d.ts +5 -1
  116. package/dist/hub/questionGenerator.js +1 -406
  117. package/dist/hub/reuseDecision.js +1 -127
  118. package/dist/hub/sanitize.js +1 -322
  119. package/dist/index.d.ts +3 -1
  120. package/dist/index.js +4 -1
  121. package/dist/mailbox/dispatch.d.ts +1 -1
  122. package/dist/mailbox/dispatch.js +22 -6
  123. package/dist/mailbox/envelope.d.ts +7 -1
  124. package/dist/mailbox/envelope.js +9 -2
  125. package/dist/mailbox/ipcServer.d.ts +10 -2
  126. package/dist/mailbox/ipcServer.js +163 -13
  127. package/dist/mailbox/store.d.ts +89 -3
  128. package/dist/mailbox/store.js +895 -41
  129. package/dist/material/boundary.js +1 -14
  130. package/dist/material/consumer.js +1 -55
  131. package/dist/material/emit.js +1 -52
  132. package/dist/material/factory.js +1 -25
  133. package/dist/material/index.js +1 -9
  134. package/dist/material/materialArchive.js +1 -466
  135. package/dist/material/materialStore.js +1 -69
  136. package/dist/material/sampling.js +1 -39
  137. package/dist/material/sources.js +1 -33
  138. package/dist/material/watermark.js +1 -76
  139. package/dist/ops/evolutionGraphProjection.d.ts +20 -0
  140. package/dist/ops/evolutionGraphProjection.js +315 -0
  141. package/dist/ops/index.d.ts +2 -1
  142. package/dist/ops/index.js +2 -1
  143. package/dist/ops/selfUpdate.d.ts +8 -0
  144. package/dist/ops/selfUpdate.js +24 -8
  145. package/dist/personality/drift.js +1 -106
  146. package/dist/personality/events.js +1 -37
  147. package/dist/personality/evolveOps.js +1 -93
  148. package/dist/personality/index.js +1 -11
  149. package/dist/personality/mutate.js +1 -39
  150. package/dist/personality/pivot.js +1 -22
  151. package/dist/personality/prompt.js +1 -62
  152. package/dist/personality/riskGate.js +1 -80
  153. package/dist/personality/schema.d.ts +16 -16
  154. package/dist/personality/schema.js +1 -119
  155. package/dist/personality/select.js +1 -71
  156. package/dist/personality/stats.js +1 -82
  157. package/dist/personality/store.js +1 -92
  158. package/dist/schema/common.js +1 -17
  159. package/dist/schema/evolutionGraph.d.ts +784 -0
  160. package/dist/schema/evolutionGraph.js +1 -0
  161. package/dist/schema/index.d.ts +1 -0
  162. package/dist/schema/index.js +1 -5
  163. package/dist/schema/material.js +1 -50
  164. package/dist/schema/problem.js +1 -45
  165. package/dist/schema/proofOfWork.js +1 -9
  166. package/dist/schema/signal.d.ts +3 -3
  167. package/dist/schema/signal.js +1 -19
  168. package/dist/signals/curriculum.d.ts +55 -0
  169. package/dist/signals/curriculum.js +1 -0
  170. package/dist/signals/cycleHistoryFromEvents.js +1 -96
  171. package/dist/signals/expand.d.ts +15 -1
  172. package/dist/signals/expand.js +1 -125
  173. package/dist/signals/extractor.d.ts +2 -2
  174. package/dist/signals/extractor.js +1 -57
  175. package/dist/signals/index.d.ts +3 -1
  176. package/dist/signals/index.js +1 -6
  177. package/dist/signals/metaSignals.d.ts +4 -0
  178. package/dist/signals/metaSignals.js +1 -158
  179. package/dist/signals/signalGate.js +1 -40
  180. package/dist/signals/taskDomain.d.ts +22 -0
  181. package/dist/signals/taskDomain.js +1 -0
  182. package/dist/signals/traceSignals.js +1 -123
  183. package/dist/strategy/constraintAblation.js +1 -3074
  184. package/dist/strategy/constraintAblationPredicates.d.ts +31 -0
  185. package/dist/strategy/constraintAblationPredicates.js +1 -0
  186. package/dist/strategy/experiment.js +1 -63
  187. package/dist/strategy/index.js +1 -3
  188. package/dist/strategy/strategyPoint.js +1 -23
  189. package/dist/trace/index.d.ts +3 -1
  190. package/dist/trace/index.js +3 -1
  191. package/dist/trace/learningTrace.d.ts +209 -0
  192. package/dist/trace/learningTrace.js +276 -0
  193. package/dist/trace/proxyTurns.d.ts +31 -0
  194. package/dist/trace/proxyTurns.js +137 -0
  195. package/dist/verify/sandboxRunner.d.ts +28 -0
  196. package/dist/verify/sandboxRunner.js +218 -19
  197. package/dist/verify/sandboxedValidation.d.ts +9 -0
  198. package/dist/verify/sandboxedValidation.js +113 -13
  199. package/dist/verify/validation.d.ts +11 -1
  200. package/dist/verify/validation.js +31 -0
  201. package/package.json +5 -2
@@ -1,4 +1,87 @@
1
- import { computeAssetId, verifyAssetId } from '../wire/index.js';
1
+ import { canonicalize, computeAssetId, verifyAssetId } from '../wire/index.js';
2
+ export class FrozenAssetIdCollisionError extends Error {
3
+ assetId;
4
+ code = 'FROZEN_ASSET_ID_COLLISION';
5
+ constructor(assetId) {
6
+ super('frozen asset_id already exists with different content');
7
+ this.assetId = assetId;
8
+ this.name = 'FrozenAssetIdCollisionError';
9
+ }
10
+ }
11
+ export class InvalidFrozenPutResultError extends Error {
12
+ code = 'INVALID_FROZEN_PUT_RESULT';
13
+ constructor() {
14
+ super('invalid frozen put result');
15
+ this.name = 'InvalidFrozenPutResultError';
16
+ }
17
+ }
18
+ export function frozenAssetRecordsEqual(left, right) {
19
+ return canonicalize(left) === canonicalize(right);
20
+ }
21
+ export function validateFrozenPutResult(value, expectedAssetId) {
22
+ if (!value || typeof value !== 'object' || Array.isArray(value))
23
+ throw new InvalidFrozenPutResultError();
24
+ const result = value;
25
+ if (result['asset_id'] !== expectedAssetId
26
+ || typeof result['stored'] !== 'boolean'
27
+ || result['verified'] !== false) {
28
+ throw new InvalidFrozenPutResultError();
29
+ }
30
+ return value;
31
+ }
32
+ export class InvalidConditionalPutResultError extends Error {
33
+ reason;
34
+ code = 'INVALID_CONDITIONAL_PUT_RESULT';
35
+ constructor(reason) {
36
+ super(`invalid conditional put result: ${reason}`);
37
+ this.reason = reason;
38
+ this.name = 'InvalidConditionalPutResultError';
39
+ }
40
+ }
41
+ /** Validate an injected provider response before callers treat it as an explicit write/no-write decision. */
42
+ export function validateConditionalPutResult(value, expectedAssetId, options) {
43
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
44
+ throw new InvalidConditionalPutResultError('malformed_result');
45
+ }
46
+ const result = value;
47
+ const status = result['status'];
48
+ const collisionWithAssetId = result['collisionWithAssetId'];
49
+ if (typeof result['asset_id'] !== 'string'
50
+ || typeof result['stored'] !== 'boolean'
51
+ || typeof result['verified'] !== 'boolean'
52
+ || (status !== 'stored' && status !== 'already_exists' && status !== 'logical_collision')
53
+ || (result['logicalId'] !== undefined
54
+ && (typeof result['logicalId'] !== 'string'
55
+ || !result['logicalId'].trim()
56
+ || result['logicalId'] !== result['logicalId'].trim()))
57
+ || (collisionWithAssetId !== undefined
58
+ && (typeof collisionWithAssetId !== 'string'
59
+ || !collisionWithAssetId.trim()
60
+ || collisionWithAssetId !== collisionWithAssetId.trim()))) {
61
+ throw new InvalidConditionalPutResultError('malformed_result');
62
+ }
63
+ if (result['asset_id'] !== expectedAssetId) {
64
+ throw new InvalidConditionalPutResultError('asset_id_mismatch');
65
+ }
66
+ if (result['stored'] !== (status === 'stored')) {
67
+ throw new InvalidConditionalPutResultError('inconsistent_status');
68
+ }
69
+ const allowLogicalCollision = options?.allowLogicalCollision === true;
70
+ if (status === 'logical_collision'
71
+ && (!collisionWithAssetId || collisionWithAssetId === expectedAssetId || allowLogicalCollision)) {
72
+ throw new InvalidConditionalPutResultError('invalid_collision');
73
+ }
74
+ if (status === 'stored' && collisionWithAssetId && !allowLogicalCollision) {
75
+ throw new InvalidConditionalPutResultError('collision_bypass');
76
+ }
77
+ return value;
78
+ }
79
+ export function supportsAtomicConditionalPut(provider) {
80
+ return typeof provider.putConditional === 'function';
81
+ }
82
+ export function supportsAtomicFrozenConditionalPut(provider) {
83
+ return typeof provider.putFrozenConditional === 'function';
84
+ }
2
85
  export class AssetIdMismatchError extends Error {
3
86
  claimed;
4
87
  actual;
@@ -12,6 +95,18 @@ export class AssetIdMismatchError extends Error {
12
95
  export class CapsuleGeneBindingError extends Error {
13
96
  constructor() { super('Capsule.gene 必须非空或显式 "ad-hoc" 哨兵 (批注#28/M3-4)'); this.name = 'CapsuleGeneBindingError'; }
14
97
  }
98
+ /**
99
+ * M3-4 强绑定校验: Capsule.gene 必须非空(否则一条无来源基因的经验会污染选择池).
100
+ * 抽成独立 helper 以便 normalizeForPut(校验落库路径)与 ingestUnverified(冻结落库路径,
101
+ * 绕过 normalizeForPut)共用同一条不变量,不让降级路径把绑定校验漏掉.
102
+ */
103
+ export function assertCapsuleGeneBinding(asset) {
104
+ if (asset.type !== 'Capsule')
105
+ return;
106
+ const gene = asset.gene;
107
+ if (typeof gene !== 'string' || gene.length === 0)
108
+ throw new CapsuleGeneBindingError();
109
+ }
15
110
  /**
16
111
  * 落库前规范化(共享给各 provider): 计算/校验 asset_id + 强绑定校验.
17
112
  * - 缺 asset_id → 计算填入(verified=false 表示非入参自带).
@@ -19,11 +114,7 @@ export class CapsuleGeneBindingError extends Error {
19
114
  * - Capsule.gene 必须非空(M3-4 强绑定).
20
115
  */
21
116
  export function normalizeForPut(asset) {
22
- if (asset.type === 'Capsule') {
23
- const gene = asset.gene;
24
- if (typeof gene !== 'string' || gene.length === 0)
25
- throw new CapsuleGeneBindingError();
26
- }
117
+ assertCapsuleGeneBinding(asset);
27
118
  const actual = computeAssetId(asset);
28
119
  if (actual === null)
29
120
  throw new Error('computeAssetId 失败: 资产非对象');
@@ -70,6 +70,8 @@ export interface AntiGeneBenchmarkOptions {
70
70
  minFailureDelta?: number;
71
71
  now?: () => number;
72
72
  eventsPath?: string;
73
+ /** Apply the pre-IDF semantic scorer consistently to both A/B arms. */
74
+ disableSemanticIdf?: boolean;
73
75
  }
74
76
  export interface AntiGeneBenchmarkDeps {
75
77
  store: AssetStoreProvider;
@@ -1,251 +1 @@
1
- import { mkdtempSync, rmSync } from 'node:fs';
2
- import { tmpdir } from 'node:os';
3
- import { join } from 'node:path';
4
- import { LocalJsonlProvider } from '../assetstore/localJsonl.js';
5
- import { ReviewLedger } from '../assetstore/reviewLedger.js';
6
- import { Ingestor } from '../events/ingest.js';
7
- import { LineTooLargeError } from '../events/eventStore.js';
8
- import { CycleEngine } from '../algo/cycleEngine.js';
9
- import { runEvolutionCycle } from '../algo/orchestrator.js';
10
- import { makeGeneSelectionPoint } from '../algo/geneSelection.js';
11
- import { parseOverblockedAntiGenes, summarizeOverblockedAntiGenes } from './antiGeneImpact.js';
12
- const ALL_ASSETS_LIMIT = Number.MAX_SAFE_INTEGER;
13
- const ASSET_KINDS = ['Gene', 'Capsule', 'EvolutionEvent', 'AntiGene'];
14
- function buildProblem(task, now) {
15
- return {
16
- id: task.id,
17
- signature: `anti-gene-benchmark:${task.id}`,
18
- signatureV: 1,
19
- firstSeenAt: new Date(now - 1000).toISOString(),
20
- lastSeenAt: new Date(now).toISOString(),
21
- occurrences: 3,
22
- linkedSignals: task.signals,
23
- resolvedBy: null,
24
- status: 'open',
25
- value: { severity: 1, reach: 1, strategicFit: 1, novelty: 0, costEst: 0 },
26
- consecutiveFailures: 0,
27
- cooldownUntil: null,
28
- extensions: {},
29
- };
30
- }
31
- async function copyAssets(source, dest, includeAntiGenes) {
32
- for (const kind of ASSET_KINDS) {
33
- if (kind === 'AntiGene' && !includeAntiGenes)
34
- continue;
35
- for (const asset of await source.list(kind, ALL_ASSETS_LIMIT))
36
- await dest.put(asset);
37
- }
38
- }
39
- function copyReview(source, dest) {
40
- for (const record of source?.records() ?? []) {
41
- dest.mark({
42
- assetId: record.assetId,
43
- state: record.state,
44
- ...(record.by ? { by: record.by } : {}),
45
- ...(record.reason ? { reason: record.reason } : {}),
46
- at: record.at,
47
- });
48
- }
49
- }
50
- function defaultReviewForStore(store, now) {
51
- const baseDir = store.baseDir;
52
- return typeof baseDir === 'string' ? new ReviewLedger(baseDir, now) : null;
53
- }
54
- function observedWarningIds(decision) {
55
- if (!decision || typeof decision !== 'object')
56
- return [];
57
- const warnings = decision.antiWarnings;
58
- if (!Array.isArray(warnings))
59
- return [];
60
- return warnings
61
- .map((warning) => {
62
- if (!warning || typeof warning !== 'object' || Array.isArray(warning))
63
- return '';
64
- const row = warning;
65
- return String(row.antiGeneId ?? row.assetId ?? '');
66
- })
67
- .filter(Boolean);
68
- }
69
- function missingExpected(expected, observed) {
70
- const seen = new Set(observed);
71
- return (expected ?? []).filter((id) => !seen.has(id));
72
- }
73
- function executeFor(outcome) {
74
- return () => ({
75
- outcome: {
76
- status: outcome.status,
77
- score: outcome.score ?? (outcome.status === 'success' ? 0.9 : 0.2),
78
- ...(outcome.reason ? { reason: outcome.reason } : {}),
79
- },
80
- });
81
- }
82
- async function runOneArm(arm, task, source, sourceReview, rootDir, now) {
83
- const armDir = join(rootDir, arm, task.id);
84
- const store = new LocalJsonlProvider(join(armDir, 'assets'));
85
- const review = new ReviewLedger(join(armDir, 'assets'), now);
86
- await copyAssets(source, store, arm === 'antiGene');
87
- copyReview(sourceReview, review);
88
- const eventPath = join(armDir, 'events.jsonl');
89
- const engine = new CycleEngine({
90
- ingestor: new Ingestor({ path: eventPath, now }),
91
- selection: makeGeneSelectionPoint(),
92
- store,
93
- now,
94
- });
95
- const spec = task.outcomes[arm];
96
- const opts = {
97
- cycleId: `${arm}-${task.id}`,
98
- problem: buildProblem(task, now()),
99
- signals: task.signals,
100
- category: task.category ?? 'repair',
101
- target: task.target ?? 't.ts',
102
- expectedEffect: task.expectedEffect ?? `anti-gene benchmark ${task.id}`,
103
- summary: task.summary ?? `anti-gene benchmark ${task.id}`,
104
- confidence: task.confidence ?? 0.9,
105
- execute: executeFor(spec),
106
- review,
107
- consumePendingSignals: false,
108
- };
109
- const result = await runEvolutionCycle(engine, store, opts);
110
- const observed = observedWarningIds(result.decision);
111
- return {
112
- status: spec.status,
113
- score: spec.score ?? (spec.status === 'success' ? 0.9 : 0.2),
114
- repeatedFailure: spec.repeatedFailure === true,
115
- overblocked: spec.overblocked === true,
116
- observedAntiWarnings: observed,
117
- missingExpectedWarnings: arm === 'antiGene' ? missingExpected(task.expectedAntiWarnings, observed) : [],
118
- };
119
- }
120
- function armMetrics(arm, results) {
121
- const n = results.length;
122
- const failures = results.filter((r) => r.status === 'failed').length;
123
- return {
124
- arm,
125
- n,
126
- failures,
127
- failureRate: n > 0 ? failures / n : 0,
128
- repeatedFailures: results.filter((r) => r.repeatedFailure).length,
129
- overblocked: results.filter((r) => r.overblocked).length,
130
- observedWarnings: results.reduce((sum, r) => sum + r.observedAntiWarnings.length, 0),
131
- };
132
- }
133
- function verdict(report, minSamples, minFailureDelta) {
134
- if (report.baseline.n < minSamples || report.antiGene.n < minSamples)
135
- return 'insufficient_samples';
136
- if (report.failureDelta >= minFailureDelta && report.antiGene.observedWarnings > 0 && report.missingExpectedWarnings === 0)
137
- return 'anti_gene_better';
138
- if (report.failureDelta < -minFailureDelta || (minFailureDelta === 0 && report.failureDelta < 0))
139
- return 'anti_gene_worse';
140
- return 'no_clear_improvement';
141
- }
142
- function buildReport(suite, taskResults, minSamples, minFailureDelta) {
143
- const baseline = armMetrics('baseline', taskResults.map((r) => r.baseline));
144
- const antiGene = armMetrics('antiGene', taskResults.map((r) => r.antiGene));
145
- const partial = {
146
- suite: suite.name,
147
- tasks: suite.tasks.length,
148
- baseline,
149
- antiGene,
150
- missingExpectedWarnings: taskResults.reduce((sum, r) => sum + r.antiGene.missingExpectedWarnings.length, 0),
151
- overblocked: antiGene.overblocked,
152
- overblockedAntiGenes: summarizeOverblockedAntiGenes(taskResults),
153
- failureDelta: baseline.failureRate - antiGene.failureRate,
154
- taskResults,
155
- };
156
- return { ...partial, verdict: verdict(partial, minSamples, minFailureDelta) };
157
- }
158
- export async function runAntiGeneBenchmark(suite, deps, options = {}) {
159
- const now = options.now ?? Date.now;
160
- const sourceReview = deps.review ?? defaultReviewForStore(deps.store, now);
161
- if (!sourceReview)
162
- throw new Error('AntiGene benchmark requires a ReviewLedger or a LocalJsonlProvider-backed store so review state can be copied');
163
- const minSamples = options.minSamples ?? 30;
164
- const minFailureDelta = options.minFailureDelta ?? 0.05;
165
- const rootDir = mkdtempSync(join(tmpdir(), 'anti-gene-benchmark-'));
166
- try {
167
- const taskResults = [];
168
- for (const task of suite.tasks) {
169
- taskResults.push({
170
- taskId: task.id,
171
- baseline: await runOneArm('baseline', task, deps.store, sourceReview, rootDir, now),
172
- antiGene: await runOneArm('antiGene', task, deps.store, sourceReview, rootDir, now),
173
- });
174
- }
175
- const report = buildReport(suite, taskResults, minSamples, minFailureDelta);
176
- if (options.eventsPath)
177
- await writeAntiGeneBenchmarkResult(report, options.eventsPath, now);
178
- return report;
179
- }
180
- finally {
181
- rmSync(rootDir, { recursive: true, force: true });
182
- }
183
- }
184
- export async function writeAntiGeneBenchmarkResult(report, eventsPath, now = Date.now) {
185
- const ingestor = new Ingestor({ path: eventsPath, now });
186
- try {
187
- await ingestReportPayload(ingestor, report);
188
- }
189
- catch (error) {
190
- if (!(error instanceof LineTooLargeError))
191
- throw error;
192
- await ingestReportPayload(ingestor, compactReportPayload(report, 5));
193
- }
194
- }
195
- async function ingestReportPayload(ingestor, payload) {
196
- await ingestor.ingest({
197
- type: 'anti_gene.benchmark_result',
198
- human: { title: `anti-gene benchmark ${payload.suite}` },
199
- payload: payload,
200
- actor: { kind: 'machine', id: 'anti-gene-benchmark' },
201
- });
202
- }
203
- function compactWarnings(items) {
204
- return items.slice(0, 3);
205
- }
206
- function compactRunResult(result) {
207
- return {
208
- ...result,
209
- observedAntiWarnings: compactWarnings(result.observedAntiWarnings),
210
- missingExpectedWarnings: compactWarnings(result.missingExpectedWarnings),
211
- };
212
- }
213
- function compactReportPayload(report, maxTasks) {
214
- return {
215
- ...report,
216
- taskResults: report.taskResults.slice(0, maxTasks).map((task) => ({
217
- taskId: task.taskId,
218
- baseline: compactRunResult(task.baseline),
219
- antiGene: compactRunResult(task.antiGene),
220
- })),
221
- taskResultsTruncated: Math.max(0, report.taskResults.length - maxTasks),
222
- };
223
- }
224
- function isReportPayload(value) {
225
- return !!value && typeof value === 'object'
226
- && typeof value.suite === 'string'
227
- && typeof value.tasks === 'number'
228
- && typeof value.verdict === 'string';
229
- }
230
- function normalizeReportPayload(value) {
231
- const parsed = parseOverblockedAntiGenes(value.overblockedAntiGenes);
232
- const truncated = typeof value.taskResultsTruncated === 'number' && value.taskResultsTruncated > 0;
233
- return {
234
- ...value,
235
- overblockedAntiGenes: parsed ?? (truncated ? [] : summarizeOverblockedAntiGenes(value.taskResults ?? [])),
236
- };
237
- }
238
- export function antiGeneBenchmarkReportsFromEvents(events) {
239
- const out = [];
240
- for (const event of events) {
241
- if (event.type !== 'anti_gene.benchmark_result')
242
- continue;
243
- if (isReportPayload(event.payload))
244
- out.push(normalizeReportPayload(event.payload));
245
- }
246
- return out;
247
- }
248
- export function latestAntiGeneBenchmarkReport(events) {
249
- const reports = antiGeneBenchmarkReportsFromEvents(events);
250
- return reports[reports.length - 1] ?? null;
251
- }
1
+ const _0x13c5db=_0x40c7;(function(_0x46bc26,_0x167082){const _0x5d7e8b=_0x40c7,_0x1f6b99=_0x46bc26();while(!![]){try{const _0x70642e=parseInt(_0x5d7e8b(0x190,'\x73\x42\x44\x25'))/(-0x7d*-0x1f+-0x1*-0x1938+-0x285a)*(-parseInt(_0x5d7e8b(0x1c9,'\x6d\x32\x37\x23'))/(-0x1d6b+0x1f75+-0x104*0x2))+parseInt(_0x5d7e8b(0x17a,'\x35\x61\x58\x6a'))/(-0x845+0x143f+-0xbf7)+parseInt(_0x5d7e8b(0x1dd,'\x29\x4f\x5e\x41'))/(0x1*-0x377+-0x1abe+0x1*0x1e39)+parseInt(_0x5d7e8b(0x228,'\x69\x67\x39\x66'))/(0x101*-0x9+0x2*0x10db+-0x18a8)+parseInt(_0x5d7e8b(0x187,'\x62\x4b\x6c\x6b'))/(-0x9bd+-0x5*0xf1+-0x2*-0x73c)+parseInt(_0x5d7e8b(0x231,'\x23\x4c\x21\x5d'))/(-0x8bd*-0x2+-0x502*0x1+-0xc71)*(-parseInt(_0x5d7e8b(0x232,'\x4d\x5d\x4b\x32'))/(0x7f7*-0x2+0x16b1+-0x6bb))+parseInt(_0x5d7e8b(0x229,'\x4d\x48\x62\x48'))/(-0xd45*-0x1+0x2304+-0x1820*0x2)*(-parseInt(_0x5d7e8b(0x1e6,'\x35\x61\x58\x6a'))/(-0x437+-0x23cc+-0x1*-0x280d));if(_0x70642e===_0x167082)break;else _0x1f6b99['push'](_0x1f6b99['shift']());}catch(_0x34c5e1){_0x1f6b99['push'](_0x1f6b99['shift']());}}}(_0x39ce,-0x9bd82+0x1*-0xa1429+0x6a37*0x3c));import{mkdtempSync,rmSync}from'\x6e\x6f\x64\x65\x3a\x66\x73';import{tmpdir}from'\x6e\x6f\x64\x65\x3a\x6f\x73';import{join}from'\x6e\x6f\x64\x65\x3a\x70\x61\x74\x68';import{LocalJsonlProvider}from'\x2e\x2e\x2f\x61\x73\x73\x65\x74\x73\x74\x6f\x72\x65\x2f\x6c\x6f\x63\x61\x6c\x4a\x73\x6f\x6e\x6c\x2e\x6a\x73';import{ReviewLedger}from'\x2e\x2e\x2f\x61\x73\x73\x65\x74\x73\x74\x6f\x72\x65\x2f\x72\x65\x76\x69\x65\x77\x4c\x65\x64\x67\x65\x72\x2e\x6a\x73';function _0x40c7(_0x1d54e6,_0x622842){_0x1d54e6=_0x1d54e6-(-0x1f82+0x5*0x31+0x3*0xaa9);const _0x4eb8fb=_0x39ce();let _0x4c467d=_0x4eb8fb[_0x1d54e6];if(_0x40c7['\x43\x77\x6a\x4b\x64\x43']===undefined){var _0x48a054=function(_0x5e22f0){const _0x101b76='\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2b\x2f\x3d';let _0x5983eb='',_0x44b59e='';for(let _0x97b3e9=-0x1750+-0x4c*-0x7d+-0xdcc,_0x22b661,_0x44a0f6,_0x402a1b=-0xc30+-0x2b*0xe5+0x32a7*0x1;_0x44a0f6=_0x5e22f0['\x63\x68\x61\x72\x41\x74'](_0x402a1b++);~_0x44a0f6&&(_0x22b661=_0x97b3e9%(0xaaf+-0x2337+0x623*0x4)?_0x22b661*(-0x1c5c+0x1d0d+-0x71)+_0x44a0f6:_0x44a0f6,_0x97b3e9++%(0x1010+0x1*0x1baa+0x2ea*-0xf))?_0x5983eb+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x884+-0xd3*-0xa+-0xfc3&_0x22b661>>(-(0xa8d*0x3+-0x1*0x18be+-0x13*0x5d)*_0x97b3e9&-0x1*-0xa13+0x1264+-0x1*0x1c71)):0xa5e+-0x1*-0x248+-0x1*0xca6){_0x44a0f6=_0x101b76['\x69\x6e\x64\x65\x78\x4f\x66'](_0x44a0f6);}for(let _0x3158f9=-0xb2e+-0x6*0x2aa+-0x7a*-0x39,_0x4678c5=_0x5983eb['\x6c\x65\x6e\x67\x74\x68'];_0x3158f9<_0x4678c5;_0x3158f9++){_0x44b59e+='\x25'+('\x30\x30'+_0x5983eb['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x3158f9)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x296+0x1d66+-0x1fec))['\x73\x6c\x69\x63\x65'](-(-0x5f*0x3d+0x264b+-0xfa6));}return decodeURIComponent(_0x44b59e);};const _0x3f8e6f=function(_0x58de82,_0x3d99ba){let _0x5d02b8=[],_0x38905d=0xe78*-0x2+-0x1a4c+0x373c*0x1,_0x26d473,_0x8b4286='';_0x58de82=_0x48a054(_0x58de82);let _0x170b97;for(_0x170b97=-0x1*-0x7d3+0x1*-0x2195+-0x896*-0x3;_0x170b97<-0x6cf*-0x1+0xb*-0x194+0xb8d;_0x170b97++){_0x5d02b8[_0x170b97]=_0x170b97;}for(_0x170b97=0x97*0x29+-0x1*-0x21cd+0xe7f*-0x4;_0x170b97<-0x50*-0x34+-0x1358+0x418;_0x170b97++){_0x38905d=(_0x38905d+_0x5d02b8[_0x170b97]+_0x3d99ba['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x170b97%_0x3d99ba['\x6c\x65\x6e\x67\x74\x68']))%(0x8ed*-0x1+0x3db+0x612),_0x26d473=_0x5d02b8[_0x170b97],_0x5d02b8[_0x170b97]=_0x5d02b8[_0x38905d],_0x5d02b8[_0x38905d]=_0x26d473;}_0x170b97=0x1*-0x779+0x8*0x179+-0x44f,_0x38905d=-0xe46+0x1792*0x1+-0x94c;for(let _0x2e80b8=0xe2*-0x24+0x211*-0x6+0x2c2e;_0x2e80b8<_0x58de82['\x6c\x65\x6e\x67\x74\x68'];_0x2e80b8++){_0x170b97=(_0x170b97+(-0x2317+0x1ff0+0x328))%(0x1*-0x1c19+0x3*0xb11+-0x41a),_0x38905d=(_0x38905d+_0x5d02b8[_0x170b97])%(0x4fd+0x127b+0x8*-0x2cf),_0x26d473=_0x5d02b8[_0x170b97],_0x5d02b8[_0x170b97]=_0x5d02b8[_0x38905d],_0x5d02b8[_0x38905d]=_0x26d473,_0x8b4286+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x58de82['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2e80b8)^_0x5d02b8[(_0x5d02b8[_0x170b97]+_0x5d02b8[_0x38905d])%(-0x4f*-0x7c+0x1ae3*0x1+-0xb*0x5d5)]);}return _0x8b4286;};_0x40c7['\x63\x6c\x52\x77\x65\x79']=_0x3f8e6f,_0x40c7['\x57\x68\x54\x55\x44\x51']={},_0x40c7['\x43\x77\x6a\x4b\x64\x43']=!![];}const _0xc72271=_0x4eb8fb[-0xc04+-0x1adc*0x1+-0x26e*-0x10],_0x52d203=_0x1d54e6+_0xc72271,_0x2b7671=_0x40c7['\x57\x68\x54\x55\x44\x51'][_0x52d203];return!_0x2b7671?(_0x40c7['\x62\x4f\x52\x4e\x76\x58']===undefined&&(_0x40c7['\x62\x4f\x52\x4e\x76\x58']=!![]),_0x4c467d=_0x40c7['\x63\x6c\x52\x77\x65\x79'](_0x4c467d,_0x622842),_0x40c7['\x57\x68\x54\x55\x44\x51'][_0x52d203]=_0x4c467d):_0x4c467d=_0x2b7671,_0x4c467d;}import{Ingestor}from'\x2e\x2e\x2f\x65\x76\x65\x6e\x74\x73\x2f\x69\x6e\x67\x65\x73\x74\x2e\x6a\x73';import{LineTooLargeError}from'\x2e\x2e\x2f\x65\x76\x65\x6e\x74\x73\x2f\x65\x76\x65\x6e\x74\x53\x74\x6f\x72\x65\x2e\x6a\x73';import{CycleEngine}from'\x2e\x2e\x2f\x61\x6c\x67\x6f\x2f\x63\x79\x63\x6c\x65\x45\x6e\x67\x69\x6e\x65\x2e\x6a\x73';import{runEvolutionCycle}from'\x2e\x2e\x2f\x61\x6c\x67\x6f\x2f\x6f\x72\x63\x68\x65\x73\x74\x72\x61\x74\x6f\x72\x2e\x6a\x73';import{makeGeneSelectionPoint}from'\x2e\x2e\x2f\x61\x6c\x67\x6f\x2f\x67\x65\x6e\x65\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x6a\x73';import{parseOverblockedAntiGenes,summarizeOverblockedAntiGenes}from'\x2e\x2f\x61\x6e\x74\x69\x47\x65\x6e\x65\x49\x6d\x70\x61\x63\x74\x2e\x6a\x73';const ALL_ASSETS_LIMIT=Number[_0x13c5db(0x243,'\x43\x6d\x54\x37')+_0x13c5db(0x186,'\x39\x31\x46\x46')],ASSET_KINDS=['\x47\x65\x6e\x65',_0x13c5db(0x1fb,'\x33\x32\x6b\x31'),_0x13c5db(0x206,'\x43\x6d\x54\x37')+_0x13c5db(0x17d,'\x67\x75\x23\x6a'),'\x41\x6e\x74\x69\x47\x65\x6e\x65'];function buildProblem(_0x4fc5d1,_0x5584a2){const _0x1547d5=_0x13c5db;return{'\x69\x64':_0x4fc5d1['\x69\x64'],'\x73\x69\x67\x6e\x61\x74\x75\x72\x65':_0x1547d5(0x194,'\x4d\x5d\x4b\x32')+_0x1547d5(0x1df,'\x58\x69\x44\x74')+_0x1547d5(0x1bd,'\x71\x62\x50\x55')+_0x4fc5d1['\x69\x64'],'\x73\x69\x67\x6e\x61\x74\x75\x72\x65\x56':0x1,'\x66\x69\x72\x73\x74\x53\x65\x65\x6e\x41\x74':new Date(_0x5584a2-(0xcac+-0x32b*-0x6+-0x1bc6))[_0x1547d5(0x1ba,'\x48\x38\x33\x31')+_0x1547d5(0x1b0,'\x33\x66\x21\x31')](),'\x6c\x61\x73\x74\x53\x65\x65\x6e\x41\x74':new Date(_0x5584a2)['\x74\x6f\x49\x53\x4f\x53\x74\x72'+_0x1547d5(0x24a,'\x6e\x6d\x70\x21')](),'\x6f\x63\x63\x75\x72\x72\x65\x6e\x63\x65\x73':0x3,'\x6c\x69\x6e\x6b\x65\x64\x53\x69\x67\x6e\x61\x6c\x73':_0x4fc5d1[_0x1547d5(0x203,'\x30\x25\x41\x46')],'\x72\x65\x73\x6f\x6c\x76\x65\x64\x42\x79':null,'\x73\x74\x61\x74\x75\x73':_0x1547d5(0x201,'\x21\x43\x40\x25'),'\x76\x61\x6c\x75\x65':{'\x73\x65\x76\x65\x72\x69\x74\x79':0x1,'\x72\x65\x61\x63\x68':0x1,'\x73\x74\x72\x61\x74\x65\x67\x69\x63\x46\x69\x74':0x1,'\x6e\x6f\x76\x65\x6c\x74\x79':0x0,'\x63\x6f\x73\x74\x45\x73\x74':0x0},'\x63\x6f\x6e\x73\x65\x63\x75\x74\x69\x76\x65\x46\x61\x69\x6c\x75\x72\x65\x73':0x0,'\x63\x6f\x6f\x6c\x64\x6f\x77\x6e\x55\x6e\x74\x69\x6c':null,'\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x73':{}};}async function copyAssets(_0x3fc8b9,_0x474ab9,_0x5025f4){const _0x813f5e=_0x13c5db;for(const _0x568fbb of ASSET_KINDS){if(_0x568fbb===_0x813f5e(0x189,'\x69\x67\x39\x66')&&!_0x5025f4)continue;for(const _0x4e9805 of await _0x3fc8b9[_0x813f5e(0x1e1,'\x37\x56\x53\x6c')](_0x568fbb,ALL_ASSETS_LIMIT))await _0x474ab9[_0x813f5e(0x1db,'\x59\x4b\x4d\x50')](_0x4e9805);}}function copyReview(_0x60f311,_0x1a46ef){const _0x580142=_0x13c5db;for(const _0xfdb6fd of _0x60f311?.[_0x580142(0x1b4,'\x30\x25\x41\x46')]()??[]){_0x1a46ef[_0x580142(0x1ad,'\x33\x66\x21\x31')]({'\x61\x73\x73\x65\x74\x49\x64':_0xfdb6fd[_0x580142(0x24b,'\x32\x2a\x56\x36')],'\x73\x74\x61\x74\x65':_0xfdb6fd[_0x580142(0x1a5,'\x33\x32\x6b\x31')],..._0xfdb6fd['\x62\x79']?{'\x62\x79':_0xfdb6fd['\x62\x79']}:{},..._0xfdb6fd[_0x580142(0x1b1,'\x73\x6e\x57\x6a')]?{'\x72\x65\x61\x73\x6f\x6e':_0xfdb6fd[_0x580142(0x170,'\x35\x39\x6c\x4c')]}:{},'\x61\x74':_0xfdb6fd['\x61\x74']});}}function defaultReviewForStore(_0x104f9e,_0x26d512){const _0x4e386c=_0x13c5db,_0x14cdaf=_0x104f9e[_0x4e386c(0x1d0,'\x35\x61\x58\x6a')];return typeof _0x14cdaf===_0x4e386c(0x217,'\x71\x25\x62\x52')?new ReviewLedger(_0x14cdaf,_0x26d512):null;}function observedWarningIds(_0x142366){const _0x19ab32=_0x13c5db;if(!_0x142366||typeof _0x142366!==_0x19ab32(0x22c,'\x62\x4b\x6c\x6b'))return[];const _0x17b9fd=_0x142366[_0x19ab32(0x1b9,'\x73\x42\x44\x25')+_0x19ab32(0x21c,'\x70\x53\x64\x23')];if(!Array['\x69\x73\x41\x72\x72\x61\x79'](_0x17b9fd))return[];return _0x17b9fd[_0x19ab32(0x1ce,'\x66\x62\x47\x6b')](_0x3402cf=>{const _0x2def4f=_0x19ab32;if(_0x2def4f(0x1c5,'\x43\x4c\x67\x77')===_0x2def4f(0x1aa,'\x38\x41\x30\x23')){if(!_0x5b8550||typeof _0x2e9b81!==_0x2def4f(0x178,'\x52\x65\x39\x47'))return[];const _0xd5f037=_0x4c173e[_0x2def4f(0x177,'\x43\x4c\x67\x77')+'\x69\x6e\x67\x73'];if(!_0x2bf8d7['\x69\x73\x41\x72\x72\x61\x79'](_0xd5f037))return[];return _0xd5f037[_0x2def4f(0x1c2,'\x52\x65\x39\x47')](_0x5e2476=>{const _0x5765c9=_0x2def4f;if(!_0x5e2476||typeof _0x5e2476!==_0x5765c9(0x239,'\x32\x2a\x56\x36')||_0x4a711a['\x69\x73\x41\x72\x72\x61\x79'](_0x5e2476))return'';const _0xb7a78e=_0x5e2476;return _0x26ab5d(_0xb7a78e[_0x5765c9(0x1c3,'\x67\x75\x23\x6a')+'\x49\x64']??_0xb7a78e[_0x5765c9(0x207,'\x4d\x48\x62\x48')]??'');})[_0x2def4f(0x1b7,'\x25\x31\x24\x4a')](_0xee5edd);}else{if(!_0x3402cf||typeof _0x3402cf!==_0x2def4f(0x181,'\x69\x67\x39\x66')||Array[_0x2def4f(0x223,'\x4d\x25\x4b\x43')](_0x3402cf))return'';const _0x391e4c=_0x3402cf;return String(_0x391e4c['\x61\x6e\x74\x69\x47\x65\x6e\x65'+'\x49\x64']??_0x391e4c[_0x2def4f(0x1f2,'\x26\x31\x28\x52')]??'');}})[_0x19ab32(0x1d5,'\x57\x68\x6c\x28')](Boolean);}function missingExpected(_0x336d6f,_0x40b613){const _0x295286=_0x13c5db,_0xbbc52f=new Set(_0x40b613);return(_0x336d6f??[])[_0x295286(0x1f7,'\x62\x4b\x6c\x6b')](_0x2d779d=>!_0xbbc52f[_0x295286(0x1be,'\x6f\x42\x49\x28')](_0x2d779d));}function executeFor(_0x5c3bee){const _0x354fd4=_0x13c5db;return()=>({'\x6f\x75\x74\x63\x6f\x6d\x65':{'\x73\x74\x61\x74\x75\x73':_0x5c3bee[_0x354fd4(0x18e,'\x57\x68\x6c\x28')],'\x73\x63\x6f\x72\x65':_0x5c3bee[_0x354fd4(0x244,'\x69\x67\x39\x66')]??(_0x5c3bee[_0x354fd4(0x219,'\x6d\x70\x51\x32')]===_0x354fd4(0x233,'\x52\x65\x39\x47')?-0x6a7+0x1*0x99b+-0x2f4+0.9:-0xc*-0x286+0x37*0x6e+-0x86*0x67+0.2),..._0x5c3bee[_0x354fd4(0x240,'\x30\x25\x41\x46')]?{'\x72\x65\x61\x73\x6f\x6e':_0x5c3bee['\x72\x65\x61\x73\x6f\x6e']}:{}}});}async function runOneArm(_0x4272bd,_0x3ec4cc,_0x540298,_0x52f892,_0x254798,_0x3ff184,_0x421473){const _0x48329e=_0x13c5db,_0x4aa9df=join(_0x254798,_0x4272bd,_0x3ec4cc['\x69\x64']),_0xf7704f=new LocalJsonlProvider(join(_0x4aa9df,_0x48329e(0x218,'\x71\x62\x50\x55'))),_0xa7fc24=new ReviewLedger(join(_0x4aa9df,_0x48329e(0x1c7,'\x58\x26\x63\x23')),_0x3ff184);await copyAssets(_0x540298,_0xf7704f,_0x4272bd===_0x48329e(0x197,'\x65\x41\x7a\x41')),copyReview(_0x52f892,_0xa7fc24);const _0x4a63f3=join(_0x4aa9df,_0x48329e(0x1ef,'\x6d\x70\x51\x32')+'\x73\x6f\x6e\x6c'),_0x4f8e41=new CycleEngine({'\x69\x6e\x67\x65\x73\x74\x6f\x72':new Ingestor({'\x70\x61\x74\x68':_0x4a63f3,'\x6e\x6f\x77':_0x3ff184}),'\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e':makeGeneSelectionPoint(),'\x73\x74\x6f\x72\x65':_0xf7704f,'\x6e\x6f\x77':_0x3ff184}),_0x2b0e51=_0x3ec4cc['\x6f\x75\x74\x63\x6f\x6d\x65\x73'][_0x4272bd],_0x3dd3f1={'\x63\x79\x63\x6c\x65\x49\x64':_0x4272bd+'\x2d'+_0x3ec4cc['\x69\x64'],'\x70\x72\x6f\x62\x6c\x65\x6d':buildProblem(_0x3ec4cc,_0x3ff184()),'\x73\x69\x67\x6e\x61\x6c\x73':_0x3ec4cc[_0x48329e(0x226,'\x62\x4b\x6c\x6b')],'\x63\x61\x74\x65\x67\x6f\x72\x79':_0x3ec4cc[_0x48329e(0x19d,'\x6f\x42\x49\x28')]??_0x48329e(0x1e5,'\x23\x4c\x21\x5d'),'\x74\x61\x72\x67\x65\x74':_0x3ec4cc[_0x48329e(0x17f,'\x38\x41\x30\x23')]??_0x48329e(0x180,'\x4d\x25\x4b\x43'),'\x65\x78\x70\x65\x63\x74\x65\x64\x45\x66\x66\x65\x63\x74':_0x3ec4cc[_0x48329e(0x1e7,'\x4a\x55\x4b\x42')+'\x45\x66\x66\x65\x63\x74']??_0x48329e(0x1fa,'\x67\x75\x23\x6a')+_0x48329e(0x19e,'\x70\x53\x64\x23')+'\x61\x72\x6b\x20'+_0x3ec4cc['\x69\x64'],'\x73\x75\x6d\x6d\x61\x72\x79':_0x3ec4cc[_0x48329e(0x19f,'\x32\x2a\x56\x36')]??_0x48329e(0x23d,'\x33\x32\x6b\x31')+_0x48329e(0x1d8,'\x79\x28\x2a\x6d')+_0x48329e(0x1fe,'\x62\x4b\x6c\x6b')+_0x3ec4cc['\x69\x64'],'\x63\x6f\x6e\x66\x69\x64\x65\x6e\x63\x65':_0x3ec4cc[_0x48329e(0x22d,'\x65\x41\x7a\x41')+'\x63\x65']??-0x4f*-0x15+-0x1218*-0x2+-0x14b*0x21+0.9,'\x65\x78\x65\x63\x75\x74\x65':executeFor(_0x2b0e51),'\x72\x65\x76\x69\x65\x77':_0xa7fc24,'\x63\x6f\x6e\x73\x75\x6d\x65\x50\x65\x6e\x64\x69\x6e\x67\x53\x69\x67\x6e\x61\x6c\x73':![],..._0x421473?{'\x64\x69\x73\x61\x62\x6c\x65\x53\x65\x6d\x61\x6e\x74\x69\x63\x49\x64\x66':!![]}:{}},_0x20c1dd=await runEvolutionCycle(_0x4f8e41,_0xf7704f,_0x3dd3f1),_0x360504=observedWarningIds(_0x20c1dd[_0x48329e(0x1d6,'\x52\x65\x39\x47')]);return{'\x73\x74\x61\x74\x75\x73':_0x2b0e51[_0x48329e(0x225,'\x58\x56\x78\x6c')],'\x73\x63\x6f\x72\x65':_0x2b0e51[_0x48329e(0x20b,'\x7a\x31\x5b\x4a')]??(_0x2b0e51[_0x48329e(0x23b,'\x58\x69\x44\x74')]===_0x48329e(0x1a7,'\x40\x6d\x35\x36')?0x1175*-0x2+0x12d5+0x1015+0.9:0x6f*-0x4f+-0x156b*0x1+0x37ac+0.2),'\x72\x65\x70\x65\x61\x74\x65\x64\x46\x61\x69\x6c\x75\x72\x65':_0x2b0e51[_0x48329e(0x212,'\x4d\x25\x4b\x43')+_0x48329e(0x18c,'\x69\x67\x39\x66')]===!![],'\x6f\x76\x65\x72\x62\x6c\x6f\x63\x6b\x65\x64':_0x2b0e51[_0x48329e(0x1de,'\x25\x31\x24\x4a')+_0x48329e(0x1f1,'\x4a\x55\x4b\x42')]===!![],'\x6f\x62\x73\x65\x72\x76\x65\x64\x41\x6e\x74\x69\x57\x61\x72\x6e\x69\x6e\x67\x73':_0x360504,'\x6d\x69\x73\x73\x69\x6e\x67\x45\x78\x70\x65\x63\x74\x65\x64\x57\x61\x72\x6e\x69\x6e\x67\x73':_0x4272bd===_0x48329e(0x1e4,'\x58\x5d\x61\x68')?missingExpected(_0x3ec4cc[_0x48329e(0x213,'\x38\x41\x30\x23')+_0x48329e(0x242,'\x67\x75\x23\x6a')+_0x48329e(0x21b,'\x52\x65\x39\x47')],_0x360504):[]};}function armMetrics(_0x14cc04,_0x372a80){const _0x487ace=_0x13c5db,_0x1f7ddf=_0x372a80['\x6c\x65\x6e\x67\x74\x68'],_0x56d17e=_0x372a80['\x66\x69\x6c\x74\x65\x72'](_0x26d426=>_0x26d426[_0x487ace(0x1f3,'\x43\x6d\x54\x37')]===_0x487ace(0x176,'\x58\x56\x78\x6c'))[_0x487ace(0x195,'\x58\x69\x44\x74')];return{'\x61\x72\x6d':_0x14cc04,'\x6e':_0x1f7ddf,'\x66\x61\x69\x6c\x75\x72\x65\x73':_0x56d17e,'\x66\x61\x69\x6c\x75\x72\x65\x52\x61\x74\x65':_0x1f7ddf>-0x2309+0xc23+-0x3*-0x7a2?_0x56d17e/_0x1f7ddf:-0x1ff+0x43c+-0x23d,'\x72\x65\x70\x65\x61\x74\x65\x64\x46\x61\x69\x6c\x75\x72\x65\x73':_0x372a80[_0x487ace(0x23a,'\x58\x69\x44\x74')](_0x4491e8=>_0x4491e8[_0x487ace(0x1ee,'\x59\x4b\x4d\x50')+_0x487ace(0x17b,'\x32\x2a\x56\x36')])[_0x487ace(0x23e,'\x66\x62\x47\x6b')],'\x6f\x76\x65\x72\x62\x6c\x6f\x63\x6b\x65\x64':_0x372a80[_0x487ace(0x1ed,'\x48\x38\x33\x31')](_0x12bc76=>_0x12bc76['\x6f\x76\x65\x72\x62\x6c\x6f\x63'+_0x487ace(0x20e,'\x35\x39\x6c\x4c')])['\x6c\x65\x6e\x67\x74\x68'],'\x6f\x62\x73\x65\x72\x76\x65\x64\x57\x61\x72\x6e\x69\x6e\x67\x73':_0x372a80['\x72\x65\x64\x75\x63\x65']((_0x17e4ba,_0x455631)=>_0x17e4ba+_0x455631[_0x487ace(0x1ff,'\x32\x2a\x56\x36')+_0x487ace(0x1f9,'\x32\x2a\x56\x36')+_0x487ace(0x1e2,'\x33\x78\x5a\x78')]['\x6c\x65\x6e\x67\x74\x68'],0x1553+-0x8bc+-0xc97)};}function verdict(_0x10feab,_0x110686,_0x411237){const _0x53a281=_0x13c5db;if(_0x10feab[_0x53a281(0x202,'\x58\x56\x78\x6c')]['\x6e']<_0x110686||_0x10feab[_0x53a281(0x1dc,'\x7a\x31\x5b\x4a')]['\x6e']<_0x110686)return _0x53a281(0x1c6,'\x65\x41\x7a\x41')+_0x53a281(0x188,'\x4d\x25\x4b\x43')+_0x53a281(0x1cd,'\x66\x62\x47\x6b');if(_0x10feab[_0x53a281(0x200,'\x71\x62\x50\x55')+_0x53a281(0x1d2,'\x6f\x42\x49\x28')]>=_0x411237&&_0x10feab[_0x53a281(0x245,'\x76\x4b\x62\x5d')][_0x53a281(0x1bc,'\x43\x4c\x67\x77')+_0x53a281(0x17e,'\x67\x75\x23\x6a')]>0x1236+-0xecb*-0x1+-0x2101&&_0x10feab[_0x53a281(0x1cc,'\x4d\x48\x62\x48')+_0x53a281(0x1ae,'\x71\x62\x50\x55')+_0x53a281(0x183,'\x57\x68\x6c\x28')]===-0x1060+0x2*-0x4bc+0x19d8)return'\x61\x6e\x74\x69\x5f\x67\x65\x6e'+_0x53a281(0x23f,'\x35\x39\x6c\x4c');if(_0x10feab[_0x53a281(0x1a0,'\x43\x4c\x67\x77')+_0x53a281(0x24c,'\x4a\x55\x4b\x42')]<-_0x411237||_0x411237===-0x1920+-0x703*-0x5+-0x9ef&&_0x10feab[_0x53a281(0x235,'\x4a\x55\x4b\x42')+_0x53a281(0x21d,'\x33\x78\x5a\x78')]<0x14d6+0x42b+-0x1901*0x1)return _0x53a281(0x1c4,'\x43\x4c\x67\x77')+_0x53a281(0x20a,'\x48\x62\x64\x76');return _0x53a281(0x24d,'\x37\x56\x53\x6c')+_0x53a281(0x1ea,'\x66\x62\x47\x6b')+_0x53a281(0x198,'\x73\x6e\x57\x6a');}function buildReport(_0xe9ddd8,_0x404288,_0x4c248b,_0x14ceeb){const _0x15580c=_0x13c5db,_0x20d04c=armMetrics(_0x15580c(0x1e3,'\x48\x38\x33\x31'),_0x404288[_0x15580c(0x18d,'\x58\x69\x44\x74')](_0x2a3965=>_0x2a3965[_0x15580c(0x1ab,'\x43\x4c\x67\x77')])),_0x3bd78b=armMetrics(_0x15580c(0x222,'\x35\x39\x6c\x4c'),_0x404288[_0x15580c(0x238,'\x25\x31\x24\x4a')](_0x241df8=>_0x241df8[_0x15580c(0x211,'\x35\x61\x58\x6a')])),_0x21a282={'\x73\x75\x69\x74\x65':_0xe9ddd8[_0x15580c(0x209,'\x52\x65\x39\x47')],'\x74\x61\x73\x6b\x73':_0xe9ddd8[_0x15580c(0x1b8,'\x35\x61\x58\x6a')]['\x6c\x65\x6e\x67\x74\x68'],'\x62\x61\x73\x65\x6c\x69\x6e\x65':_0x20d04c,'\x61\x6e\x74\x69\x47\x65\x6e\x65':_0x3bd78b,'\x6d\x69\x73\x73\x69\x6e\x67\x45\x78\x70\x65\x63\x74\x65\x64\x57\x61\x72\x6e\x69\x6e\x67\x73':_0x404288[_0x15580c(0x191,'\x59\x4b\x4d\x50')]((_0x2d063e,_0x2147d1)=>_0x2d063e+_0x2147d1[_0x15580c(0x246,'\x58\x56\x78\x6c')][_0x15580c(0x199,'\x43\x4c\x67\x77')+_0x15580c(0x227,'\x58\x26\x63\x23')+_0x15580c(0x230,'\x58\x5d\x61\x68')][_0x15580c(0x205,'\x48\x38\x33\x31')],-0x1113+0x180*-0x1a+-0x5*-0xb37),'\x6f\x76\x65\x72\x62\x6c\x6f\x63\x6b\x65\x64':_0x3bd78b[_0x15580c(0x1b3,'\x29\x36\x6b\x23')+_0x15580c(0x182,'\x6d\x32\x37\x23')],'\x6f\x76\x65\x72\x62\x6c\x6f\x63\x6b\x65\x64\x41\x6e\x74\x69\x47\x65\x6e\x65\x73':summarizeOverblockedAntiGenes(_0x404288),'\x66\x61\x69\x6c\x75\x72\x65\x44\x65\x6c\x74\x61':_0x20d04c[_0x15580c(0x1eb,'\x67\x75\x23\x6a')+_0x15580c(0x22b,'\x6f\x42\x49\x28')]-_0x3bd78b[_0x15580c(0x204,'\x52\x65\x39\x47')+_0x15580c(0x21f,'\x23\x4c\x21\x5d')],'\x74\x61\x73\x6b\x52\x65\x73\x75\x6c\x74\x73':_0x404288};return{..._0x21a282,'\x76\x65\x72\x64\x69\x63\x74':verdict(_0x21a282,_0x4c248b,_0x14ceeb)};}export async function runAntiGeneBenchmark(_0x139890,_0x1ae73b,_0x26e9c0={}){const _0x2607f0=_0x13c5db,_0x5cc355=_0x26e9c0[_0x2607f0(0x179,'\x71\x25\x62\x52')]??Date[_0x2607f0(0x1cb,'\x70\x53\x64\x23')],_0x4b34ef=_0x1ae73b['\x72\x65\x76\x69\x65\x77']??defaultReviewForStore(_0x1ae73b['\x73\x74\x6f\x72\x65'],_0x5cc355);if(!_0x4b34ef)throw new Error('\x41\x6e\x74\x69\x47\x65\x6e\x65'+_0x2607f0(0x21e,'\x7a\x31\x5b\x4a')+'\x72\x6b\x20\x72\x65\x71\x75\x69'+_0x2607f0(0x24e,'\x7a\x31\x5b\x4a')+_0x2607f0(0x1f4,'\x33\x78\x5a\x78')+'\x65\x72\x20\x6f\x72\x20\x61\x20'+_0x2607f0(0x1ac,'\x76\x4b\x62\x5d')+_0x2607f0(0x249,'\x21\x43\x40\x25')+_0x2607f0(0x214,'\x69\x67\x39\x66')+'\x64\x20\x73\x74\x6f\x72\x65\x20'+_0x2607f0(0x1a3,'\x43\x4c\x67\x77')+_0x2607f0(0x1cf,'\x58\x5d\x61\x68')+_0x2607f0(0x1d7,'\x57\x68\x6c\x28')+_0x2607f0(0x1a6,'\x69\x67\x39\x66'));const _0xb6714d=_0x26e9c0[_0x2607f0(0x224,'\x70\x53\x64\x23')+'\x65\x73']??-0x671+0x279*0x1+0x416*0x1,_0x4d8d2d=_0x26e9c0[_0x2607f0(0x248,'\x73\x6e\x57\x6a')+_0x2607f0(0x20c,'\x35\x61\x58\x6a')]??-0x17d3+0x2434+-0xc61+0.05,_0x246d0c=mkdtempSync(join(tmpdir(),_0x2607f0(0x20f,'\x29\x4f\x5e\x41')+_0x2607f0(0x220,'\x52\x65\x39\x47')+_0x2607f0(0x1c8,'\x35\x39\x6c\x4c')));try{const _0x968597=[];for(const _0x294d75 of _0x139890[_0x2607f0(0x1b6,'\x6e\x6d\x70\x21')]){_0x968597[_0x2607f0(0x173,'\x30\x25\x41\x46')]({'\x74\x61\x73\x6b\x49\x64':_0x294d75['\x69\x64'],'\x62\x61\x73\x65\x6c\x69\x6e\x65':await runOneArm(_0x2607f0(0x1e0,'\x33\x66\x21\x31'),_0x294d75,_0x1ae73b[_0x2607f0(0x1d9,'\x30\x25\x41\x46')],_0x4b34ef,_0x246d0c,_0x5cc355,_0x26e9c0[_0x2607f0(0x1a2,'\x6d\x70\x51\x32')+_0x2607f0(0x18a,'\x58\x69\x44\x74')+'\x64\x66']===!![]),'\x61\x6e\x74\x69\x47\x65\x6e\x65':await runOneArm(_0x2607f0(0x1dc,'\x7a\x31\x5b\x4a'),_0x294d75,_0x1ae73b[_0x2607f0(0x196,'\x4d\x5d\x4b\x32')],_0x4b34ef,_0x246d0c,_0x5cc355,_0x26e9c0[_0x2607f0(0x1b2,'\x37\x56\x53\x6c')+_0x2607f0(0x210,'\x6f\x42\x49\x28')+'\x64\x66']===!![])});}const _0x3d094f=buildReport(_0x139890,_0x968597,_0xb6714d,_0x4d8d2d);if(_0x26e9c0[_0x2607f0(0x1e9,'\x35\x61\x58\x6a')+'\x74\x68'])await writeAntiGeneBenchmarkResult(_0x3d094f,_0x26e9c0[_0x2607f0(0x185,'\x62\x4b\x6c\x6b')+'\x74\x68'],_0x5cc355);return _0x3d094f;}finally{rmSync(_0x246d0c,{'\x72\x65\x63\x75\x72\x73\x69\x76\x65':!![],'\x66\x6f\x72\x63\x65':!![]});}}export async function writeAntiGeneBenchmarkResult(_0x5acf74,_0x2d077e,_0x24a1c5=Date[_0x13c5db(0x1a1,'\x62\x4b\x6c\x6b')]){const _0x2475fa=new Ingestor({'\x70\x61\x74\x68':_0x2d077e,'\x6e\x6f\x77':_0x24a1c5});try{await ingestReportPayload(_0x2475fa,_0x5acf74);}catch(_0x17b429){if(!(_0x17b429 instanceof LineTooLargeError))throw _0x17b429;await ingestReportPayload(_0x2475fa,compactReportPayload(_0x5acf74,-0x2*-0x373+0x67c+-0xd5d));}}async function ingestReportPayload(_0xc467d7,_0x534c49){const _0x28b229=_0x13c5db;await _0xc467d7[_0x28b229(0x1f8,'\x35\x39\x6c\x4c')]({'\x74\x79\x70\x65':_0x28b229(0x1a9,'\x76\x4b\x62\x5d')+_0x28b229(0x1ec,'\x40\x6d\x35\x36')+'\x61\x72\x6b\x5f\x72\x65\x73\x75'+'\x6c\x74','\x68\x75\x6d\x61\x6e':{'\x74\x69\x74\x6c\x65':_0x28b229(0x23d,'\x33\x32\x6b\x31')+_0x28b229(0x1da,'\x6d\x70\x51\x32')+'\x61\x72\x6b\x20'+_0x534c49['\x73\x75\x69\x74\x65']},'\x70\x61\x79\x6c\x6f\x61\x64':_0x534c49,'\x61\x63\x74\x6f\x72':{'\x6b\x69\x6e\x64':'\x6d\x61\x63\x68\x69\x6e\x65','\x69\x64':_0x28b229(0x216,'\x35\x61\x58\x6a')+'\x65\x2d\x62\x65\x6e\x63\x68\x6d'+_0x28b229(0x1af,'\x76\x4b\x62\x5d')}});}function compactWarnings(_0x2a3a98){const _0x1b107b=_0x13c5db;return _0x2a3a98[_0x1b107b(0x192,'\x29\x36\x6b\x23')](0x1047+-0x741*0x5+0x13fe,-0x1691+0x2*0x11d1+-0xd0e);}function compactRunResult(_0x2079c7){const _0x475887=_0x13c5db;return{..._0x2079c7,'\x6f\x62\x73\x65\x72\x76\x65\x64\x41\x6e\x74\x69\x57\x61\x72\x6e\x69\x6e\x67\x73':compactWarnings(_0x2079c7[_0x475887(0x237,'\x4d\x48\x62\x48')+_0x475887(0x16f,'\x66\x62\x47\x6b')+_0x475887(0x1ca,'\x48\x62\x64\x76')]),'\x6d\x69\x73\x73\x69\x6e\x67\x45\x78\x70\x65\x63\x74\x65\x64\x57\x61\x72\x6e\x69\x6e\x67\x73':compactWarnings(_0x2079c7[_0x475887(0x234,'\x52\x65\x39\x47')+'\x78\x70\x65\x63\x74\x65\x64\x57'+_0x475887(0x183,'\x57\x68\x6c\x28')])};}function _0x39ce(){const _0x250a29=['\x57\x52\x6c\x64\x4d\x38\x6f\x4c\x57\x50\x75','\x70\x58\x62\x4a\x71\x6d\x6f\x55\x68\x38\x6b\x61\x61\x76\x4b','\x42\x71\x71\x73\x57\x50\x34','\x57\x34\x4e\x63\x53\x49\x38','\x44\x53\x6f\x6c\x69\x38\x6f\x4f\x65\x65\x48\x4d\x77\x61','\x61\x6d\x6f\x55\x57\x4f\x70\x63\x4e\x61','\x68\x43\x6f\x4a\x57\x50\x79','\x57\x52\x79\x6a\x57\x4f\x52\x64\x4c\x64\x6e\x38\x65\x61\x47','\x57\x37\x74\x63\x48\x43\x6f\x7a\x77\x43\x6b\x7a\x65\x33\x69','\x45\x74\x52\x63\x47\x67\x79\x6d\x63\x53\x6f\x6d\x76\x47','\x57\x51\x37\x63\x53\x77\x64\x63\x54\x57','\x6a\x43\x6f\x69\x66\x6d\x6b\x45\x57\x34\x72\x72\x67\x38\x6b\x74\x57\x36\x70\x64\x52\x49\x68\x63\x4f\x53\x6b\x72','\x43\x6d\x6f\x58\x57\x4f\x71','\x57\x50\x76\x72\x57\x4f\x4a\x63\x51\x49\x34\x69','\x57\x34\x58\x68\x57\x52\x57\x47\x57\x51\x34\x5a\x76\x6d\x6b\x5a','\x57\x50\x62\x7a\x57\x4f\x52\x64\x56\x49\x4b\x46\x57\x34\x43\x4d','\x44\x6d\x6f\x34\x62\x53\x6b\x61\x57\x37\x4e\x64\x56\x78\x4c\x4e','\x6f\x43\x6b\x58\x57\x51\x79\x4a\x70\x47','\x57\x52\x42\x63\x54\x38\x6b\x43\x57\x51\x33\x64\x51\x38\x6f\x4f\x57\x4f\x5a\x63\x4a\x61','\x57\x50\x34\x2b\x57\x35\x34','\x7a\x53\x6b\x46\x44\x66\x5a\x63\x47\x4c\x65\x68\x45\x61','\x57\x34\x35\x66\x57\x50\x4f\x33\x66\x53\x6b\x4a\x63\x43\x6f\x7a\x71\x61\x79\x36','\x57\x37\x6c\x64\x51\x4e\x37\x63\x4c\x43\x6b\x54\x57\x50\x72\x4a\x69\x57','\x57\x37\x6c\x64\x50\x48\x4f\x76\x57\x34\x2f\x63\x54\x6d\x6f\x6a\x66\x61','\x57\x36\x47\x61\x57\x50\x48\x58\x57\x50\x74\x63\x49\x53\x6f\x6f\x57\x51\x47','\x6f\x6d\x6f\x33\x57\x51\x78\x64\x54\x61','\x57\x52\x6e\x45\x57\x37\x5a\x63\x55\x61','\x42\x73\x65\x52\x77\x53\x6b\x32\x57\x4f\x50\x4f\x77\x57','\x57\x51\x62\x68\x57\x4f\x33\x64\x49\x72\x76\x54\x67\x30\x30','\x57\x52\x64\x63\x48\x49\x66\x65\x57\x51\x5a\x63\x48\x61','\x57\x51\x74\x64\x4c\x43\x6b\x79\x64\x6d\x6b\x35\x6e\x75\x5a\x64\x52\x38\x6f\x43\x42\x47','\x43\x43\x6b\x6a\x76\x6d\x6f\x6a\x57\x50\x71\x78\x73\x53\x6b\x76','\x65\x53\x6f\x77\x57\x35\x47\x36\x57\x51\x4b','\x57\x37\x70\x63\x4b\x53\x6f\x70\x75\x53\x6b\x50\x63\x76\x64\x64\x50\x61','\x6c\x38\x6f\x52\x57\x4f\x56\x63\x4e\x38\x6b\x79\x57\x52\x44\x75\x57\x35\x57','\x57\x4f\x74\x64\x49\x6d\x6b\x45\x57\x52\x35\x65\x61\x6d\x6b\x37\x6f\x61','\x57\x4f\x68\x63\x48\x75\x56\x64\x52\x58\x64\x63\x4f\x53\x6f\x68\x70\x61','\x41\x73\x4b\x30\x73\x38\x6b\x2f\x57\x50\x65','\x57\x50\x57\x55\x57\x35\x52\x63\x54\x43\x6f\x66\x57\x36\x42\x63\x49\x30\x43','\x57\x52\x42\x64\x4f\x43\x6b\x42\x57\x51\x42\x64\x53\x43\x6f\x34\x57\x34\x52\x63\x49\x57','\x42\x53\x6f\x4b\x57\x4f\x34\x4b\x68\x59\x75','\x46\x38\x6b\x75\x71\x61','\x57\x4f\x39\x6e\x63\x43\x6f\x7a\x61\x4b\x5a\x64\x51\x61','\x76\x31\x2f\x64\x51\x68\x5a\x63\x4c\x6d\x6b\x46','\x57\x51\x58\x7a\x57\x37\x37\x63\x56\x6d\x6f\x45\x6e\x53\x6f\x30\x57\x52\x4f','\x6c\x6d\x6b\x50\x41\x6d\x6f\x65\x57\x4f\x75\x63\x42\x47','\x57\x52\x5a\x64\x54\x43\x6b\x75\x57\x51\x33\x64\x50\x53\x6f\x2f','\x41\x4c\x30\x75\x57\x37\x4b\x2b\x57\x37\x43','\x57\x52\x52\x64\x48\x38\x6f\x50\x57\x35\x33\x64\x54\x43\x6f\x55','\x57\x35\x4a\x63\x48\x76\x37\x63\x4c\x43\x6b\x69\x44\x68\x4f\x73','\x57\x4f\x70\x64\x48\x38\x6b\x64\x57\x52\x53\x43\x66\x43\x6b\x37\x62\x61','\x43\x4b\x61\x73\x77\x53\x6b\x56\x57\x52\x37\x64\x4f\x47','\x57\x36\x68\x63\x4d\x6d\x6b\x38\x57\x4f\x4a\x64\x4f\x53\x6f\x76\x57\x4f\x72\x75\x57\x4f\x68\x63\x4c\x47','\x57\x50\x64\x64\x49\x4c\x52\x64\x4f\x74\x46\x63\x50\x71','\x42\x75\x79\x74\x57\x51\x30','\x57\x37\x42\x63\x49\x76\x4e\x63\x4d\x43\x6b\x54\x79\x32\x30\x79','\x6a\x43\x6b\x59\x57\x36\x71\x65\x57\x52\x66\x38\x57\x35\x6d\x57','\x70\x4b\x33\x63\x48\x78\x53','\x57\x4f\x2f\x64\x4f\x43\x6f\x37\x6f\x38\x6f\x39\x57\x36\x52\x64\x4a\x49\x57','\x6f\x43\x6b\x53\x57\x51\x34\x2f\x6f\x48\x42\x64\x56\x61','\x57\x34\x35\x64\x57\x52\x79\x4c\x57\x51\x47\x4f\x78\x53\x6b\x70','\x79\x59\x75\x32\x77\x6d\x6b\x55\x57\x4f\x53','\x79\x76\x33\x64\x50\x4d\x74\x63\x4c\x6d\x6b\x79\x71\x38\x6b\x49','\x45\x53\x6f\x72\x69\x38\x6f\x2b\x64\x77\x39\x4c','\x57\x50\x69\x44\x57\x34\x7a\x30','\x57\x34\x7a\x64\x57\x52\x69\x53','\x79\x74\x75\x63\x57\x4f\x6c\x63\x56\x49\x30\x41','\x44\x6d\x6b\x73\x42\x30\x46\x63\x4f\x61','\x57\x36\x74\x63\x47\x43\x6f\x55\x77\x43\x6b\x58\x64\x4d\x65','\x66\x58\x56\x63\x55\x5a\x64\x64\x4c\x6d\x6f\x43\x67\x53\x6b\x6d\x57\x51\x53\x43\x79\x6d\x6b\x44\x57\x37\x34','\x57\x52\x4a\x64\x4a\x6d\x6f\x51','\x57\x50\x79\x44\x57\x35\x44\x55\x64\x38\x6b\x68\x6b\x53\x6f\x63','\x57\x51\x37\x63\x53\x68\x78\x63\x55\x6d\x6f\x30\x73\x38\x6f\x47\x57\x34\x75','\x57\x37\x46\x63\x49\x53\x6f\x45\x76\x43\x6b\x41\x68\x32\x37\x64\x4f\x61','\x61\x67\x61\x6f\x78\x43\x6f\x6a\x57\x36\x61\x43\x57\x4f\x34','\x57\x35\x70\x63\x55\x71\x4a\x63\x4b\x47\x48\x42\x57\x34\x33\x64\x4f\x71','\x6f\x53\x6b\x48\x6b\x6d\x6b\x67\x6c\x43\x6f\x2b\x57\x36\x46\x64\x4e\x71','\x57\x51\x64\x64\x4e\x72\x70\x64\x4a\x6d\x6f\x52\x76\x4b\x34\x6a\x57\x51\x61\x41\x57\x35\x75','\x57\x37\x46\x63\x49\x53\x6f\x45\x76\x43\x6f\x57\x68\x77\x78\x64\x51\x57','\x69\x53\x6f\x2f\x44\x53\x6f\x42\x57\x35\x35\x32','\x69\x53\x6b\x47\x57\x37\x34\x6e\x57\x52\x62\x39','\x57\x51\x64\x64\x4f\x38\x6b\x46\x57\x52\x5a\x64\x53\x6d\x6f\x34','\x46\x31\x65\x59\x78\x38\x6f\x36','\x57\x34\x66\x6d\x57\x52\x47\x36','\x57\x34\x37\x63\x53\x5a\x2f\x64\x4c\x57','\x57\x52\x39\x43\x57\x36\x2f\x63\x51\x47','\x6a\x38\x6b\x74\x7a\x76\x56\x63\x50\x4c\x57\x65\x46\x61','\x57\x51\x70\x63\x4c\x5a\x71','\x57\x34\x30\x70\x57\x52\x30\x53\x57\x52\x6d\x35\x75\x38\x6b\x57','\x57\x4f\x76\x44\x57\x50\x42\x63\x55\x49\x69\x7a\x57\x50\x6d','\x57\x52\x6c\x64\x48\x38\x6f\x36\x57\x35\x68\x64\x47\x43\x6f\x2f\x57\x51\x7a\x42','\x67\x33\x79\x2f\x73\x53\x6f\x41\x57\x37\x75\x61','\x57\x34\x52\x63\x54\x64\x42\x64\x54\x38\x6f\x64\x57\x51\x70\x63\x48\x49\x34','\x57\x50\x37\x64\x54\x6d\x6f\x50\x6b\x53\x6f\x4b\x57\x37\x61','\x46\x31\x30\x46\x57\x36\x6d\x36\x57\x36\x4e\x63\x4f\x71','\x57\x51\x6a\x30\x6b\x4c\x4b\x31\x43\x59\x70\x63\x51\x61','\x42\x6d\x6f\x4a\x6e\x38\x6f\x43\x45\x43\x6b\x54\x57\x52\x5a\x64\x55\x74\x6d\x6e\x57\x36\x30\x72\x46\x71','\x6b\x43\x6b\x77\x7a\x43\x6b\x52\x74\x4b\x31\x52\x44\x5a\x37\x63\x55\x4c\x4f','\x6d\x38\x6f\x61\x6f\x78\x5a\x63\x4b\x77\x61\x72\x43\x63\x6d','\x57\x51\x52\x63\x51\x78\x65','\x79\x31\x79\x73\x57\x36\x47\x34\x57\x37\x65','\x79\x6d\x6b\x65\x6e\x48\x78\x64\x50\x43\x6b\x34\x74\x53\x6f\x72','\x70\x43\x6f\x2f\x44\x57','\x57\x4f\x70\x64\x4d\x38\x6b\x43\x57\x4f\x31\x64\x66\x38\x6b\x54\x68\x57','\x57\x51\x62\x42\x57\x50\x46\x64\x49\x74\x58\x56\x62\x47','\x57\x37\x70\x64\x4c\x32\x43\x73\x57\x37\x46\x64\x48\x6d\x6f\x5a\x43\x66\x6d\x6c\x6f\x4c\x76\x66','\x6e\x6d\x6f\x78\x41\x30\x30\x75\x6f\x74\x79','\x57\x35\x54\x78\x57\x52\x57\x51\x57\x52\x47\x50\x73\x61','\x57\x34\x76\x6c\x57\x51\x57\x36\x57\x52\x71\x30\x78\x6d\x6b\x79','\x43\x53\x6b\x71\x74\x43\x6f\x61\x57\x4f\x69\x72\x73\x53\x6b\x31','\x57\x37\x56\x63\x56\x57\x53','\x44\x6d\x6f\x61\x69\x38\x6f\x2b\x63\x31\x62\x4b\x45\x71','\x57\x37\x64\x64\x56\x77\x53','\x57\x37\x42\x63\x49\x75\x64\x63\x4d\x43\x6b\x38\x79\x71','\x57\x37\x68\x63\x4f\x48\x71\x65\x57\x34\x74\x63\x50\x71','\x57\x36\x74\x63\x56\x58\x4b\x65\x57\x35\x74\x63\x50\x61','\x57\x35\x70\x63\x50\x63\x4a\x64\x47\x71','\x75\x65\x38\x77\x71\x6d\x6f\x33\x57\x52\x78\x64\x4f\x53\x6f\x77','\x68\x6d\x6f\x4e\x57\x4f\x4a\x63\x49\x6d\x6b\x45\x57\x52\x61','\x57\x52\x42\x64\x54\x53\x6f\x53\x57\x35\x33\x64\x53\x53\x6f\x55\x57\x51\x31\x6d','\x6f\x6d\x6b\x47\x57\x51\x47\x49\x6e\x62\x71','\x57\x52\x72\x66\x57\x37\x42\x63\x51\x43\x6f\x33\x69\x71','\x57\x51\x70\x64\x48\x38\x6b\x64\x57\x52\x54\x4d\x65\x38\x6b\x53\x62\x61','\x41\x77\x52\x64\x4b\x76\x46\x63\x53\x53\x6b\x54\x42\x6d\x6b\x69','\x6c\x6d\x6b\x57\x41\x53\x6b\x77\x6b\x71','\x57\x35\x42\x64\x51\x74\x64\x64\x54\x57\x4e\x63\x4e\x74\x34\x75','\x57\x4f\x5a\x64\x52\x53\x6f\x38\x6e\x38\x6f\x77\x57\x36\x42\x64\x4a\x49\x57','\x57\x36\x6c\x63\x48\x43\x6f\x7a\x76\x38\x6b\x70\x68\x33\x70\x64\x53\x61','\x6b\x53\x6f\x76\x44\x30\x4e\x63\x52\x6d\x6b\x32\x57\x34\x78\x63\x53\x61','\x70\x31\x68\x63\x53\x67\x46\x64\x4b\x72\x52\x64\x53\x4c\x79','\x70\x53\x6f\x6b\x57\x4f\x34','\x57\x37\x4a\x63\x4d\x66\x4e\x63\x4d\x43\x6b\x52\x78\x67\x57','\x43\x43\x6b\x44\x75\x6d\x6f\x6e','\x6f\x53\x6f\x58\x57\x4f\x4e\x64\x4f\x31\x42\x63\x4e\x74\x79\x53','\x44\x43\x6b\x75\x43\x58\x78\x63\x50\x62\x71\x37\x45\x61','\x57\x36\x33\x64\x56\x77\x6c\x63\x49\x38\x6b\x47\x57\x50\x4c\x4f','\x6d\x43\x6f\x53\x57\x50\x6c\x63\x48\x53\x6b\x39\x57\x52\x4c\x71\x57\x35\x43','\x57\x51\x68\x64\x4a\x6d\x6f\x56\x57\x34\x56\x64\x51\x43\x6f\x30','\x41\x68\x78\x63\x4b\x77\x47\x57\x64\x6d\x6f\x78\x74\x47','\x57\x36\x4e\x64\x56\x77\x4a\x63\x4a\x6d\x6b\x38','\x6f\x53\x6b\x57\x57\x52\x4f\x35','\x57\x50\x53\x68\x57\x35\x62\x74\x75\x6d\x6b\x76\x69\x43\x6f\x70','\x57\x34\x4a\x63\x51\x5a\x33\x64\x4c\x53\x6f\x61\x57\x51\x6c\x63\x4d\x73\x65','\x57\x4f\x56\x64\x4f\x43\x6f\x48\x6d\x53\x6f\x30\x57\x36\x43','\x46\x6d\x6f\x2b\x57\x4f\x47\x4b\x6a\x49\x6e\x79\x57\x35\x65','\x57\x34\x44\x61\x57\x52\x75\x53\x57\x52\x34\x55','\x70\x38\x6f\x4b\x43\x57','\x57\x51\x68\x64\x4c\x38\x6b\x43\x64\x53\x6f\x53\x71\x4b\x52\x64\x4b\x53\x6f\x43\x45\x53\x6b\x67\x57\x34\x47','\x57\x35\x2f\x63\x49\x4b\x70\x63\x4b\x6d\x6b\x51\x7a\x32\x30','\x42\x4c\x75\x6c\x57\x36\x47\x33\x57\x36\x5a\x63\x56\x6d\x6f\x4b','\x57\x4f\x5a\x64\x52\x6d\x6b\x62\x57\x52\x44\x46\x62\x47','\x57\x52\x78\x64\x49\x6d\x6b\x66\x57\x52\x58\x79\x68\x6d\x6b\x35\x67\x71','\x57\x34\x6c\x63\x4f\x61\x52\x63\x4b\x61\x35\x42','\x62\x49\x53\x6b\x73\x57','\x6d\x6d\x6b\x58\x42\x38\x6b\x62\x6c\x38\x6f\x50','\x7a\x30\x65\x2f','\x57\x50\x6a\x6b\x57\x4f\x52\x63\x54\x59\x75\x44\x57\x50\x71','\x57\x51\x35\x72\x57\x36\x4a\x63\x4f\x6d\x6f\x61\x6e\x53\x6f\x4a\x57\x51\x47','\x41\x75\x69\x44\x57\x36\x6d\x56\x57\x37\x42\x63\x47\x53\x6f\x47','\x70\x53\x6f\x5a\x57\x37\x38\x6e\x57\x4f\x4e\x64\x4a\x73\x62\x38','\x70\x71\x31\x69\x57\x52\x39\x4f\x57\x52\x46\x64\x50\x53\x6f\x4a\x57\x52\x57\x51\x6c\x72\x62\x72','\x67\x32\x61\x71\x74\x6d\x6f\x33\x57\x36\x43\x79\x57\x4f\x43','\x68\x53\x6b\x39\x43\x43\x6b\x6e\x63\x38\x6f\x34\x57\x36\x6c\x64\x4e\x71','\x57\x37\x6c\x63\x50\x48\x4b\x45\x57\x35\x78\x63\x56\x53\x6f\x63\x6d\x61','\x6e\x6d\x6f\x66\x6f\x66\x37\x63\x54\x65\x71\x65\x46\x5a\x34','\x67\x43\x6b\x59\x42\x6d\x6b\x69\x6f\x43\x6f\x56\x57\x36\x4b','\x57\x37\x52\x63\x51\x47\x47','\x57\x4f\x62\x6d\x57\x4f\x78\x63\x51\x4a\x34\x6a','\x57\x37\x4e\x64\x51\x73\x68\x64\x50\x53\x6b\x33\x73\x43\x6f\x50\x57\x36\x7a\x6a\x71\x6d\x6b\x32','\x57\x50\x6a\x55\x63\x5a\x33\x64\x4e\x61\x4b\x6e\x62\x64\x61','\x57\x50\x57\x55\x57\x34\x37\x63\x50\x43\x6f\x68\x57\x37\x43','\x57\x34\x35\x52\x57\x35\x44\x41\x41\x47','\x61\x38\x6f\x32\x57\x50\x74\x63\x48\x53\x6b\x65\x57\x52\x38','\x42\x43\x6f\x48\x75\x30\x58\x6c\x70\x58\x69\x53','\x57\x37\x56\x63\x52\x48\x79\x78\x57\x35\x78\x63\x56\x57','\x46\x38\x6f\x37\x73\x66\x43\x64','\x79\x53\x6b\x66\x6c\x62\x52\x64\x49\x38\x6b\x35\x72\x43\x6f\x41','\x6b\x53\x6f\x7a\x44\x33\x53','\x43\x6d\x6f\x35\x57\x4f\x38\x2b\x67\x63\x58\x6e\x57\x37\x4f','\x57\x4f\x5a\x64\x54\x6d\x6f\x54\x6f\x47','\x75\x65\x52\x64\x55\x4d\x70\x63\x53\x38\x6b\x6a\x77\x43\x6b\x34','\x57\x37\x46\x63\x4e\x4b\x46\x63\x4e\x53\x6b\x36\x7a\x57','\x57\x51\x4a\x63\x56\x67\x64\x63\x53\x38\x6f\x4e\x74\x43\x6f\x58\x57\x37\x75','\x57\x34\x6c\x64\x56\x74\x52\x64\x47\x43\x6f\x6d\x57\x51\x33\x63\x4e\x49\x38','\x57\x36\x52\x63\x4e\x4b\x46\x63\x4b\x43\x6b\x2b\x7a\x33\x65','\x45\x38\x6f\x58\x57\x50\x75\x48\x62\x64\x62\x70\x57\x37\x53','\x79\x4c\x53\x70','\x57\x52\x46\x64\x56\x53\x6b\x6e\x57\x51\x4e\x64\x50\x38\x6f\x4e\x57\x4f\x68\x63\x53\x47','\x42\x53\x6f\x2f\x57\x35\x57\x2f\x66\x64\x72\x64\x57\x35\x4f','\x57\x52\x2f\x64\x4e\x43\x6f\x39\x57\x36\x5a\x64\x54\x6d\x6f\x56\x57\x51\x7a\x44','\x71\x4c\x75\x64\x78\x43\x6b\x2f','\x6d\x6d\x6b\x4a\x42\x6d\x6b\x62\x6b\x61','\x57\x50\x46\x64\x4e\x4b\x52\x64\x51\x72\x56\x63\x53\x53\x6f\x43','\x69\x6d\x6f\x53\x75\x53\x6f\x73\x57\x51\x78\x63\x52\x63\x62\x66\x57\x35\x78\x64\x4f\x5a\x4a\x64\x4b\x53\x6b\x35','\x57\x35\x42\x64\x51\x74\x64\x64\x54\x58\x68\x63\x4e\x5a\x75\x46','\x57\x36\x6c\x63\x53\x64\x33\x63\x4f\x47\x47','\x46\x38\x6f\x58\x57\x4f\x38\x4f\x68\x73\x54\x65\x57\x35\x4f','\x57\x37\x56\x64\x51\x63\x46\x64\x56\x59\x6c\x63\x53\x49\x6d\x45','\x57\x36\x43\x61\x57\x50\x4c\x2f','\x6f\x38\x6b\x4a\x57\x36\x47\x6c\x57\x52\x62\x52\x57\x35\x69\x4a','\x57\x35\x42\x64\x54\x73\x38','\x57\x36\x6d\x70\x57\x4f\x57','\x6e\x43\x6f\x7a\x45\x68\x5a\x63\x4f\x53\x6b\x58','\x6d\x6d\x6f\x33\x57\x51\x78\x64\x4f\x76\x4a\x63\x4c\x64\x69\x6e','\x57\x35\x6a\x58\x57\x35\x54\x6c\x42\x77\x37\x64\x56\x31\x71','\x6f\x6d\x6b\x47\x57\x51\x4f\x2b\x6b\x72\x37\x64\x56\x61','\x57\x35\x52\x63\x53\x38\x6b\x2b\x42\x6d\x6b\x47\x57\x52\x56\x64\x51\x48\x34\x34\x57\x50\x4f\x6d\x57\x34\x75','\x69\x38\x6f\x66\x57\x50\x52\x64\x51\x74\x38','\x57\x37\x56\x64\x54\x78\x46\x63\x4b\x38\x6b\x51\x57\x4f\x4f','\x57\x36\x6c\x63\x48\x43\x6f\x7a\x76\x38\x6b\x55','\x57\x34\x43\x58\x72\x48\x33\x64\x4e\x5a\x57\x68\x62\x57','\x45\x59\x38\x72\x42\x6d\x6b\x76\x57\x52\x62\x59\x74\x61','\x46\x43\x6b\x39\x63\x53\x6b\x63\x57\x36\x70\x64\x54\x47','\x43\x53\x6f\x59\x57\x4f\x38\x4f\x61\x5a\x72\x70\x57\x35\x53','\x69\x53\x6b\x48\x57\x36\x7a\x73','\x57\x51\x70\x63\x56\x67\x43','\x57\x35\x58\x50\x57\x34\x50\x71\x73\x67\x46\x64\x56\x4c\x69','\x44\x62\x38\x67\x57\x4f\x75','\x57\x50\x48\x44\x57\x4f\x64\x63\x4e\x59\x75\x6f\x57\x4f\x34\x63','\x57\x34\x76\x64\x57\x51\x38','\x57\x4f\x70\x64\x48\x38\x6b\x64\x57\x52\x54\x32\x66\x38\x6b\x57\x64\x57','\x46\x6d\x6f\x2b\x57\x4f\x47\x4b\x6c\x49\x76\x70\x57\x35\x65','\x77\x6d\x6f\x79\x57\x51\x4b\x63\x67\x61','\x41\x53\x6b\x66\x6b\x57\x42\x64\x51\x53\x6b\x36\x71\x53\x6f\x43','\x57\x52\x54\x33\x70\x66\x38\x31\x7a\x71'];_0x39ce=function(){return _0x250a29;};return _0x39ce();}function compactReportPayload(_0x56d8a8,_0x54a679){const _0x4f9026=_0x13c5db;return{..._0x56d8a8,'\x74\x61\x73\x6b\x52\x65\x73\x75\x6c\x74\x73':_0x56d8a8[_0x4f9026(0x171,'\x32\x4a\x26\x6d')+_0x4f9026(0x22e,'\x71\x25\x62\x52')][_0x4f9026(0x1e8,'\x39\x31\x46\x46')](-0x1*-0x1768+-0x10dd*0x2+0xa52,_0x54a679)[_0x4f9026(0x238,'\x25\x31\x24\x4a')](_0x49d95f=>({'\x74\x61\x73\x6b\x49\x64':_0x49d95f[_0x4f9026(0x1fd,'\x40\x6d\x35\x36')],'\x62\x61\x73\x65\x6c\x69\x6e\x65':compactRunResult(_0x49d95f[_0x4f9026(0x17c,'\x62\x4b\x6c\x6b')]),'\x61\x6e\x74\x69\x47\x65\x6e\x65':compactRunResult(_0x49d95f[_0x4f9026(0x1bf,'\x29\x36\x6b\x23')])})),'\x74\x61\x73\x6b\x52\x65\x73\x75\x6c\x74\x73\x54\x72\x75\x6e\x63\x61\x74\x65\x64':Math[_0x4f9026(0x1d4,'\x43\x4c\x67\x77')](0x35b*0x1+-0x230d+-0x1*-0x1fb2,_0x56d8a8[_0x4f9026(0x19b,'\x43\x6d\x54\x37')+_0x4f9026(0x236,'\x58\x69\x44\x74')][_0x4f9026(0x1bb,'\x79\x28\x2a\x6d')]-_0x54a679)};}function isReportPayload(_0x111fdb){const _0x410ac0=_0x13c5db;return!!_0x111fdb&&typeof _0x111fdb===_0x410ac0(0x1f6,'\x6d\x70\x51\x32')&&typeof _0x111fdb[_0x410ac0(0x21a,'\x6d\x32\x37\x23')]===_0x410ac0(0x1f0,'\x43\x4c\x67\x77')&&typeof _0x111fdb[_0x410ac0(0x172,'\x25\x31\x24\x4a')]===_0x410ac0(0x19c,'\x32\x2a\x56\x36')&&typeof _0x111fdb[_0x410ac0(0x221,'\x57\x68\x6c\x28')]===_0x410ac0(0x193,'\x66\x62\x47\x6b');}function normalizeReportPayload(_0x5ae681){const _0xa6d3bc=_0x13c5db,_0x51ccbb=parseOverblockedAntiGenes(_0x5ae681[_0xa6d3bc(0x175,'\x70\x53\x64\x23')+_0xa6d3bc(0x1c1,'\x57\x68\x6c\x28')+_0xa6d3bc(0x208,'\x29\x4f\x5e\x41')]),_0x4cb6c9=typeof _0x5ae681[_0xa6d3bc(0x247,'\x35\x61\x58\x6a')+_0xa6d3bc(0x174,'\x29\x4f\x5e\x41')+'\x61\x74\x65\x64']===_0xa6d3bc(0x241,'\x33\x78\x5a\x78')&&_0x5ae681['\x74\x61\x73\x6b\x52\x65\x73\x75'+_0xa6d3bc(0x1a4,'\x35\x39\x6c\x4c')+_0xa6d3bc(0x19a,'\x58\x56\x78\x6c')]>-0x15af+-0x21f4+0x37a3;return{..._0x5ae681,'\x6f\x76\x65\x72\x62\x6c\x6f\x63\x6b\x65\x64\x41\x6e\x74\x69\x47\x65\x6e\x65\x73':_0x51ccbb??(_0x4cb6c9?[]:summarizeOverblockedAntiGenes(_0x5ae681[_0xa6d3bc(0x184,'\x33\x78\x5a\x78')+'\x6c\x74\x73']??[]))};}export function antiGeneBenchmarkReportsFromEvents(_0x4a6fdc){const _0x5f2fc3=_0x13c5db,_0x598af1=[];for(const _0x638f2a of _0x4a6fdc){if(_0x638f2a[_0x5f2fc3(0x23c,'\x70\x53\x64\x23')]!=='\x61\x6e\x74\x69\x5f\x67\x65\x6e'+_0x5f2fc3(0x1d1,'\x32\x4a\x26\x6d')+_0x5f2fc3(0x22f,'\x67\x75\x23\x6a')+'\x6c\x74')continue;if(isReportPayload(_0x638f2a[_0x5f2fc3(0x16e,'\x25\x31\x24\x4a')]))_0x598af1[_0x5f2fc3(0x1c0,'\x48\x62\x64\x76')](normalizeReportPayload(_0x638f2a['\x70\x61\x79\x6c\x6f\x61\x64']));}return _0x598af1;}export function latestAntiGeneBenchmarkReport(_0x3eed3c){const _0x409faf=antiGeneBenchmarkReportsFromEvents(_0x3eed3c);return _0x409faf[_0x409faf['\x6c\x65\x6e\x67\x74\x68']-(0x1d4f+-0x1abd+-0x291)]??null;}
@@ -1,34 +1 @@
1
- export function summarizeOverblockedAntiGenes(taskResults) {
2
- const byId = new Map();
3
- for (const task of taskResults) {
4
- if (!task.antiGene.overblocked)
5
- continue;
6
- for (const antiGeneId of new Set(task.antiGene.observedAntiWarnings)) {
7
- const row = byId.get(antiGeneId) ?? { count: 0, taskIds: new Set() };
8
- row.count += 1;
9
- row.taskIds.add(task.taskId);
10
- byId.set(antiGeneId, row);
11
- }
12
- }
13
- return [...byId.entries()]
14
- .map(([antiGeneId, row]) => ({ antiGeneId, count: row.count, taskIds: [...row.taskIds].sort() }))
15
- .sort((a, b) => b.count - a.count || a.antiGeneId.localeCompare(b.antiGeneId));
16
- }
17
- export function parseOverblockedAntiGenes(value) {
18
- if (!Array.isArray(value))
19
- return null;
20
- const out = [];
21
- for (const item of value) {
22
- if (!item || typeof item !== 'object' || Array.isArray(item))
23
- return null;
24
- const row = item;
25
- if (typeof row['antiGeneId'] !== 'string')
26
- return null;
27
- if (typeof row['count'] !== 'number' || !Number.isFinite(row['count']))
28
- return null;
29
- if (!Array.isArray(row['taskIds']) || !row['taskIds'].every((taskId) => typeof taskId === 'string'))
30
- return null;
31
- out.push({ antiGeneId: row['antiGeneId'], count: row['count'], taskIds: [...row['taskIds']] });
32
- }
33
- return out;
34
- }
1
+ (function(_0x139a0a,_0x12491d){const _0x1ec29e=_0x4e9d,_0x116470=_0x139a0a();while(!![]){try{const _0x52f743=-parseInt(_0x1ec29e(0x1a9,'\x4c\x6d\x49\x74'))/(-0x3*0x383+-0x128d+0x1d17)*(-parseInt(_0x1ec29e(0x1b7,'\x35\x54\x70\x52'))/(-0x1fec+-0x27e+0x89b*0x4))+-parseInt(_0x1ec29e(0x1a8,'\x4e\x56\x6c\x77'))/(-0xa6*0x1c+-0x2384+0x35af)*(-parseInt(_0x1ec29e(0x1a7,'\x4e\x68\x26\x39'))/(0x7*0xc5+-0xd2+-0x48d))+parseInt(_0x1ec29e(0x1b8,'\x56\x5e\x49\x4d'))/(-0x1a85+-0x67b+0x2105)+parseInt(_0x1ec29e(0x1c6,'\x51\x25\x31\x4e'))/(0xe6a+0x1673+-0x24d7)+parseInt(_0x1ec29e(0x1ae,'\x26\x40\x21\x6d'))/(-0x186*-0x11+0x19bd+-0x339c)*(-parseInt(_0x1ec29e(0x1c4,'\x54\x52\x56\x76'))/(0x1*-0x7ea+0x126b+-0x1*0xa79))+-parseInt(_0x1ec29e(0x1b2,'\x6c\x38\x6b\x42'))/(-0x43e+-0x5*-0x169+-0x1*0x2c6)*(-parseInt(_0x1ec29e(0x1c0,'\x44\x68\x53\x28'))/(0x5d7+0x92b*0x3+-0x214e))+-parseInt(_0x1ec29e(0x190,'\x53\x4f\x36\x4c'))/(-0xb92+-0xcce*0x2+0x2539*0x1);if(_0x52f743===_0x12491d)break;else _0x116470['push'](_0x116470['shift']());}catch(_0x3d98f8){_0x116470['push'](_0x116470['shift']());}}}(_0x7c89,0x1488e6+0x24c8*0x7a+-0x18ca35*0x1));function _0x7c89(){const _0x2682e1=['\x7a\x43\x6f\x4b\x7a\x4a\x68\x64\x4f\x43\x6f\x45\x72\x38\x6b\x4d','\x75\x47\x5a\x64\x53\x59\x70\x64\x4b\x53\x6f\x61\x57\x51\x4f','\x70\x38\x6f\x62\x45\x77\x30\x71\x44\x75\x61\x57\x42\x4d\x71\x6a\x57\x52\x52\x63\x56\x71','\x57\x51\x5a\x63\x54\x66\x74\x63\x52\x38\x6f\x31\x61\x49\x4b','\x57\x36\x33\x64\x50\x59\x34\x72\x63\x68\x31\x34\x71\x57','\x57\x36\x4e\x64\x50\x5a\x70\x64\x4d\x53\x6f\x6a\x57\x50\x4a\x64\x52\x43\x6b\x37\x57\x4f\x52\x63\x50\x33\x66\x5a\x57\x52\x47\x75','\x62\x66\x68\x63\x54\x38\x6b\x57\x64\x61\x37\x63\x4a\x67\x75','\x57\x36\x78\x64\x55\x48\x53\x6b\x70\x78\x4c\x56','\x66\x6d\x6b\x38\x57\x35\x4e\x64\x47\x38\x6f\x64','\x57\x4f\x56\x63\x54\x38\x6f\x2b\x57\x36\x53','\x57\x52\x6e\x32\x57\x4f\x50\x63\x70\x71','\x78\x53\x6b\x56\x57\x52\x6d\x68\x57\x52\x46\x64\x47\x4e\x6c\x64\x55\x71','\x57\x52\x4e\x63\x55\x31\x70\x63\x52\x43\x6f\x37\x61\x5a\x72\x75','\x57\x36\x56\x64\x4f\x48\x74\x64\x54\x6d\x6b\x6a\x75\x49\x4c\x45\x57\x4f\x4e\x64\x51\x43\x6f\x51\x46\x61','\x57\x50\x35\x67\x57\x36\x6c\x63\x4c\x57','\x68\x43\x6f\x54\x6d\x74\x4f\x52\x71\x4b\x2f\x63\x4b\x47','\x64\x65\x71\x44\x57\x4f\x46\x63\x4e\x43\x6b\x61','\x57\x36\x33\x64\x52\x74\x34','\x57\x52\x78\x63\x4d\x5a\x33\x63\x4d\x4e\x64\x63\x48\x6d\x6f\x59','\x57\x36\x50\x48\x57\x50\x37\x63\x52\x53\x6f\x2b\x43\x67\x6d','\x57\x35\x58\x68\x63\x78\x30\x6e\x74\x38\x6f\x2b','\x46\x64\x6c\x63\x53\x43\x6f\x70\x57\x34\x37\x64\x52\x71','\x6d\x6d\x6f\x73\x57\x50\x53','\x44\x49\x44\x2b\x57\x4f\x6c\x64\x4c\x6d\x6b\x44\x46\x38\x6b\x74','\x44\x53\x6b\x67\x6f\x4a\x6d','\x6a\x6d\x6f\x64\x57\x50\x31\x7a\x41\x61\x79','\x57\x34\x4a\x63\x54\x38\x6f\x39\x57\x34\x71\x32\x69\x78\x34\x43\x57\x51\x69\x72\x72\x47\x37\x63\x51\x65\x43','\x57\x51\x37\x63\x47\x72\x4f\x6c\x57\x50\x69','\x57\x37\x2f\x64\x4e\x31\x48\x75\x57\x35\x38\x7a\x45\x6d\x6f\x59\x57\x51\x50\x31\x69\x62\x53','\x57\x37\x70\x64\x49\x57\x33\x63\x4e\x67\x52\x63\x4d\x53\x6f\x6d\x57\x34\x65','\x66\x76\x52\x63\x53\x33\x4a\x63\x52\x53\x6b\x71\x57\x51\x50\x50\x6e\x53\x6b\x2f\x6e\x43\x6f\x6c','\x57\x35\x6c\x64\x4c\x53\x6b\x79','\x7a\x43\x6f\x4b\x57\x52\x48\x6a\x7a\x71\x74\x63\x54\x61','\x44\x53\x6b\x59\x57\x4f\x65\x68\x57\x4f\x37\x64\x49\x4e\x74\x64\x53\x47','\x6f\x38\x6f\x79\x57\x4f\x58\x72\x41\x47\x74\x63\x54\x53\x6b\x58','\x41\x6d\x6b\x43\x65\x6d\x6f\x4e\x57\x37\x58\x4f\x67\x59\x68\x64\x49\x38\x6f\x2b\x57\x35\x50\x43','\x57\x51\x78\x64\x50\x4c\x75\x55\x6e\x4b\x4b\x45\x64\x61','\x72\x71\x6c\x64\x54\x73\x42\x64\x52\x57','\x57\x50\x4e\x64\x51\x6d\x6b\x38\x57\x50\x48\x37','\x71\x53\x6f\x62\x57\x4f\x76\x54\x76\x4b\x68\x63\x4e\x78\x70\x63\x4d\x6d\x6f\x64\x57\x37\x53','\x57\x4f\x53\x52\x6d\x61','\x57\x4f\x6a\x6c\x57\x37\x52\x63\x48\x53\x6b\x76\x57\x52\x53','\x57\x52\x4a\x63\x55\x68\x6c\x63\x48\x53\x6b\x65','\x76\x43\x6f\x31\x57\x50\x52\x63\x4f\x58\x66\x42\x65\x53\x6f\x4b','\x6f\x47\x64\x63\x4c\x43\x6f\x44\x57\x36\x74\x64\x52\x6d\x6b\x5a','\x68\x59\x2f\x63\x56\x53\x6f\x56\x57\x50\x4a\x64\x4c\x75\x47\x51\x6e\x43\x6b\x56\x57\x50\x4e\x64\x56\x6d\x6b\x6b','\x6b\x43\x6f\x79\x6b\x57\x6c\x64\x51\x6d\x6b\x67\x57\x35\x46\x63\x4a\x77\x4a\x63\x51\x53\x6b\x49\x44\x43\x6b\x2f','\x57\x4f\x76\x71\x57\x35\x39\x46\x77\x71','\x77\x43\x6f\x50\x57\x37\x4b\x6a\x57\x37\x74\x64\x53\x43\x6f\x2b\x57\x36\x4a\x64\x47\x6d\x6b\x4c\x57\x4f\x71','\x79\x38\x6f\x47\x6f\x66\x5a\x63\x4f\x38\x6b\x48\x6f\x6d\x6b\x47\x57\x50\x38\x76\x6c\x72\x74\x63\x52\x71','\x57\x35\x38\x79\x57\x35\x70\x63\x4a\x53\x6b\x4c\x57\x52\x75\x36\x57\x36\x75','\x57\x35\x58\x41\x6c\x33\x57','\x6a\x6d\x6f\x4a\x57\x4f\x74\x63\x56\x53\x6f\x51\x57\x36\x79\x2b','\x57\x50\x70\x63\x47\x6d\x6f\x41\x78\x66\x76\x2f\x6c\x66\x33\x63\x4c\x4d\x69','\x6c\x43\x6f\x57\x57\x37\x62\x46\x57\x35\x4e\x63\x4b\x77\x74\x64\x55\x67\x54\x54\x62\x58\x53','\x6c\x6d\x6f\x2b\x57\x52\x68\x63\x50\x43\x6f\x46\x57\x36\x69\x50\x72\x61','\x64\x43\x6b\x31\x57\x52\x54\x63\x57\x51\x33\x64\x55\x53\x6f\x52'];_0x7c89=function(){return _0x2682e1;};return _0x7c89();}function _0x4e9d(_0x112bc0,_0x32678b){_0x112bc0=_0x112bc0-(0x377+-0x1*-0x1daa+-0x1f92);const _0x4ce704=_0x7c89();let _0x1986d2=_0x4ce704[_0x112bc0];if(_0x4e9d['\x78\x76\x59\x61\x71\x6b']===undefined){var _0x45731e=function(_0x364356){const _0x2eaf85='\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2b\x2f\x3d';let _0x348b47='',_0x3eebe3='';for(let _0x271e82=-0x47*0x27+0xa*-0x7a+0xf95,_0x874989,_0xf51dc4,_0x27c75c=0x256a+-0x35*-0xb3+0x7b*-0x9b;_0xf51dc4=_0x364356['\x63\x68\x61\x72\x41\x74'](_0x27c75c++);~_0xf51dc4&&(_0x874989=_0x271e82%(-0xe2e+0x1c*-0x58+-0xbe9*-0x2)?_0x874989*(0x7*-0x296+0xe85+0x3d5)+_0xf51dc4:_0xf51dc4,_0x271e82++%(0x2405+-0x26a*-0x9+-0x39bb))?_0x348b47+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x1963+0x36*0x91+-0xe3*0x3e&_0x874989>>(-(-0xd09+0x3f1*0x3+-0x2*-0x9c)*_0x271e82&-0x2c2*-0x2+0x5c6*0x6+-0x1d3*0x16)):-0xa2a+0x6b*0x2e+0x1d*-0x50){_0xf51dc4=_0x2eaf85['\x69\x6e\x64\x65\x78\x4f\x66'](_0xf51dc4);}for(let _0x226232=0x839+0x11d7*-0x1+0x99e,_0x239bf9=_0x348b47['\x6c\x65\x6e\x67\x74\x68'];_0x226232<_0x239bf9;_0x226232++){_0x3eebe3+='\x25'+('\x30\x30'+_0x348b47['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x226232)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x8f+-0x16*0x2c+0x467))['\x73\x6c\x69\x63\x65'](-(0x14e5+0xc*0x2f+0x1*-0x1717));}return decodeURIComponent(_0x3eebe3);};const _0x273f95=function(_0x590748,_0x414828){let _0x4b16f0=[],_0xbe4aa3=-0x13*-0x73+0x70*0x21+-0x16f9,_0x104b6c,_0x2bfed1='';_0x590748=_0x45731e(_0x590748);let _0x4f4c57;for(_0x4f4c57=0x1dc2+-0x63c+0xbc3*-0x2;_0x4f4c57<0x882+-0x17de+0x105c;_0x4f4c57++){_0x4b16f0[_0x4f4c57]=_0x4f4c57;}for(_0x4f4c57=0x2cf*0x1+0x176e*0x1+-0x1a3d;_0x4f4c57<0x2*-0x11cc+-0x2081+-0x1*-0x4519;_0x4f4c57++){_0xbe4aa3=(_0xbe4aa3+_0x4b16f0[_0x4f4c57]+_0x414828['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x4f4c57%_0x414828['\x6c\x65\x6e\x67\x74\x68']))%(0x1369+0x20d2+-0x333b),_0x104b6c=_0x4b16f0[_0x4f4c57],_0x4b16f0[_0x4f4c57]=_0x4b16f0[_0xbe4aa3],_0x4b16f0[_0xbe4aa3]=_0x104b6c;}_0x4f4c57=0x273*-0x5+-0x177f+-0xf*-0x262,_0xbe4aa3=-0x4a0+-0x2626+-0x1b6*-0x19;for(let _0x4f1a63=-0x4*-0x7ea+0x264*0x3+-0x26d4;_0x4f1a63<_0x590748['\x6c\x65\x6e\x67\x74\x68'];_0x4f1a63++){_0x4f4c57=(_0x4f4c57+(-0xd*0x1be+0x5a*-0x32+-0x3*-0xd69))%(-0x1f70+0x291*-0xe+0x2*0x222f),_0xbe4aa3=(_0xbe4aa3+_0x4b16f0[_0x4f4c57])%(0x1*-0x11bd+0x257d+0x4b*-0x40),_0x104b6c=_0x4b16f0[_0x4f4c57],_0x4b16f0[_0x4f4c57]=_0x4b16f0[_0xbe4aa3],_0x4b16f0[_0xbe4aa3]=_0x104b6c,_0x2bfed1+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x590748['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x4f1a63)^_0x4b16f0[(_0x4b16f0[_0x4f4c57]+_0x4b16f0[_0xbe4aa3])%(-0x1*0x76d+-0x780+-0x3*-0x54f)]);}return _0x2bfed1;};_0x4e9d['\x43\x41\x77\x58\x55\x72']=_0x273f95,_0x4e9d['\x76\x77\x7a\x4e\x4a\x55']={},_0x4e9d['\x78\x76\x59\x61\x71\x6b']=!![];}const _0x3ef5cc=_0x4ce704[-0x22c3+-0x10be+0x3381],_0x1336d3=_0x112bc0+_0x3ef5cc,_0x27e50d=_0x4e9d['\x76\x77\x7a\x4e\x4a\x55'][_0x1336d3];return!_0x27e50d?(_0x4e9d['\x4e\x45\x72\x6b\x7a\x4a']===undefined&&(_0x4e9d['\x4e\x45\x72\x6b\x7a\x4a']=!![]),_0x1986d2=_0x4e9d['\x43\x41\x77\x58\x55\x72'](_0x1986d2,_0x32678b),_0x4e9d['\x76\x77\x7a\x4e\x4a\x55'][_0x1336d3]=_0x1986d2):_0x1986d2=_0x27e50d,_0x1986d2;}export function summarizeOverblockedAntiGenes(_0x4e320b){const _0x193e87=_0x4e9d,_0x513cb0=new Map();for(const _0x18529b of _0x4e320b){if(!_0x18529b[_0x193e87(0x18f,'\x49\x79\x6f\x49')][_0x193e87(0x1b6,'\x6d\x4c\x40\x79')+'\x6b\x65\x64'])continue;for(const _0x2f0147 of new Set(_0x18529b[_0x193e87(0x197,'\x41\x53\x75\x77')]['\x6f\x62\x73\x65\x72\x76\x65\x64'+_0x193e87(0x196,'\x64\x4b\x32\x45')+_0x193e87(0x1be,'\x52\x29\x56\x4d')])){const _0x2b12e1=_0x513cb0[_0x193e87(0x1a1,'\x75\x41\x2a\x57')](_0x2f0147)??{'\x63\x6f\x75\x6e\x74':0x0,'\x74\x61\x73\x6b\x49\x64\x73':new Set()};_0x2b12e1['\x63\x6f\x75\x6e\x74']+=0x1e*0xf1+-0x17*-0xfd+-0x32f8,_0x2b12e1['\x74\x61\x73\x6b\x49\x64\x73'][_0x193e87(0x19c,'\x49\x79\x6f\x49')](_0x18529b[_0x193e87(0x1a0,'\x35\x54\x70\x52')]),_0x513cb0[_0x193e87(0x1aa,'\x44\x68\x53\x28')](_0x2f0147,_0x2b12e1);}}return[..._0x513cb0[_0x193e87(0x1c3,'\x50\x38\x31\x4f')]()][_0x193e87(0x1b3,'\x6a\x62\x41\x4d')](([_0x2e592e,_0x324a2f])=>({'\x61\x6e\x74\x69\x47\x65\x6e\x65\x49\x64':_0x2e592e,'\x63\x6f\x75\x6e\x74':_0x324a2f['\x63\x6f\x75\x6e\x74'],'\x74\x61\x73\x6b\x49\x64\x73':[..._0x324a2f[_0x193e87(0x1c7,'\x41\x53\x75\x77')]][_0x193e87(0x199,'\x24\x77\x38\x54')]()}))[_0x193e87(0x194,'\x74\x66\x32\x4e')]((_0x1802db,_0x1edd88)=>_0x1edd88[_0x193e87(0x193,'\x41\x6a\x6c\x57')]-_0x1802db[_0x193e87(0x1a6,'\x4e\x68\x26\x39')]||_0x1802db[_0x193e87(0x1a2,'\x67\x25\x37\x49')+'\x49\x64'][_0x193e87(0x1ad,'\x75\x41\x2a\x57')+_0x193e87(0x1ba,'\x6a\x77\x54\x34')](_0x1edd88[_0x193e87(0x19a,'\x6d\x5a\x6d\x36')+'\x49\x64']));}export function parseOverblockedAntiGenes(_0x4930e5){const _0x3763b9=_0x4e9d;if(!Array[_0x3763b9(0x192,'\x49\x79\x6f\x49')](_0x4930e5))return null;const _0x326092=[];for(const _0x1b3611 of _0x4930e5){if(!_0x1b3611||typeof _0x1b3611!==_0x3763b9(0x1b4,'\x24\x77\x38\x54')||Array[_0x3763b9(0x19f,'\x52\x29\x56\x4d')](_0x1b3611))return null;const _0x52110e=_0x1b3611;if(typeof _0x52110e[_0x3763b9(0x191,'\x73\x44\x59\x77')+'\x49\x64']!==_0x3763b9(0x1a4,'\x75\x41\x2a\x57'))return null;if(typeof _0x52110e[_0x3763b9(0x1b1,'\x63\x24\x72\x26')]!=='\x6e\x75\x6d\x62\x65\x72'||!Number[_0x3763b9(0x1ac,'\x64\x4b\x32\x45')](_0x52110e[_0x3763b9(0x1b5,'\x53\x4f\x36\x4c')]))return null;if(!Array[_0x3763b9(0x1bf,'\x72\x4f\x6d\x36')](_0x52110e[_0x3763b9(0x19d,'\x4e\x56\x6c\x77')])||!_0x52110e[_0x3763b9(0x19e,'\x44\x77\x61\x73')][_0x3763b9(0x195,'\x59\x40\x38\x24')](_0x4728cb=>typeof _0x4728cb===_0x3763b9(0x19b,'\x46\x4d\x5d\x4b')))return null;_0x326092[_0x3763b9(0x1a3,'\x51\x25\x31\x4e')]({'\x61\x6e\x74\x69\x47\x65\x6e\x65\x49\x64':_0x52110e[_0x3763b9(0x1c2,'\x72\x4f\x6d\x36')+'\x49\x64'],'\x63\x6f\x75\x6e\x74':_0x52110e[_0x3763b9(0x1b0,'\x4c\x6d\x49\x74')],'\x74\x61\x73\x6b\x49\x64\x73':[..._0x52110e[_0x3763b9(0x1c5,'\x4c\x6d\x49\x74')]]});}return _0x326092;}
@@ -75,6 +75,8 @@ export interface AntiGeneRolloutOptions {
75
75
  minFailureDelta?: number;
76
76
  now?: () => number;
77
77
  eventsPath?: string;
78
+ /** Apply the pre-IDF semantic scorer consistently to both A/B arms. */
79
+ disableSemanticIdf?: boolean;
78
80
  }
79
81
  export declare function runAntiGeneRollout(suite: AntiGeneRolloutSuite, deps: AntiGeneRolloutDeps, options?: AntiGeneRolloutOptions): Promise<AntiGeneRolloutReport>;
80
82
  export declare function writeAntiGeneRolloutResult(report: AntiGeneRolloutReport, eventsPath: string, now?: () => number): Promise<void>;