const __vite_ssr_import_0__ = await __vite_ssr_import__("/@fs/home/ella/.npm/_npx/69c381f8ad94b576/node_modules/vitest/dist/index.js", {"importedNames":["describe","it","expect"]});
const __vite_ssr_import_1__ = await __vite_ssr_import__("/src/pixel_patrol_base/viewer/plugin_histogram.js", {"importedNames":["dtypeKind","remapToAxis","accumulateGroupHistograms","classifyDtypes","DTYPE_NORM","populatedExtent"]});



const NBINS = 256;

// A length-NBINS array with `mass` at bin `at`, zero elsewhere.
function spike(at, mass = 1) {
  const a = new Array(NBINS).fill(0);
  a[at] = mass;
  return a;
}

(0,__vite_ssr_import_0__.describe)('dtypeKind', () => {
  (0,__vite_ssr_import_0__.it)('buckets by prefix', () => {
    (0,__vite_ssr_import_0__.expect)((0,__vite_ssr_import_1__.dtypeKind)('uint8')).toBe('uint');
    (0,__vite_ssr_import_0__.expect)((0,__vite_ssr_import_1__.dtypeKind)('uint64')).toBe('uint');
    (0,__vite_ssr_import_0__.expect)((0,__vite_ssr_import_1__.dtypeKind)('int16')).toBe('int');
    (0,__vite_ssr_import_0__.expect)((0,__vite_ssr_import_1__.dtypeKind)('float32')).toBe('float');
  });

  (0,__vite_ssr_import_0__.it)('returns null for unrecognized dtypes', () => {
    (0,__vite_ssr_import_0__.expect)((0,__vite_ssr_import_1__.dtypeKind)('bool')).toBeNull();
    (0,__vite_ssr_import_0__.expect)((0,__vite_ssr_import_1__.dtypeKind)(undefined)).toBeNull();
  });
});

(0,__vite_ssr_import_0__.describe)('DTYPE_NORM', () => {
  (0,__vite_ssr_import_0__.it)('has a normalization divisor for every integer bit width up to 64', () => {
    for (const bits of [8, 16, 32, 64]) {
      (0,__vite_ssr_import_0__.expect)(__vite_ssr_import_1__.DTYPE_NORM[`uint${bits}`]).toBe(2 ** bits);
      (0,__vite_ssr_import_0__.expect)(__vite_ssr_import_1__.DTYPE_NORM[`int${bits}`]).toBe(2 ** (bits - 1));
    }
  });
});

(0,__vite_ssr_import_0__.describe)('classifyDtypes', () => {
  const row = dtype => ({ dtype });

  (0,__vite_ssr_import_0__.it)('assumes a single uint panel when the dataset has no dtype column at all', () => {
    (0,__vite_ssr_import_0__.expect)((0,__vite_ssr_import_1__.classifyDtypes)([], false)).toEqual({ presentKinds: ['uint'], multiKind: false, unsupportedDtypes: [] });
  });

  (0,__vite_ssr_import_0__.it)('reports a single, non-multi kind for a uniform dtype', () => {
    const out = (0,__vite_ssr_import_1__.classifyDtypes)([row('uint16')], true);
    (0,__vite_ssr_import_0__.expect)(out).toEqual({ presentKinds: ['uint'], multiKind: false, unsupportedDtypes: [] });
  });

  (0,__vite_ssr_import_0__.it)('flags multiKind when more than one kind is present, in a stable uint/int/float order', () => {
    const out = (0,__vite_ssr_import_1__.classifyDtypes)([row('float32'), row('uint8')], true);
    (0,__vite_ssr_import_0__.expect)(out.presentKinds).toEqual(['uint', 'float']);
    (0,__vite_ssr_import_0__.expect)(out.multiKind).toBe(true);
  });

  (0,__vite_ssr_import_0__.it)('surfaces dtypes it cannot classify instead of silently dropping them', () => {
    const out = (0,__vite_ssr_import_1__.classifyDtypes)([row('uint8'), row('bool')], true);
    (0,__vite_ssr_import_0__.expect)(out.presentKinds).toEqual(['uint']);
    (0,__vite_ssr_import_0__.expect)(out.unsupportedDtypes).toEqual(['bool']);
  });

  (0,__vite_ssr_import_0__.it)('reports zero present kinds (not a crash) when every dtype is unsupported', () => {
    const out = (0,__vite_ssr_import_1__.classifyDtypes)([row('bool')], true);
    (0,__vite_ssr_import_0__.expect)(out.presentKinds).toEqual([]);
    (0,__vite_ssr_import_0__.expect)(out.multiKind).toBe(false);
    (0,__vite_ssr_import_0__.expect)(out.unsupportedDtypes).toEqual(['bool']);
  });
});

(0,__vite_ssr_import_0__.describe)('remapToAxis', () => {
  (0,__vite_ssr_import_0__.it)('is a no-op when source and target axes already match', () => {
    const values = spike(10, 3);
    const out = (0,__vite_ssr_import_1__.remapToAxis)(values, 0, 256, 0, 256);
    (0,__vite_ssr_import_0__.expect)(out).toBe(values); // same reference: no allocation on the fast path
  });

  (0,__vite_ssr_import_0__.it)('redistributes a narrow source range onto a wider shared target', () => {
    // Source: all mass in bin 0 of a [100, 356) image (one bin = one intensity level).
    const values = spike(0, 1);
    const out = (0,__vite_ssr_import_1__.remapToAxis)(values, 100, 356, 100, 1356); // target is 5x wider
    const total = out.reduce((a, b) => a + b, 0);
    (0,__vite_ssr_import_0__.expect)(total).toBeCloseTo(1);
    // Bin-centre of source value ~100.5 lands near the very start of the wider target.
    (0,__vite_ssr_import_0__.expect)(out[0]).toBeCloseTo(1);
  });

  (0,__vite_ssr_import_0__.it)('places a constant-value source at its correct target bin', () => {
    const values = spike(0, 1); // irrelevant which bin holds the mass when srcLo===srcHi
    const out = (0,__vite_ssr_import_1__.remapToAxis)(values, 1200, 1200, 0, 2400);
    const total = out.reduce((a, b) => a + b, 0);
    (0,__vite_ssr_import_0__.expect)(total).toBeCloseTo(1);
    // 1200 is exactly the midpoint of [0, 2400) -> bin 128.
    const nonZero = out.findIndex(v => v > 0);
    (0,__vite_ssr_import_0__.expect)(nonZero).toBe(128);
  });

  (0,__vite_ssr_import_0__.it)('collapses everything into bin 0 when the target itself is a single point', () => {
    const values = spike(5, 2).map((v, i) => (i === 50 ? 3 : v)); // two nonzero bins, mass 2 + 3
    const out = (0,__vite_ssr_import_1__.remapToAxis)(values, 0, 256, 7, 7);
    (0,__vite_ssr_import_0__.expect)(out[0]).toBe(5);
    (0,__vite_ssr_import_0__.expect)(out.reduce((a, b) => a + b, 0)).toBe(5);
  });
});

(0,__vite_ssr_import_0__.describe)('populatedExtent', () => {
  (0,__vite_ssr_import_0__.it)('returns null when every bin is zero', () => {
    (0,__vite_ssr_import_0__.expect)((0,__vite_ssr_import_1__.populatedExtent)(0, 256, new Array(NBINS).fill(0))).toBeNull();
  });

  (0,__vite_ssr_import_0__.it)('trims leading and trailing zeros to the real data span', () => {
    // Narrow integer data widened to a 256-wide window: only the first 10 levels are populated.
    const values = new Array(NBINS).fill(0);
    for (let i = 0; i < 10; i++) values[i] = 1;
    (0,__vite_ssr_import_0__.expect)((0,__vite_ssr_import_1__.populatedExtent)(100, 356, values)).toEqual([100, 110]);
  });

  (0,__vite_ssr_import_0__.it)('preserves a real internal gap between two populated clusters', () => {
    const values = spike(5, 1);
    values[250] = 1;
    const [lo, hi] = (0,__vite_ssr_import_1__.populatedExtent)(0, 256, values);
    (0,__vite_ssr_import_0__.expect)(lo).toBe(5);
    (0,__vite_ssr_import_0__.expect)(hi).toBe(251);
  });

  (0,__vite_ssr_import_0__.it)('matches binXs bin placement for a constant-value (zero-width) window', () => {
    // hi === lo: same degenerate case binXs falls back to step = 1/NBINS for.
    const values = spike(0, 1);
    const [lo, hi] = (0,__vite_ssr_import_1__.populatedExtent)(100, 100, values);
    (0,__vite_ssr_import_0__.expect)(lo).toBeCloseTo(100);
    (0,__vite_ssr_import_0__.expect)(hi).toBeCloseTo(100 + 1 / NBINS);
  });
});

(0,__vite_ssr_import_0__.describe)('accumulateGroupHistograms - the core cross-image bug fix', () => {
  function record({ kind = 'uint', group = 'g', total = 100, aMin, aMax, nMin = aMin, nMax = aMax, spikeAt = 0, nanCount = 0 }) {
    return { kind, group, counts: spike(spikeAt, total), total, aMin, aMax, nMin, nMax, nanCount };
  }

  (0,__vite_ssr_import_0__.it)('does not collapse images with different ranges into the same bin (the reported bug)', () => {
    // Three images, each a narrow constant-ish cluster, all landing in bin 0 of
    // their OWN per-image range - exactly the "100 vs 1200 vs 30000" scenario.
    const records = [
      record({ aMin: 100, aMax: 356 }),
      record({ aMin: 1200, aMax: 1456 }),
      record({ aMin: 30000, aMax: 30256 }),
    ];
    const { uint: { g: gd } } = (0,__vite_ssr_import_1__.accumulateGroupHistograms)(records);

    (0,__vite_ssr_import_0__.expect)(gd.aMin).toBe(100);
    (0,__vite_ssr_import_0__.expect)(gd.aMax).toBe(30256);

    // Naive index-wise summing would put all three at bin 0. The fix must spread
    // them across three distinct target bins reflecting their real values.
    const nonZeroBins = gd.sums.reduce((acc, v, i) => (v > 0 ? [...acc, i] : acc), []);
    (0,__vite_ssr_import_0__.expect)(nonZeroBins.length).toBe(3);
    (0,__vite_ssr_import_0__.expect)(new Set(nonZeroBins).size).toBe(3);

    // Each image contributes a full 1.0 of normalized mass, averaged over 3 images.
    const total = gd.sums.reduce((a, b) => a + b, 0);
    (0,__vite_ssr_import_0__.expect)(total).toBeCloseTo(3);
  });

  (0,__vite_ssr_import_0__.it)('sums images sharing the same range without distorting values', () => {
    const records = [
      record({ aMin: 200, aMax: 300, spikeAt: 5 }),
      record({ aMin: 200, aMax: 300, spikeAt: 5 }),
      record({ aMin: 200, aMax: 300, spikeAt: 5 }),
    ];
    const { uint: { g: gd } } = (0,__vite_ssr_import_1__.accumulateGroupHistograms)(records);
    (0,__vite_ssr_import_0__.expect)(gd.sums[5]).toBeCloseTo(3);
    (0,__vite_ssr_import_0__.expect)(gd.sums.filter(v => v > 0).length).toBe(1);
  });

  (0,__vite_ssr_import_0__.it)('keeps different kinds in separate buckets', () => {
    const records = [
      record({ kind: 'uint', aMin: 0, aMax: 256 }),
      record({ kind: 'float', aMin: 0, aMax: 256 }),
    ];
    const result = (0,__vite_ssr_import_1__.accumulateGroupHistograms)(records);
    (0,__vite_ssr_import_0__.expect)(Object.keys(result).sort()).toEqual(['float', 'uint']);
    (0,__vite_ssr_import_0__.expect)(result.uint.g.count).toBe(1);
    (0,__vite_ssr_import_0__.expect)(result.float.g.count).toBe(1);
  });

  (0,__vite_ssr_import_0__.it)('remaps the dtype-normalized axis independently of the actual-value axis', () => {
    // Same two images as the mixed-dtype-within-kind scenario: uint8 (0-71 -> normalized
    // window [0, 256)) and uint16 (5000-5300, normalized window far from zero).
    const records = [
      record({ aMin: 0, aMax: 256, nMin: 0, nMax: 1, spikeAt: 0 }),
      record({ aMin: 5000, aMax: 5256, nMin: 0.076, nMax: 0.084, spikeAt: 0 }),
    ];
    const { uint: { g: gd } } = (0,__vite_ssr_import_1__.accumulateGroupHistograms)(records);

    // Actual-value axis: union spans the full 0-5256 range.
    (0,__vite_ssr_import_0__.expect)(gd.aMin).toBe(0);
    (0,__vite_ssr_import_0__.expect)(gd.aMax).toBe(5256);
    // Normalized axis: independently unioned from nMin/nMax, not derived from aMin/aMax.
    // The uint8 image's own normalized window already spans the full [0, 1), so it
    // dominates the union regardless of where the uint16 image's narrower window sits.
    (0,__vite_ssr_import_0__.expect)(gd.nMin).toBeCloseTo(0);
    (0,__vite_ssr_import_0__.expect)(gd.nMax).toBeCloseTo(1);

    const actualBins = gd.sums.reduce((acc, v, i) => (v > 0 ? [...acc, i] : acc), []);
    const normBins   = gd.sumsNorm.reduce((acc, v, i) => (v > 0 ? [...acc, i] : acc), []);
    (0,__vite_ssr_import_0__.expect)(new Set(actualBins).size).toBe(2);
    (0,__vite_ssr_import_0__.expect)(new Set(normBins).size).toBe(2);
    // The two axes place the second image at different relative positions.
    (0,__vite_ssr_import_0__.expect)(actualBins).not.toEqual(normBins);
  });

  (0,__vite_ssr_import_0__.it)('skips normalized accumulation for float and when computeNormalized is false', () => {
    const floatOnly = (0,__vite_ssr_import_1__.accumulateGroupHistograms)([record({ kind: 'float', aMin: 0, aMax: 256 })]);
    (0,__vite_ssr_import_0__.expect)(floatOnly.float.g.sumsNorm).toBe(floatOnly.float.g.sums);

    const noNorm = (0,__vite_ssr_import_1__.accumulateGroupHistograms)(
      [record({ kind: 'uint', aMin: 0, aMax: 256 })],
      { computeNormalized: false },
    );
    (0,__vite_ssr_import_0__.expect)(noNorm.uint.g.sumsNorm).toBe(noNorm.uint.g.sums);
  });

  (0,__vite_ssr_import_0__.it)('remaps sumSq (the ±1 std input) onto the exact same bins as sums, not just the same count', () => {
    const records = [
      record({ aMin: 100, aMax: 356, spikeAt: 0 }),
      record({ aMin: 1200, aMax: 1456, spikeAt: 0 }),
    ];
    const { uint: { g: gd } } = (0,__vite_ssr_import_1__.accumulateGroupHistograms)(records);
    const nonZeroBins = arr => arr.reduce((acc, v, i) => (v > 0 ? [...acc, i] : acc), []);
    const sumsBins  = nonZeroBins(gd.sums);
    const sumSqBins = nonZeroBins(gd.sumSq);
    (0,__vite_ssr_import_0__.expect)(sumsBins.length).toBe(2); // sanity: the two images really do land on different bins
    (0,__vite_ssr_import_0__.expect)(sumSqBins).toEqual(sumsBins);
  });

  (0,__vite_ssr_import_0__.it)('defaults nanCount to 0, matching prior no-NaN behavior', () => {
    const { uint: { g: gd } } = (0,__vite_ssr_import_1__.accumulateGroupHistograms)([record({ aMin: 0, aMax: 256 })]);
    (0,__vite_ssr_import_0__.expect)(gd.nanSum).toBe(0);
  });

  (0,__vite_ssr_import_0__.it)('folds NaN pixels into the per-image denominator, shrinking its bin mass accordingly', () => {
    // 100 finite pixels + 100 NaN pixels -> each bin's mass is halved, nanFrac is 0.5.
    const records = [record({ aMin: 0, aMax: 256, total: 100, nanCount: 100 })];
    const { uint: { g: gd } } = (0,__vite_ssr_import_1__.accumulateGroupHistograms)(records);
    (0,__vite_ssr_import_0__.expect)(gd.nanSum).toBeCloseTo(0.5);
    (0,__vite_ssr_import_0__.expect)(gd.sums.reduce((a, b) => a + b, 0)).toBeCloseTo(0.5);
  });
});
//# sourceMappingSource=vite-generated
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhpc3RvZ3JhbS1hZ2dyZWdhdGlvbi50ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlc2NyaWJlLCBpdCwgZXhwZWN0IH0gZnJvbSAndml0ZXN0JztcbmltcG9ydCB7XG4gIGR0eXBlS2luZCxcbiAgcmVtYXBUb0F4aXMsXG4gIGFjY3VtdWxhdGVHcm91cEhpc3RvZ3JhbXMsXG4gIGNsYXNzaWZ5RHR5cGVzLFxuICBEVFlQRV9OT1JNLFxuICBwb3B1bGF0ZWRFeHRlbnQsXG59IGZyb20gJy4uLy4uL3NyYy9waXhlbF9wYXRyb2xfYmFzZS92aWV3ZXIvcGx1Z2luX2hpc3RvZ3JhbS5qcyc7XG5cbmNvbnN0IE5CSU5TID0gMjU2O1xuXG4vLyBBIGxlbmd0aC1OQklOUyBhcnJheSB3aXRoIGBtYXNzYCBhdCBiaW4gYGF0YCwgemVybyBlbHNld2hlcmUuXG5mdW5jdGlvbiBzcGlrZShhdCwgbWFzcyA9IDEpIHtcbiAgY29uc3QgYSA9IG5ldyBBcnJheShOQklOUykuZmlsbCgwKTtcbiAgYVthdF0gPSBtYXNzO1xuICByZXR1cm4gYTtcbn1cblxuZGVzY3JpYmUoJ2R0eXBlS2luZCcsICgpID0+IHtcbiAgaXQoJ2J1Y2tldHMgYnkgcHJlZml4JywgKCkgPT4ge1xuICAgIGV4cGVjdChkdHlwZUtpbmQoJ3VpbnQ4JykpLnRvQmUoJ3VpbnQnKTtcbiAgICBleHBlY3QoZHR5cGVLaW5kKCd1aW50NjQnKSkudG9CZSgndWludCcpO1xuICAgIGV4cGVjdChkdHlwZUtpbmQoJ2ludDE2JykpLnRvQmUoJ2ludCcpO1xuICAgIGV4cGVjdChkdHlwZUtpbmQoJ2Zsb2F0MzInKSkudG9CZSgnZmxvYXQnKTtcbiAgfSk7XG5cbiAgaXQoJ3JldHVybnMgbnVsbCBmb3IgdW5yZWNvZ25pemVkIGR0eXBlcycsICgpID0+IHtcbiAgICBleHBlY3QoZHR5cGVLaW5kKCdib29sJykpLnRvQmVOdWxsKCk7XG4gICAgZXhwZWN0KGR0eXBlS2luZCh1bmRlZmluZWQpKS50b0JlTnVsbCgpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnRFRZUEVfTk9STScsICgpID0+IHtcbiAgaXQoJ2hhcyBhIG5vcm1hbGl6YXRpb24gZGl2aXNvciBmb3IgZXZlcnkgaW50ZWdlciBiaXQgd2lkdGggdXAgdG8gNjQnLCAoKSA9PiB7XG4gICAgZm9yIChjb25zdCBiaXRzIG9mIFs4LCAxNiwgMzIsIDY0XSkge1xuICAgICAgZXhwZWN0KERUWVBFX05PUk1bYHVpbnQke2JpdHN9YF0pLnRvQmUoMiAqKiBiaXRzKTtcbiAgICAgIGV4cGVjdChEVFlQRV9OT1JNW2BpbnQke2JpdHN9YF0pLnRvQmUoMiAqKiAoYml0cyAtIDEpKTtcbiAgICB9XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdjbGFzc2lmeUR0eXBlcycsICgpID0+IHtcbiAgY29uc3Qgcm93ID0gZHR5cGUgPT4gKHsgZHR5cGUgfSk7XG5cbiAgaXQoJ2Fzc3VtZXMgYSBzaW5nbGUgdWludCBwYW5lbCB3aGVuIHRoZSBkYXRhc2V0IGhhcyBubyBkdHlwZSBjb2x1bW4gYXQgYWxsJywgKCkgPT4ge1xuICAgIGV4cGVjdChjbGFzc2lmeUR0eXBlcyhbXSwgZmFsc2UpKS50b0VxdWFsKHsgcHJlc2VudEtpbmRzOiBbJ3VpbnQnXSwgbXVsdGlLaW5kOiBmYWxzZSwgdW5zdXBwb3J0ZWREdHlwZXM6IFtdIH0pO1xuICB9KTtcblxuICBpdCgncmVwb3J0cyBhIHNpbmdsZSwgbm9uLW11bHRpIGtpbmQgZm9yIGEgdW5pZm9ybSBkdHlwZScsICgpID0+IHtcbiAgICBjb25zdCBvdXQgPSBjbGFzc2lmeUR0eXBlcyhbcm93KCd1aW50MTYnKV0sIHRydWUpO1xuICAgIGV4cGVjdChvdXQpLnRvRXF1YWwoeyBwcmVzZW50S2luZHM6IFsndWludCddLCBtdWx0aUtpbmQ6IGZhbHNlLCB1bnN1cHBvcnRlZER0eXBlczogW10gfSk7XG4gIH0pO1xuXG4gIGl0KCdmbGFncyBtdWx0aUtpbmQgd2hlbiBtb3JlIHRoYW4gb25lIGtpbmQgaXMgcHJlc2VudCwgaW4gYSBzdGFibGUgdWludC9pbnQvZmxvYXQgb3JkZXInLCAoKSA9PiB7XG4gICAgY29uc3Qgb3V0ID0gY2xhc3NpZnlEdHlwZXMoW3JvdygnZmxvYXQzMicpLCByb3coJ3VpbnQ4JyldLCB0cnVlKTtcbiAgICBleHBlY3Qob3V0LnByZXNlbnRLaW5kcykudG9FcXVhbChbJ3VpbnQnLCAnZmxvYXQnXSk7XG4gICAgZXhwZWN0KG91dC5tdWx0aUtpbmQpLnRvQmUodHJ1ZSk7XG4gIH0pO1xuXG4gIGl0KCdzdXJmYWNlcyBkdHlwZXMgaXQgY2Fubm90IGNsYXNzaWZ5IGluc3RlYWQgb2Ygc2lsZW50bHkgZHJvcHBpbmcgdGhlbScsICgpID0+IHtcbiAgICBjb25zdCBvdXQgPSBjbGFzc2lmeUR0eXBlcyhbcm93KCd1aW50OCcpLCByb3coJ2Jvb2wnKV0sIHRydWUpO1xuICAgIGV4cGVjdChvdXQucHJlc2VudEtpbmRzKS50b0VxdWFsKFsndWludCddKTtcbiAgICBleHBlY3Qob3V0LnVuc3VwcG9ydGVkRHR5cGVzKS50b0VxdWFsKFsnYm9vbCddKTtcbiAgfSk7XG5cbiAgaXQoJ3JlcG9ydHMgemVybyBwcmVzZW50IGtpbmRzIChub3QgYSBjcmFzaCkgd2hlbiBldmVyeSBkdHlwZSBpcyB1bnN1cHBvcnRlZCcsICgpID0+IHtcbiAgICBjb25zdCBvdXQgPSBjbGFzc2lmeUR0eXBlcyhbcm93KCdib29sJyldLCB0cnVlKTtcbiAgICBleHBlY3Qob3V0LnByZXNlbnRLaW5kcykudG9FcXVhbChbXSk7XG4gICAgZXhwZWN0KG91dC5tdWx0aUtpbmQpLnRvQmUoZmFsc2UpO1xuICAgIGV4cGVjdChvdXQudW5zdXBwb3J0ZWREdHlwZXMpLnRvRXF1YWwoWydib29sJ10pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgncmVtYXBUb0F4aXMnLCAoKSA9PiB7XG4gIGl0KCdpcyBhIG5vLW9wIHdoZW4gc291cmNlIGFuZCB0YXJnZXQgYXhlcyBhbHJlYWR5IG1hdGNoJywgKCkgPT4ge1xuICAgIGNvbnN0IHZhbHVlcyA9IHNwaWtlKDEwLCAzKTtcbiAgICBjb25zdCBvdXQgPSByZW1hcFRvQXhpcyh2YWx1ZXMsIDAsIDI1NiwgMCwgMjU2KTtcbiAgICBleHBlY3Qob3V0KS50b0JlKHZhbHVlcyk7IC8vIHNhbWUgcmVmZXJlbmNlOiBubyBhbGxvY2F0aW9uIG9uIHRoZSBmYXN0IHBhdGhcbiAgfSk7XG5cbiAgaXQoJ3JlZGlzdHJpYnV0ZXMgYSBuYXJyb3cgc291cmNlIHJhbmdlIG9udG8gYSB3aWRlciBzaGFyZWQgdGFyZ2V0JywgKCkgPT4ge1xuICAgIC8vIFNvdXJjZTogYWxsIG1hc3MgaW4gYmluIDAgb2YgYSBbMTAwLCAzNTYpIGltYWdlIChvbmUgYmluID0gb25lIGludGVuc2l0eSBsZXZlbCkuXG4gICAgY29uc3QgdmFsdWVzID0gc3Bpa2UoMCwgMSk7XG4gICAgY29uc3Qgb3V0ID0gcmVtYXBUb0F4aXModmFsdWVzLCAxMDAsIDM1NiwgMTAwLCAxMzU2KTsgLy8gdGFyZ2V0IGlzIDV4IHdpZGVyXG4gICAgY29uc3QgdG90YWwgPSBvdXQucmVkdWNlKChhLCBiKSA9PiBhICsgYiwgMCk7XG4gICAgZXhwZWN0KHRvdGFsKS50b0JlQ2xvc2VUbygxKTtcbiAgICAvLyBCaW4tY2VudHJlIG9mIHNvdXJjZSB2YWx1ZSB+MTAwLjUgbGFuZHMgbmVhciB0aGUgdmVyeSBzdGFydCBvZiB0aGUgd2lkZXIgdGFyZ2V0LlxuICAgIGV4cGVjdChvdXRbMF0pLnRvQmVDbG9zZVRvKDEpO1xuICB9KTtcblxuICBpdCgncGxhY2VzIGEgY29uc3RhbnQtdmFsdWUgc291cmNlIGF0IGl0cyBjb3JyZWN0IHRhcmdldCBiaW4nLCAoKSA9PiB7XG4gICAgY29uc3QgdmFsdWVzID0gc3Bpa2UoMCwgMSk7IC8vIGlycmVsZXZhbnQgd2hpY2ggYmluIGhvbGRzIHRoZSBtYXNzIHdoZW4gc3JjTG89PT1zcmNIaVxuICAgIGNvbnN0IG91dCA9IHJlbWFwVG9BeGlzKHZhbHVlcywgMTIwMCwgMTIwMCwgMCwgMjQwMCk7XG4gICAgY29uc3QgdG90YWwgPSBvdXQucmVkdWNlKChhLCBiKSA9PiBhICsgYiwgMCk7XG4gICAgZXhwZWN0KHRvdGFsKS50b0JlQ2xvc2VUbygxKTtcbiAgICAvLyAxMjAwIGlzIGV4YWN0bHkgdGhlIG1pZHBvaW50IG9mIFswLCAyNDAwKSAtPiBiaW4gMTI4LlxuICAgIGNvbnN0IG5vblplcm8gPSBvdXQuZmluZEluZGV4KHYgPT4gdiA+IDApO1xuICAgIGV4cGVjdChub25aZXJvKS50b0JlKDEyOCk7XG4gIH0pO1xuXG4gIGl0KCdjb2xsYXBzZXMgZXZlcnl0aGluZyBpbnRvIGJpbiAwIHdoZW4gdGhlIHRhcmdldCBpdHNlbGYgaXMgYSBzaW5nbGUgcG9pbnQnLCAoKSA9PiB7XG4gICAgY29uc3QgdmFsdWVzID0gc3Bpa2UoNSwgMikubWFwKCh2LCBpKSA9PiAoaSA9PT0gNTAgPyAzIDogdikpOyAvLyB0d28gbm9uemVybyBiaW5zLCBtYXNzIDIgKyAzXG4gICAgY29uc3Qgb3V0ID0gcmVtYXBUb0F4aXModmFsdWVzLCAwLCAyNTYsIDcsIDcpO1xuICAgIGV4cGVjdChvdXRbMF0pLnRvQmUoNSk7XG4gICAgZXhwZWN0KG91dC5yZWR1Y2UoKGEsIGIpID0+IGEgKyBiLCAwKSkudG9CZSg1KTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ3BvcHVsYXRlZEV4dGVudCcsICgpID0+IHtcbiAgaXQoJ3JldHVybnMgbnVsbCB3aGVuIGV2ZXJ5IGJpbiBpcyB6ZXJvJywgKCkgPT4ge1xuICAgIGV4cGVjdChwb3B1bGF0ZWRFeHRlbnQoMCwgMjU2LCBuZXcgQXJyYXkoTkJJTlMpLmZpbGwoMCkpKS50b0JlTnVsbCgpO1xuICB9KTtcblxuICBpdCgndHJpbXMgbGVhZGluZyBhbmQgdHJhaWxpbmcgemVyb3MgdG8gdGhlIHJlYWwgZGF0YSBzcGFuJywgKCkgPT4ge1xuICAgIC8vIE5hcnJvdyBpbnRlZ2VyIGRhdGEgd2lkZW5lZCB0byBhIDI1Ni13aWRlIHdpbmRvdzogb25seSB0aGUgZmlyc3QgMTAgbGV2ZWxzIGFyZSBwb3B1bGF0ZWQuXG4gICAgY29uc3QgdmFsdWVzID0gbmV3IEFycmF5KE5CSU5TKS5maWxsKDApO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTA7IGkrKykgdmFsdWVzW2ldID0gMTtcbiAgICBleHBlY3QocG9wdWxhdGVkRXh0ZW50KDEwMCwgMzU2LCB2YWx1ZXMpKS50b0VxdWFsKFsxMDAsIDExMF0pO1xuICB9KTtcblxuICBpdCgncHJlc2VydmVzIGEgcmVhbCBpbnRlcm5hbCBnYXAgYmV0d2VlbiB0d28gcG9wdWxhdGVkIGNsdXN0ZXJzJywgKCkgPT4ge1xuICAgIGNvbnN0IHZhbHVlcyA9IHNwaWtlKDUsIDEpO1xuICAgIHZhbHVlc1syNTBdID0gMTtcbiAgICBjb25zdCBbbG8sIGhpXSA9IHBvcHVsYXRlZEV4dGVudCgwLCAyNTYsIHZhbHVlcyk7XG4gICAgZXhwZWN0KGxvKS50b0JlKDUpO1xuICAgIGV4cGVjdChoaSkudG9CZSgyNTEpO1xuICB9KTtcblxuICBpdCgnbWF0Y2hlcyBiaW5YcyBiaW4gcGxhY2VtZW50IGZvciBhIGNvbnN0YW50LXZhbHVlICh6ZXJvLXdpZHRoKSB3aW5kb3cnLCAoKSA9PiB7XG4gICAgLy8gaGkgPT09IGxvOiBzYW1lIGRlZ2VuZXJhdGUgY2FzZSBiaW5YcyBmYWxscyBiYWNrIHRvIHN0ZXAgPSAxL05CSU5TIGZvci5cbiAgICBjb25zdCB2YWx1ZXMgPSBzcGlrZSgwLCAxKTtcbiAgICBjb25zdCBbbG8sIGhpXSA9IHBvcHVsYXRlZEV4dGVudCgxMDAsIDEwMCwgdmFsdWVzKTtcbiAgICBleHBlY3QobG8pLnRvQmVDbG9zZVRvKDEwMCk7XG4gICAgZXhwZWN0KGhpKS50b0JlQ2xvc2VUbygxMDAgKyAxIC8gTkJJTlMpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnYWNjdW11bGF0ZUdyb3VwSGlzdG9ncmFtcyAtIHRoZSBjb3JlIGNyb3NzLWltYWdlIGJ1ZyBmaXgnLCAoKSA9PiB7XG4gIGZ1bmN0aW9uIHJlY29yZCh7IGtpbmQgPSAndWludCcsIGdyb3VwID0gJ2cnLCB0b3RhbCA9IDEwMCwgYU1pbiwgYU1heCwgbk1pbiA9IGFNaW4sIG5NYXggPSBhTWF4LCBzcGlrZUF0ID0gMCwgbmFuQ291bnQgPSAwIH0pIHtcbiAgICByZXR1cm4geyBraW5kLCBncm91cCwgY291bnRzOiBzcGlrZShzcGlrZUF0LCB0b3RhbCksIHRvdGFsLCBhTWluLCBhTWF4LCBuTWluLCBuTWF4LCBuYW5Db3VudCB9O1xuICB9XG5cbiAgaXQoJ2RvZXMgbm90IGNvbGxhcHNlIGltYWdlcyB3aXRoIGRpZmZlcmVudCByYW5nZXMgaW50byB0aGUgc2FtZSBiaW4gKHRoZSByZXBvcnRlZCBidWcpJywgKCkgPT4ge1xuICAgIC8vIFRocmVlIGltYWdlcywgZWFjaCBhIG5hcnJvdyBjb25zdGFudC1pc2ggY2x1c3RlciwgYWxsIGxhbmRpbmcgaW4gYmluIDAgb2ZcbiAgICAvLyB0aGVpciBPV04gcGVyLWltYWdlIHJhbmdlIC0gZXhhY3RseSB0aGUgXCIxMDAgdnMgMTIwMCB2cyAzMDAwMFwiIHNjZW5hcmlvLlxuICAgIGNvbnN0IHJlY29yZHMgPSBbXG4gICAgICByZWNvcmQoeyBhTWluOiAxMDAsIGFNYXg6IDM1NiB9KSxcbiAgICAgIHJlY29yZCh7IGFNaW46IDEyMDAsIGFNYXg6IDE0NTYgfSksXG4gICAgICByZWNvcmQoeyBhTWluOiAzMDAwMCwgYU1heDogMzAyNTYgfSksXG4gICAgXTtcbiAgICBjb25zdCB7IHVpbnQ6IHsgZzogZ2QgfSB9ID0gYWNjdW11bGF0ZUdyb3VwSGlzdG9ncmFtcyhyZWNvcmRzKTtcblxuICAgIGV4cGVjdChnZC5hTWluKS50b0JlKDEwMCk7XG4gICAgZXhwZWN0KGdkLmFNYXgpLnRvQmUoMzAyNTYpO1xuXG4gICAgLy8gTmFpdmUgaW5kZXgtd2lzZSBzdW1taW5nIHdvdWxkIHB1dCBhbGwgdGhyZWUgYXQgYmluIDAuIFRoZSBmaXggbXVzdCBzcHJlYWRcbiAgICAvLyB0aGVtIGFjcm9zcyB0aHJlZSBkaXN0aW5jdCB0YXJnZXQgYmlucyByZWZsZWN0aW5nIHRoZWlyIHJlYWwgdmFsdWVzLlxuICAgIGNvbnN0IG5vblplcm9CaW5zID0gZ2Quc3Vtcy5yZWR1Y2UoKGFjYywgdiwgaSkgPT4gKHYgPiAwID8gWy4uLmFjYywgaV0gOiBhY2MpLCBbXSk7XG4gICAgZXhwZWN0KG5vblplcm9CaW5zLmxlbmd0aCkudG9CZSgzKTtcbiAgICBleHBlY3QobmV3IFNldChub25aZXJvQmlucykuc2l6ZSkudG9CZSgzKTtcblxuICAgIC8vIEVhY2ggaW1hZ2UgY29udHJpYnV0ZXMgYSBmdWxsIDEuMCBvZiBub3JtYWxpemVkIG1hc3MsIGF2ZXJhZ2VkIG92ZXIgMyBpbWFnZXMuXG4gICAgY29uc3QgdG90YWwgPSBnZC5zdW1zLnJlZHVjZSgoYSwgYikgPT4gYSArIGIsIDApO1xuICAgIGV4cGVjdCh0b3RhbCkudG9CZUNsb3NlVG8oMyk7XG4gIH0pO1xuXG4gIGl0KCdzdW1zIGltYWdlcyBzaGFyaW5nIHRoZSBzYW1lIHJhbmdlIHdpdGhvdXQgZGlzdG9ydGluZyB2YWx1ZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgcmVjb3JkcyA9IFtcbiAgICAgIHJlY29yZCh7IGFNaW46IDIwMCwgYU1heDogMzAwLCBzcGlrZUF0OiA1IH0pLFxuICAgICAgcmVjb3JkKHsgYU1pbjogMjAwLCBhTWF4OiAzMDAsIHNwaWtlQXQ6IDUgfSksXG4gICAgICByZWNvcmQoeyBhTWluOiAyMDAsIGFNYXg6IDMwMCwgc3Bpa2VBdDogNSB9KSxcbiAgICBdO1xuICAgIGNvbnN0IHsgdWludDogeyBnOiBnZCB9IH0gPSBhY2N1bXVsYXRlR3JvdXBIaXN0b2dyYW1zKHJlY29yZHMpO1xuICAgIGV4cGVjdChnZC5zdW1zWzVdKS50b0JlQ2xvc2VUbygzKTtcbiAgICBleHBlY3QoZ2Quc3Vtcy5maWx0ZXIodiA9PiB2ID4gMCkubGVuZ3RoKS50b0JlKDEpO1xuICB9KTtcblxuICBpdCgna2VlcHMgZGlmZmVyZW50IGtpbmRzIGluIHNlcGFyYXRlIGJ1Y2tldHMnLCAoKSA9PiB7XG4gICAgY29uc3QgcmVjb3JkcyA9IFtcbiAgICAgIHJlY29yZCh7IGtpbmQ6ICd1aW50JywgYU1pbjogMCwgYU1heDogMjU2IH0pLFxuICAgICAgcmVjb3JkKHsga2luZDogJ2Zsb2F0JywgYU1pbjogMCwgYU1heDogMjU2IH0pLFxuICAgIF07XG4gICAgY29uc3QgcmVzdWx0ID0gYWNjdW11bGF0ZUdyb3VwSGlzdG9ncmFtcyhyZWNvcmRzKTtcbiAgICBleHBlY3QoT2JqZWN0LmtleXMocmVzdWx0KS5zb3J0KCkpLnRvRXF1YWwoWydmbG9hdCcsICd1aW50J10pO1xuICAgIGV4cGVjdChyZXN1bHQudWludC5nLmNvdW50KS50b0JlKDEpO1xuICAgIGV4cGVjdChyZXN1bHQuZmxvYXQuZy5jb3VudCkudG9CZSgxKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbWFwcyB0aGUgZHR5cGUtbm9ybWFsaXplZCBheGlzIGluZGVwZW5kZW50bHkgb2YgdGhlIGFjdHVhbC12YWx1ZSBheGlzJywgKCkgPT4ge1xuICAgIC8vIFNhbWUgdHdvIGltYWdlcyBhcyB0aGUgbWl4ZWQtZHR5cGUtd2l0aGluLWtpbmQgc2NlbmFyaW86IHVpbnQ4ICgwLTcxIC0+IG5vcm1hbGl6ZWRcbiAgICAvLyB3aW5kb3cgWzAsIDI1NikpIGFuZCB1aW50MTYgKDUwMDAtNTMwMCwgbm9ybWFsaXplZCB3aW5kb3cgZmFyIGZyb20gemVybykuXG4gICAgY29uc3QgcmVjb3JkcyA9IFtcbiAgICAgIHJlY29yZCh7IGFNaW46IDAsIGFNYXg6IDI1Niwgbk1pbjogMCwgbk1heDogMSwgc3Bpa2VBdDogMCB9KSxcbiAgICAgIHJlY29yZCh7IGFNaW46IDUwMDAsIGFNYXg6IDUyNTYsIG5NaW46IDAuMDc2LCBuTWF4OiAwLjA4NCwgc3Bpa2VBdDogMCB9KSxcbiAgICBdO1xuICAgIGNvbnN0IHsgdWludDogeyBnOiBnZCB9IH0gPSBhY2N1bXVsYXRlR3JvdXBIaXN0b2dyYW1zKHJlY29yZHMpO1xuXG4gICAgLy8gQWN0dWFsLXZhbHVlIGF4aXM6IHVuaW9uIHNwYW5zIHRoZSBmdWxsIDAtNTI1NiByYW5nZS5cbiAgICBleHBlY3QoZ2QuYU1pbikudG9CZSgwKTtcbiAgICBleHBlY3QoZ2QuYU1heCkudG9CZSg1MjU2KTtcbiAgICAvLyBOb3JtYWxpemVkIGF4aXM6IGluZGVwZW5kZW50bHkgdW5pb25lZCBmcm9tIG5NaW4vbk1heCwgbm90IGRlcml2ZWQgZnJvbSBhTWluL2FNYXguXG4gICAgLy8gVGhlIHVpbnQ4IGltYWdlJ3Mgb3duIG5vcm1hbGl6ZWQgd2luZG93IGFscmVhZHkgc3BhbnMgdGhlIGZ1bGwgWzAsIDEpLCBzbyBpdFxuICAgIC8vIGRvbWluYXRlcyB0aGUgdW5pb24gcmVnYXJkbGVzcyBvZiB3aGVyZSB0aGUgdWludDE2IGltYWdlJ3MgbmFycm93ZXIgd2luZG93IHNpdHMuXG4gICAgZXhwZWN0KGdkLm5NaW4pLnRvQmVDbG9zZVRvKDApO1xuICAgIGV4cGVjdChnZC5uTWF4KS50b0JlQ2xvc2VUbygxKTtcblxuICAgIGNvbnN0IGFjdHVhbEJpbnMgPSBnZC5zdW1zLnJlZHVjZSgoYWNjLCB2LCBpKSA9PiAodiA+IDAgPyBbLi4uYWNjLCBpXSA6IGFjYyksIFtdKTtcbiAgICBjb25zdCBub3JtQmlucyAgID0gZ2Quc3Vtc05vcm0ucmVkdWNlKChhY2MsIHYsIGkpID0+ICh2ID4gMCA/IFsuLi5hY2MsIGldIDogYWNjKSwgW10pO1xuICAgIGV4cGVjdChuZXcgU2V0KGFjdHVhbEJpbnMpLnNpemUpLnRvQmUoMik7XG4gICAgZXhwZWN0KG5ldyBTZXQobm9ybUJpbnMpLnNpemUpLnRvQmUoMik7XG4gICAgLy8gVGhlIHR3byBheGVzIHBsYWNlIHRoZSBzZWNvbmQgaW1hZ2UgYXQgZGlmZmVyZW50IHJlbGF0aXZlIHBvc2l0aW9ucy5cbiAgICBleHBlY3QoYWN0dWFsQmlucykubm90LnRvRXF1YWwobm9ybUJpbnMpO1xuICB9KTtcblxuICBpdCgnc2tpcHMgbm9ybWFsaXplZCBhY2N1bXVsYXRpb24gZm9yIGZsb2F0IGFuZCB3aGVuIGNvbXB1dGVOb3JtYWxpemVkIGlzIGZhbHNlJywgKCkgPT4ge1xuICAgIGNvbnN0IGZsb2F0T25seSA9IGFjY3VtdWxhdGVHcm91cEhpc3RvZ3JhbXMoW3JlY29yZCh7IGtpbmQ6ICdmbG9hdCcsIGFNaW46IDAsIGFNYXg6IDI1NiB9KV0pO1xuICAgIGV4cGVjdChmbG9hdE9ubHkuZmxvYXQuZy5zdW1zTm9ybSkudG9CZShmbG9hdE9ubHkuZmxvYXQuZy5zdW1zKTtcblxuICAgIGNvbnN0IG5vTm9ybSA9IGFjY3VtdWxhdGVHcm91cEhpc3RvZ3JhbXMoXG4gICAgICBbcmVjb3JkKHsga2luZDogJ3VpbnQnLCBhTWluOiAwLCBhTWF4OiAyNTYgfSldLFxuICAgICAgeyBjb21wdXRlTm9ybWFsaXplZDogZmFsc2UgfSxcbiAgICApO1xuICAgIGV4cGVjdChub05vcm0udWludC5nLnN1bXNOb3JtKS50b0JlKG5vTm9ybS51aW50Lmcuc3Vtcyk7XG4gIH0pO1xuXG4gIGl0KCdyZW1hcHMgc3VtU3EgKHRoZSDCsTEgc3RkIGlucHV0KSBvbnRvIHRoZSBleGFjdCBzYW1lIGJpbnMgYXMgc3Vtcywgbm90IGp1c3QgdGhlIHNhbWUgY291bnQnLCAoKSA9PiB7XG4gICAgY29uc3QgcmVjb3JkcyA9IFtcbiAgICAgIHJlY29yZCh7IGFNaW46IDEwMCwgYU1heDogMzU2LCBzcGlrZUF0OiAwIH0pLFxuICAgICAgcmVjb3JkKHsgYU1pbjogMTIwMCwgYU1heDogMTQ1Niwgc3Bpa2VBdDogMCB9KSxcbiAgICBdO1xuICAgIGNvbnN0IHsgdWludDogeyBnOiBnZCB9IH0gPSBhY2N1bXVsYXRlR3JvdXBIaXN0b2dyYW1zKHJlY29yZHMpO1xuICAgIGNvbnN0IG5vblplcm9CaW5zID0gYXJyID0+IGFyci5yZWR1Y2UoKGFjYywgdiwgaSkgPT4gKHYgPiAwID8gWy4uLmFjYywgaV0gOiBhY2MpLCBbXSk7XG4gICAgY29uc3Qgc3Vtc0JpbnMgID0gbm9uWmVyb0JpbnMoZ2Quc3Vtcyk7XG4gICAgY29uc3Qgc3VtU3FCaW5zID0gbm9uWmVyb0JpbnMoZ2Quc3VtU3EpO1xuICAgIGV4cGVjdChzdW1zQmlucy5sZW5ndGgpLnRvQmUoMik7IC8vIHNhbml0eTogdGhlIHR3byBpbWFnZXMgcmVhbGx5IGRvIGxhbmQgb24gZGlmZmVyZW50IGJpbnNcbiAgICBleHBlY3Qoc3VtU3FCaW5zKS50b0VxdWFsKHN1bXNCaW5zKTtcbiAgfSk7XG5cbiAgaXQoJ2RlZmF1bHRzIG5hbkNvdW50IHRvIDAsIG1hdGNoaW5nIHByaW9yIG5vLU5hTiBiZWhhdmlvcicsICgpID0+IHtcbiAgICBjb25zdCB7IHVpbnQ6IHsgZzogZ2QgfSB9ID0gYWNjdW11bGF0ZUdyb3VwSGlzdG9ncmFtcyhbcmVjb3JkKHsgYU1pbjogMCwgYU1heDogMjU2IH0pXSk7XG4gICAgZXhwZWN0KGdkLm5hblN1bSkudG9CZSgwKTtcbiAgfSk7XG5cbiAgaXQoJ2ZvbGRzIE5hTiBwaXhlbHMgaW50byB0aGUgcGVyLWltYWdlIGRlbm9taW5hdG9yLCBzaHJpbmtpbmcgaXRzIGJpbiBtYXNzIGFjY29yZGluZ2x5JywgKCkgPT4ge1xuICAgIC8vIDEwMCBmaW5pdGUgcGl4ZWxzICsgMTAwIE5hTiBwaXhlbHMgLT4gZWFjaCBiaW4ncyBtYXNzIGlzIGhhbHZlZCwgbmFuRnJhYyBpcyAwLjUuXG4gICAgY29uc3QgcmVjb3JkcyA9IFtyZWNvcmQoeyBhTWluOiAwLCBhTWF4OiAyNTYsIHRvdGFsOiAxMDAsIG5hbkNvdW50OiAxMDAgfSldO1xuICAgIGNvbnN0IHsgdWludDogeyBnOiBnZCB9IH0gPSBhY2N1bXVsYXRlR3JvdXBIaXN0b2dyYW1zKHJlY29yZHMpO1xuICAgIGV4cGVjdChnZC5uYW5TdW0pLnRvQmVDbG9zZVRvKDAuNSk7XG4gICAgZXhwZWN0KGdkLnN1bXMucmVkdWNlKChhLCBiKSA9PiBhICsgYiwgMCkpLnRvQmVDbG9zZVRvKDAuNSk7XG4gIH0pO1xufSk7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7OztBQVNBLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxD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SyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsc0NBQVksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQ25ELENBQUMsQ0FBQyxDQUFDLENBQUMsaUNBQU8sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7QUFDM0UsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7QUFFSixDQUFDLENBQUMsNkJBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7QUFDdEYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsc0NBQVksTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUMxRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRCxDQUFDLENBQUMsQ0FBQyxDQUFDLGlDQUFPLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7QUFDaEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU07QUFDdEYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQ0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0FBQ2pDLENBQUMsQ0FBQyxDQUFDLENBQUM7O0FBRUosQ0FBQyxDQUFDLDZCQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2RSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3BGLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsc0NBQVksTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ3hELENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hELENBQUMsQ0FBQyxDQUFDLENBQUMsaUNBQU8sS0FBSyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztBQUNoQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUc7QUFDM0QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3QyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlDQUFPLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7QUFDN0IsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7QUFFSixDQUFDLENBQUMsNkJBQUcsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZGLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsc0NBQVksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQyxDQUFDLENBQUMsaUNBQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUMxQixDQUFDLENBQUMsQ0FBQyxDQUFDLGlDQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNsRCxDQUFDLENBQUMsQ0FB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QUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNFLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNsRyxDQUFDLENBQUM7O0FBRUYsQ0FBQyxDQUFDLDZCQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM5RSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUTtBQUM5RSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN0QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDeEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9EQUEwQixPQUFPLENBQUM7O0FBRWxFLENBQUMsQ0FBQyxDQUFDLENBQUMsaUNBQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7QUFDN0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQ0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzs7QUFFL0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7QUFDM0UsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNO0FBQzFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RGLENBQUMsQ0FBQyxDQUFDLENBQUMsaUNBQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQ0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7O0FBRTdDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTTtBQUNuRixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQ0FBTyxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0FBQ2hDLENBQUMsQ0FBQyxDQUFDLENBQUM7O0FBRUosQ0FBQyxDQUFDLDZCQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDcEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsb0RBQTBCLE9BQU8sQ0FBQztBQUNsRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlDQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0FBQ3JDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUNBQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNyRCxDQUFDLENBQUMsQ0FBQyxDQUFDOztBQUVKLENBQUMsQ0FBQyw2QkFBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4RCxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDbEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNuRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLG9EQUEwQixPQUFPLENBQUM7QUFDckQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQ0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ2pFLENBQUMsQ0FBQyxDQUFDLENBQUMsaUNBQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN2QyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlDQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDeEMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7QUFFSixDQUFDLENBQUMsNkJBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0RixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0UsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztBQUMvRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5RSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvREFBMEIsT0FBTyxDQUFDOztBQUVsRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSztBQUMzRCxDQUFDLENBQUMsQ0FBQyxDQUFDLGlDQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzNCLENBQUMsQ0FBQyxDQUFDLENBQUMsaUNBQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDOUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO0FBQ3hGLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ2pGLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSTtBQUN0RixDQUFDLENBQUMsQ0FBQyxDQUFDLGlDQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0FBQ2xDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUNBQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7O0FBRWxDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JGLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FB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Q0FBQyxDQUFDLENBQUM7QUFDcEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvREFBMEIsT0FBTyxDQUFDO0FBQ2xFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pGLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztBQUMxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO0FBQzNDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUNBQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7QUFDM0YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQ0FBTyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0FBQ3ZDLENBQUMsQ0FBQyxDQUFDLENBQUM7O0FBRUosQ0FBQyxDQUFDLDZCQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsb0RBQTBCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzRixDQUFDLENBQUMsQ0FBQyxDQUFDLGlDQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzdCLENBQUMsQ0FBQyxDQUFDLENBQUM7O0FBRUosQ0FBQyxDQUFDLDZCQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0RixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0UsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsb0RBQTBCLE9BQU8sQ0FBQztBQUNsRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlDQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlDQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9ELENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDLENBQUM7In0=

//# vitestCache=W3siZmlsZSI6IjEiLCJpZCI6IjEiLCJpbXBvcnRzIjoiMiIsIm1hcHBpbmdzIjpmYWxzZSwiZGVwcyI6IjMiLCJkeW5hbWljRGVwcyI6IjQiLCJzdGF0aWNNb2NrcyI6bnVsbCwiaGFzQ292ZXJhZ2VEYXRhIjpmYWxzZX0sIi9ob21lL2VsbGEvd29yay9waXhlbC1wYXRyb2wvcGFja2FnZXMvcGl4ZWwtcGF0cm9sLWJhc2UvdGVzdHMvdmlld2VyL2hpc3RvZ3JhbS1hZ2dyZWdhdGlvbi50ZXN0LmpzIix7InVybHMiOiI1IiwiaWRzIjoiNiJ9LFsiNyIsIjgiXSxbXSxbIjciLCI4Il0se30sIi9AZnMvaG9tZS9lbGxhLy5ucG0vX25weC82OWMzODFmOGFkOTRiNTc2L25vZGVfbW9kdWxlcy92aXRlc3QvZGlzdC9pbmRleC5qcyIsIi9zcmMvcGl4ZWxfcGF0cm9sX2Jhc2Uvdmlld2VyL3BsdWdpbl9oaXN0b2dyYW0uanMiXQ==