voiptime-components 1.13.38 → 1.13.40

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.
package/dist/index.es.js CHANGED
@@ -1,4 +1,4 @@
1
- import { createElementBlock as o, openBlock as s, createElementVNode as e, createStaticVNode as y1, defineComponent as X1, computed as C, createBlock as Y1, createCommentVNode as K, resolveDynamicComponent as Ml, normalizeStyle as T1, useSlots as Cl, resolveDirective as zl, withDirectives as nl, normalizeClass as q, renderSlot as J1, Teleport as ml, withModifiers as x1, toDisplayString as z, createTextVNode as W1, ref as T, onUnmounted as tl, nextTick as w1, watch as L1, onMounted as D1, createVNode as t1, Fragment as d1, renderList as p1, provide as bl, unref as P, Transition as rl, withCtx as N1, inject as pl, onBeforeUnmount as Gl, createApp as oi, h as wl, mergeModels as Ol, useModel as Li, reactive as Ul, toRef as hl, toRefs as Mi, vShow as Xl, TransitionGroup as Ci, isRef as Vl } from "vue";
1
+ import { createElementBlock as o, openBlock as s, createElementVNode as e, createStaticVNode as y1, defineComponent as X1, computed as C, createBlock as Y1, createCommentVNode as K, resolveDynamicComponent as Ml, normalizeStyle as T1, useSlots as Cl, resolveDirective as zl, withDirectives as nl, normalizeClass as q, renderSlot as J1, Teleport as ml, withModifiers as x1, toDisplayString as z, createTextVNode as W1, ref as T, onUnmounted as tl, nextTick as w1, watch as V1, onMounted as D1, createVNode as t1, Fragment as d1, renderList as p1, provide as bl, unref as P, Transition as rl, withCtx as N1, inject as pl, onBeforeUnmount as Gl, createApp as oi, h as wl, mergeModels as Ol, useModel as Li, reactive as Ul, toRef as hl, toRefs as Mi, vShow as Xl, TransitionGroup as Ci, isRef as Vl } from "vue";
2
2
  const W = (t, l) => {
3
3
  const n = t.__vccOpts || t;
4
4
  for (const [i, d] of l)
@@ -4608,12 +4608,12 @@ const Jm = ["for"], km = {
4608
4608
  isValid: y.value,
4609
4609
  errors: [...u.value]
4610
4610
  })
4611
- }), L1(
4611
+ }), V1(
4612
4612
  () => i.modelValue,
4613
4613
  (S) => {
4614
4614
  Q.value && i.autosize && !b.value && w1(h1), i.validateOnInput && c(S || "");
4615
4615
  }
4616
- ), L1(
4616
+ ), V1(
4617
4617
  () => [i.required, i.minlength, i.maxlength, i.min, i.max, i.pattern],
4618
4618
  () => {
4619
4619
  i.modelValue !== void 0 && i.modelValue !== "" && c(i.modelValue);
@@ -4867,8 +4867,8 @@ const Jm = ["for"], km = {
4867
4867
  }, k = () => {
4868
4868
  w1(() => {
4869
4869
  if (!u.value) return;
4870
- const Z = u.value, a = Z.scrollHeight, L = Z.clientHeight, E = Z.scrollTop, i1 = a <= L, V1 = E + L >= a - 10;
4871
- if ((i1 || V1) && j.value.length > 0 && !i.loading) {
4870
+ const Z = u.value, a = Z.scrollHeight, L = Z.clientHeight, E = Z.scrollTop, i1 = a <= L, L1 = E + L >= a - 10;
4871
+ if ((i1 || L1) && j.value.length > 0 && !i.loading) {
4872
4872
  const S1 = Date.now();
4873
4873
  S1 - _.value > Pl && (_.value = S1, d("scrolled"));
4874
4874
  }
@@ -5070,30 +5070,30 @@ const Jm = ["for"], km = {
5070
5070
  },
5071
5071
  registerOption: O,
5072
5072
  unregisterOption: x
5073
- }), L1(
5073
+ }), V1(
5074
5074
  () => i.modelValue,
5075
5075
  () => {
5076
5076
  i.validateOnInput && e1.validate();
5077
5077
  }
5078
- ), L1(
5078
+ ), V1(
5079
5079
  h1,
5080
5080
  () => {
5081
5081
  a1();
5082
5082
  },
5083
5083
  { deep: !0 }
5084
- ), L1(
5084
+ ), V1(
5085
5085
  () => p.value,
5086
5086
  () => {
5087
5087
  p.value && a1();
5088
5088
  }
5089
- ), L1(D, async (Z) => {
5089
+ ), V1(D, async (Z) => {
5090
5090
  Z && (await w1(), n1());
5091
- }), L1(
5091
+ }), V1(
5092
5092
  () => j.value.length,
5093
5093
  async (Z, a) => {
5094
5094
  D.value && Z > a && (await w1(), k());
5095
5095
  }
5096
- ), L1(
5096
+ ), V1(
5097
5097
  () => i.loading,
5098
5098
  (Z, a) => {
5099
5099
  a && !Z && D.value && k();
@@ -5147,7 +5147,7 @@ const Jm = ["for"], km = {
5147
5147
  (s(!0), o(d1, null, p1(k1.value, (E, i1) => (s(), o("div", {
5148
5148
  key: `tag-${typeof E.value == "object" ? JSON.stringify(E.value) : E.value}-${i1}`,
5149
5149
  ref_for: !0,
5150
- ref: (V1) => V1 && (h.value[i1] = V1),
5150
+ ref: (L1) => L1 && (h.value[i1] = L1),
5151
5151
  class: "vt-select__tag"
5152
5152
  }, [
5153
5153
  e("span", qm, z(E.label), 1),
@@ -5155,7 +5155,7 @@ const Jm = ["for"], km = {
5155
5155
  key: 0,
5156
5156
  class: "vt-select__tag-close",
5157
5157
  name: "close",
5158
- onClick: x1((V1) => $1(E.value), ["stop"])
5158
+ onClick: x1((L1) => $1(E.value), ["stop"])
5159
5159
  }, null, 8, ["onClick"]))
5160
5160
  ]))), 128)),
5161
5161
  S.value ? nl((s(), o("div", lZ, [
@@ -5362,7 +5362,7 @@ const Jm = ["for"], km = {
5362
5362
  }, O = () => {
5363
5363
  i("reloadData", d.value);
5364
5364
  };
5365
- return L1(
5365
+ return V1(
5366
5366
  () => n.totalItems,
5367
5367
  () => {
5368
5368
  d.value > I.value && I.value > 0 && (d.value = I.value, b());
@@ -5666,7 +5666,7 @@ function FZ(t, l, n, i) {
5666
5666
  };
5667
5667
  n("selection-change", b1);
5668
5668
  };
5669
- return L1(
5669
+ return V1(
5670
5670
  () => t.defaultSelection,
5671
5671
  (k) => {
5672
5672
  k != null && k.length && (m.value = [...k]);
@@ -6038,7 +6038,7 @@ const ll = new OZ(), vZ = {
6038
6038
  closeById: (l) => ll.closeById(l)
6039
6039
  };
6040
6040
  }
6041
- }, DZ = { class: "vt-columns-selector-body" }, PZ = { class: "vt-columns-selector" }, fZ = { class: "vt-columns-selector__panel" }, HZ = ["draggable", "onDragstart", "onDragover", "onDrop"], EZ = {
6041
+ }, DZ = { class: "vt-columns-selector-body" }, PZ = { class: "vt-columns-selector" }, fZ = { class: "vt-columns-selector__panel" }, HZ = ["draggable", "onDragover", "onDragstart", "onDrop"], EZ = {
6042
6042
  key: 0,
6043
6043
  class: "vt-columns-selector__panel-item-pinned"
6044
6044
  }, QZ = { class: "vt-columns-selector__available" }, BZ = ["onClick"], _Z = {
@@ -6163,24 +6163,24 @@ const ll = new OZ(), vZ = {
6163
6163
  key: $.prop,
6164
6164
  class: q(R(n1)),
6165
6165
  draggable: b($),
6166
- onDragstart: (e1) => Q(e1, n1),
6167
- onDragover: (e1) => f(e1, n1),
6166
+ onDragend: N,
6168
6167
  onDragleave: O,
6169
- onDrop: (e1) => x(e1, n1),
6170
- onDragend: N
6168
+ onDragover: (e1) => f(e1, n1),
6169
+ onDragstart: (e1) => Q(e1, n1),
6170
+ onDrop: (e1) => x(e1, n1)
6171
6171
  }, [
6172
6172
  t1(u1, {
6173
- name: b($) ? "columnsMove" : "freeze",
6174
- class: q(["vt-columns-selector__panel-item-icon", { "vt-columns-selector__panel-item-icon--draggable": b($) }])
6175
- }, null, 8, ["name", "class"]),
6173
+ class: q([{ "vt-columns-selector__panel-item-icon--draggable": b($) }, "vt-columns-selector__panel-item-icon"]),
6174
+ name: b($) ? "columnsMove" : "freeze"
6175
+ }, null, 8, ["class", "name"]),
6176
6176
  t1(cl, {
6177
- label: $.label,
6178
6177
  checked: !0,
6179
6178
  disabled: y($),
6179
+ label: $.label,
6180
6180
  onChange: (e1) => j($, e1),
6181
6181
  onClick: v[0] || (v[0] = x1(() => {
6182
6182
  }, ["stop"]))
6183
- }, null, 8, ["label", "disabled", "onChange"]),
6183
+ }, null, 8, ["disabled", "label", "onChange"]),
6184
6184
  y($) ? (s(), o("span", EZ, "pinned")) : K("", !0)
6185
6185
  ], 42, HZ))), 128))
6186
6186
  ]),
@@ -6196,13 +6196,13 @@ const ll = new OZ(), vZ = {
6196
6196
  onClick: (o1) => D($.name)
6197
6197
  }, [
6198
6198
  t1(cl, {
6199
- label: $.label,
6200
6199
  checked: ((n1 = h.value[$.name]) == null ? void 0 : n1.checked) || !1,
6201
6200
  indeterminate: ((e1 = h.value[$.name]) == null ? void 0 : e1.indeterminate) || !1,
6201
+ label: $.label,
6202
6202
  onChange: (o1) => _($, o1),
6203
6203
  onClick: v[1] || (v[1] = x1(() => {
6204
6204
  }, ["stop"]))
6205
- }, null, 8, ["label", "checked", "indeterminate", "onChange"]),
6205
+ }, null, 8, ["checked", "indeterminate", "label", "onChange"]),
6206
6206
  $.icon ? (s(), Y1(u1, {
6207
6207
  key: 0,
6208
6208
  name: $.icon,
@@ -6215,11 +6215,11 @@ const ll = new OZ(), vZ = {
6215
6215
  class: "vt-columns-selector__group-column"
6216
6216
  }, [
6217
6217
  t1(cl, {
6218
- label: o1.label,
6219
6218
  checked: g(o1),
6220
6219
  disabled: !k(o1),
6220
+ label: o1.label,
6221
6221
  onChange: (h1) => j(o1, h1)
6222
- }, null, 8, ["label", "checked", "disabled", "onChange"]),
6222
+ }, null, 8, ["checked", "disabled", "label", "onChange"]),
6223
6223
  k(o1) ? K("", !0) : (s(), o("span", AZ, " (закріплена) "))
6224
6224
  ]))), 128))
6225
6225
  ])) : K("", !0)
@@ -6236,6 +6236,7 @@ const ll = new OZ(), vZ = {
6236
6236
  __: [2]
6237
6237
  }),
6238
6238
  t1(il, {
6239
+ icon: "save",
6239
6240
  type: "primary",
6240
6241
  onClick: c1
6241
6242
  }, {
@@ -6387,13 +6388,13 @@ const ll = new OZ(), vZ = {
6387
6388
  const i = t, d = n, m = Li(t, "columns"), I = T({}), r = T(), p = Ul([]), h = T(i.defaultSort || null), u = C(() => RZ(i.data || [], h.value, p)), y = C(() => m.value !== void 0), b = C(() => i.data && i.data.length > 0), X = T(!1), c = T(0);
6388
6389
  let Q;
6389
6390
  const f = (H, A) => i.rowKey && H[i.rowKey] != null ? String(H[i.rowKey]) : String(A);
6390
- L1(
6391
+ V1(
6391
6392
  () => m.value,
6392
6393
  (H) => {
6393
6394
  H && y.value && (p.length = 0, p.push(...H));
6394
6395
  },
6395
6396
  { deep: !0 }
6396
- ), L1(
6397
+ ), V1(
6397
6398
  () => i.columns,
6398
6399
  (H) => {
6399
6400
  H && !y.value && (p.length = 0, p.push(...H));
@@ -6649,7 +6650,7 @@ const ll = new OZ(), vZ = {
6649
6650
  ])),
6650
6651
  e("tbody", null, [
6651
6652
  b.value ? (s(!0), o(d1, { key: 1 }, p1(u.value, (a, L) => {
6652
- var E, i1, V1, S1, G1;
6653
+ var E, i1, L1, S1, G1;
6653
6654
  return s(), o(d1, {
6654
6655
  key: f(a, L)
6655
6656
  }, [
@@ -6663,7 +6664,7 @@ const ll = new OZ(), vZ = {
6663
6664
  "vt-table__row",
6664
6665
  {
6665
6666
  "vt-table__row--selected": (i1 = P(k)) == null ? void 0 : i1.isRowSelected(a),
6666
- "vt-table__row--current": ((V1 = P(k)) == null ? void 0 : V1.currentRow.value) === a,
6667
+ "vt-table__row--current": ((L1 = P(k)) == null ? void 0 : L1.currentRow.value) === a,
6667
6668
  "vt-table__row--clickable": i.selectOnClickRow || i.highlightCurrentRow,
6668
6669
  "vt-table__row--draggable": i.rowDraggable
6669
6670
  },
@@ -6843,7 +6844,7 @@ const ll = new OZ(), vZ = {
6843
6844
  const I = d(), r = i.findIndex((p) => p.prop === l.prop && p.label === l.label);
6844
6845
  r !== -1 ? i[r] = { ...i[r], ...I } : (i.push(I), m = i.length - 1);
6845
6846
  });
6846
- }), L1(
6847
+ }), V1(
6847
6848
  () => [
6848
6849
  l.width,
6849
6850
  l.minWidth,
@@ -6877,7 +6878,7 @@ const ll = new OZ(), vZ = {
6877
6878
  }
6878
6879
  }), (I, r) => null;
6879
6880
  }
6880
- }), sh = {
6881
+ }), eh = {
6881
6882
  yyyy: {
6882
6883
  pattern: /yyyy/g,
6883
6884
  replacement: (t) => String(t.getFullYear())
@@ -6935,7 +6936,7 @@ const ll = new OZ(), vZ = {
6935
6936
  "Жовтень",
6936
6937
  "Листопад",
6937
6938
  "Грудень"
6938
- ], ui = ["Січ", "Лют", "Бер", "Кві", "Тра", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Гру"], oh = ["Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота"], Jl = ["Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"], VI = {
6939
+ ], ui = ["Січ", "Лют", "Бер", "Кві", "Тра", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Гру"], sh = ["Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота"], Jl = ["Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"], VI = {
6939
6940
  date: "yyyy-MM-dd",
6940
6941
  datetime: "yyyy-MM-dd HH:mm:ss",
6941
6942
  daterange: "yyyy-MM-dd",
@@ -7406,10 +7407,10 @@ const ll = new OZ(), vZ = {
7406
7407
  const a = Array.from(M.querySelectorAll(".vt-timepicker__option"));
7407
7408
  if (!a.length) return;
7408
7409
  const L = M.getBoundingClientRect(), E = L.top + L.height / 2;
7409
- let i1 = null, V1 = 1 / 0;
7410
+ let i1 = null, L1 = 1 / 0;
7410
7411
  for (const S1 of a) {
7411
7412
  const G1 = S1.getBoundingClientRect(), I1 = G1.top + G1.height / 2, z1 = Math.abs(I1 - E);
7412
- z1 < V1 && (V1 = z1, i1 = S1);
7413
+ z1 < L1 && (L1 = z1, i1 = S1);
7413
7414
  }
7414
7415
  if (i1) {
7415
7416
  const S1 = i1.getBoundingClientRect(), G1 = M.scrollTop + (S1.top - L.top) - M.clientHeight / 2 + S1.height / 2;
@@ -7428,9 +7429,9 @@ const ll = new OZ(), vZ = {
7428
7429
  const M = (a = r.value) == null ? void 0 : a.querySelectorAll(".vt-timepicker__options");
7429
7430
  if (!M) return;
7430
7431
  const Z = (L, E, i1) => {
7431
- const V1 = i1.findIndex((S1) => S1.value === E);
7432
- if (V1 >= 0) {
7433
- const I1 = V1 * 32, z1 = L.clientHeight, R1 = I1 + 80 - z1 / 2 + 32 / 2;
7432
+ const L1 = i1.findIndex((S1) => S1.value === E);
7433
+ if (L1 >= 0) {
7434
+ const I1 = L1 * 32, z1 = L.clientHeight, R1 = I1 + 80 - z1 / 2 + 32 / 2;
7434
7435
  L.scrollTo({
7435
7436
  top: Math.max(0, R1),
7436
7437
  behavior: "smooth"
@@ -7456,8 +7457,8 @@ const ll = new OZ(), vZ = {
7456
7457
  Z === "hour" ? a ? g.value = i1 : R.value = i1 : Z === "minute" ? a ? k.value = i1 : U.value = i1 : Z === "second" && (a ? D.value = i1 : j.value = i1);
7457
7458
  }
7458
7459
  E && w1(() => {
7459
- var V1;
7460
- const i1 = (V1 = E.target) == null ? void 0 : V1.closest(".vt-timepicker__options");
7460
+ var L1;
7461
+ const i1 = (L1 = E.target) == null ? void 0 : L1.closest(".vt-timepicker__options");
7461
7462
  if (i1) {
7462
7463
  const S1 = E.target, G1 = i1.getBoundingClientRect(), I1 = S1.getBoundingClientRect(), z1 = i1.scrollTop + (I1.top - G1.top) - i1.clientHeight / 2 + I1.height / 2;
7463
7464
  i1.scrollTo({
@@ -7533,7 +7534,7 @@ const ll = new OZ(), vZ = {
7533
7534
  F1();
7534
7535
  },
7535
7536
  validate: X
7536
- }), L1(
7537
+ }), V1(
7537
7538
  () => i.modelValue,
7538
7539
  (M) => {
7539
7540
  if (M)
@@ -8214,7 +8215,7 @@ const ll = new OZ(), vZ = {
8214
8215
  }
8215
8216
  }
8216
8217
  return V;
8217
- }, V1 = (Y) => Y ? i.use12Hours ? Y.toLocaleTimeString("en-US", {
8218
+ }, L1 = (Y) => Y ? i.use12Hours ? Y.toLocaleTimeString("en-US", {
8218
8219
  hour12: !0,
8219
8220
  hour: "2-digit",
8220
8221
  minute: "2-digit",
@@ -8342,20 +8343,20 @@ const ll = new OZ(), vZ = {
8342
8343
  1
8343
8344
  ));
8344
8345
  };
8345
- return L1(
8346
+ return V1(
8346
8347
  () => i.modelValue,
8347
8348
  (Y) => {
8348
8349
  if (Y) {
8349
8350
  if (G.value && Array.isArray(Y) && Y.length === 2)
8350
8351
  try {
8351
- c.startDate.value = Y[0] instanceof Date ? new Date(Y[0]) : new Date(Y[0]), c.endDate.value = Y[1] instanceof Date ? new Date(Y[1]) : new Date(Y[1]), K1.value && (c.startTime.value = V1(c.startDate.value), c.endTime.value = V1(c.endDate.value));
8352
+ c.startDate.value = Y[0] instanceof Date ? new Date(Y[0]) : new Date(Y[0]), c.endDate.value = Y[1] instanceof Date ? new Date(Y[1]) : new Date(Y[1]), K1.value && (c.startTime.value = L1(c.startDate.value), c.endTime.value = L1(c.endDate.value));
8352
8353
  } catch {
8353
8354
  console.warn("Invalid date format in modelValue:", Y), c.startDate.value = null, c.endDate.value = null;
8354
8355
  }
8355
8356
  else if (!G.value && Y !== null)
8356
8357
  try {
8357
8358
  let w = null;
8358
- Y instanceof Date ? w = Y : (typeof Y == "string" || typeof Y == "number") && (w = new Date(Y)), w && !isNaN(w.getTime()) ? (c.startDate.value = w, K1.value && (c.startTime.value = V1(w))) : c.startDate.value = null;
8359
+ Y instanceof Date ? w = Y : (typeof Y == "string" || typeof Y == "number") && (w = new Date(Y)), w && !isNaN(w.getTime()) ? (c.startDate.value = w, K1.value && (c.startTime.value = L1(w))) : c.startDate.value = null;
8359
8360
  } catch {
8360
8361
  console.warn("Invalid date format in modelValue:", Y), c.startDate.value = null;
8361
8362
  }
@@ -8363,13 +8364,13 @@ const ll = new OZ(), vZ = {
8363
8364
  c.startDate.value = null, c.endDate.value = null, c.isSelectingEnd.value = !1, c.hoverDate.value = null, c.startTime.value = b(), c.endTime.value = X();
8364
8365
  },
8365
8366
  { immediate: !0 }
8366
- ), L1(
8367
+ ), V1(
8367
8368
  () => i.type,
8368
8369
  (Y) => {
8369
8370
  c.viewMode.value = _1(Y), c.startTime.value = b(), c.endTime.value = X();
8370
8371
  },
8371
8372
  { immediate: !0 }
8372
- ), L1(
8373
+ ), V1(
8373
8374
  () => c.currentDate.value,
8374
8375
  (Y) => {
8375
8376
  A.value && (c.rightCurrentDate.value = new Date(Y.getFullYear(), Y.getMonth() + 1, 1));
@@ -8869,14 +8870,14 @@ const ll = new OZ(), vZ = {
8869
8870
  emits: ["update:modelValue", "tab-change", "tab-remove", "tab-add"],
8870
8871
  setup(t, { emit: l }) {
8871
8872
  const n = t, i = l, d = Cl(), m = T(n.modelValue), I = T([]), r = T(null), p = T(null), h = T(!1), u = T(!1), y = T(/* @__PURE__ */ new Set());
8872
- L1(m, (N) => {
8873
+ V1(m, (N) => {
8873
8874
  N && y.value.add(N);
8874
- }), L1(
8875
+ }), V1(
8875
8876
  () => n.modelValue,
8876
8877
  (N) => {
8877
8878
  m.value = N;
8878
8879
  }
8879
- ), L1(m, (N) => {
8880
+ ), V1(m, (N) => {
8880
8881
  N !== n.modelValue && (i("update:modelValue", N), i("tab-change", N));
8881
8882
  });
8882
8883
  const b = (N) => {
@@ -8984,25 +8985,24 @@ const ll = new OZ(), vZ = {
8984
8985
  ])
8985
8986
  ]));
8986
8987
  }
8987
- }), Bu = {
8988
- key: 0,
8989
- class: "vt-tabs__pane"
8990
- }, _u = /* @__PURE__ */ X1({
8988
+ }), Bu = /* @__PURE__ */ X1({
8991
8989
  __name: "VTabItem",
8992
8990
  props: {
8993
8991
  name: { type: String, required: !0 },
8994
8992
  label: String,
8995
8993
  disabled: Boolean,
8996
8994
  closable: Boolean,
8997
- icon: String
8995
+ icon: String,
8996
+ forceRender: {
8997
+ type: Boolean,
8998
+ default: !1
8999
+ }
8998
9000
  },
8999
9001
  setup(t) {
9000
9002
  const l = t, n = pl("VTabsContext");
9001
9003
  if (!n)
9002
9004
  throw new Error("VTabItem must be used inside VTabs");
9003
- const i = C(() => n.currentValue.value === l.name), d = C(
9004
- () => n.visitedTabs.value.has(l.name)
9005
- );
9005
+ const i = T(0), d = C(() => n.currentValue.value === l.name), m = C(() => l.forceRender ? d.value : n.visitedTabs.value.has(l.name));
9006
9006
  return D1(() => {
9007
9007
  n.addTab({
9008
9008
  name: l.name,
@@ -9013,14 +9013,19 @@ const ll = new OZ(), vZ = {
9013
9013
  });
9014
9014
  }), Gl(() => {
9015
9015
  n.removeTab(l.name);
9016
- }), (m, I) => d.value ? nl((s(), o("div", Bu, [
9017
- J1(m.$slots, "default")
9018
- ], 512)), [
9019
- [Xl, i.value]
9016
+ }), V1(d, (I) => {
9017
+ I && l.forceRender && i.value++;
9018
+ }), (I, r) => m.value ? nl((s(), o("div", {
9019
+ key: i.value,
9020
+ class: "vt-tabs__pane"
9021
+ }, [
9022
+ J1(I.$slots, "default")
9023
+ ])), [
9024
+ [Xl, d.value]
9020
9025
  ]) : K("", !0);
9021
9026
  }
9022
- }), hi = "KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiOy8qISB4bHN4LmpzIChDKSAyMDEzLXByZXNlbnQgU2hlZXRKUyAtLSBodHRwOi8vc2hlZXRqcy5jb20gKi92YXIgdzA9MTI1MixoaT1bODc0LDkzMiw5MzYsOTQ5LDk1MCwxMjUwLDEyNTEsMTI1MiwxMjUzLDEyNTQsMTI1NSwxMjU2LDEyNTcsMTI1OCwxZTRdLFN0PXswOjEyNTIsMTo2NTAwMSwyOjY1MDAxLDc3OjFlNCwxMjg6OTMyLDEyOTo5NDksMTMwOjEzNjEsMTM0OjkzNiwxMzY6OTUwLDE2MToxMjUzLDE2MjoxMjU0LDE2MzoxMjU4LDE3NzoxMjU1LDE3ODoxMjU2LDE4NjoxMjU3LDIwNDoxMjUxLDIyMjo4NzQsMjM4OjEyNTAsMjU1OjEyNTIsNjk6Njk2OX0sQ3Q9ZnVuY3Rpb24oZSl7aGkuaW5kZXhPZihlKSE9LTEmJih3MD1TdFswXT1lKX07ZnVuY3Rpb24gdWkoKXtDdCgxMjUyKX12YXIgX3I9ZnVuY3Rpb24oZSl7Q3QoZSl9O2Z1bmN0aW9uIEEwKCl7X3IoMTIwMCksdWkoKX1mdW5jdGlvbiBGMChlKXtmb3IodmFyIGE9W10scj0wLG49ZS5sZW5ndGg7cjxuOysrcilhW3JdPWUuY2hhckNvZGVBdChyKTtyZXR1cm4gYX1mdW5jdGlvbiB4aShlKXtmb3IodmFyIGE9W10scj0wO3I8ZS5sZW5ndGg+PjE7KytyKWFbcl09U3RyaW5nLmZyb21DaGFyQ29kZShlLmNoYXJDb2RlQXQoMipyKSsoZS5jaGFyQ29kZUF0KDIqcisxKTw8OCkpO3JldHVybiBhLmpvaW4oIiIpfWZ1bmN0aW9uIFMwKGUpe2Zvcih2YXIgYT1bXSxyPTA7cjxlLmxlbmd0aD4+MTsrK3IpYVtyXT1TdHJpbmcuZnJvbUNoYXJDb2RlKGUuY2hhckNvZGVBdCgyKnIrMSkrKGUuY2hhckNvZGVBdCgyKnIpPDw4KSk7cmV0dXJuIGEuam9pbigiIil9dmFyIGthPWZ1bmN0aW9uKGUpe3ZhciBhPWUuY2hhckNvZGVBdCgwKSxyPWUuY2hhckNvZGVBdCgxKTtyZXR1cm4gYT09MjU1JiZyPT0yNTQ/eGkoZS5zbGljZSgyKSk6YT09MjU0JiZyPT0yNTU/UzAoZS5zbGljZSgyKSk6YT09NjUyNzk/ZS5zbGljZSgxKTplfSxydD1mdW5jdGlvbihhKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShhKX0sQzA9ZnVuY3Rpb24oYSl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoYSl9LHdhLEhyPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSI7ZnVuY3Rpb24geTAoZSl7Zm9yKHZhciBhPSIiLHI9MCxuPTAsdD0wLHM9MCxpPTAsYz0wLGY9MCxvPTA7bzxlLmxlbmd0aDspcj1lLmNoYXJDb2RlQXQobysrKSxzPXI+PjIsbj1lLmNoYXJDb2RlQXQobysrKSxpPShyJjMpPDw0fG4+PjQsdD1lLmNoYXJDb2RlQXQobysrKSxjPShuJjE1KTw8Mnx0Pj42LGY9dCY2Myxpc05hTihuKT9jPWY9NjQ6aXNOYU4odCkmJihmPTY0KSxhKz1Ici5jaGFyQXQocykrSHIuY2hhckF0KGkpK0hyLmNoYXJBdChjKStIci5jaGFyQXQoZik7cmV0dXJuIGF9ZnVuY3Rpb24gZnIoZSl7dmFyIGE9IiIscj0wLG49MCx0PTAscz0wLGk9MCxjPTAsZj0wO2U9ZS5yZXBsYWNlKC9bXlx3XCtcL1w9XS9nLCIiKTtmb3IodmFyIG89MDtvPGUubGVuZ3RoOylzPUhyLmluZGV4T2YoZS5jaGFyQXQobysrKSksaT1Ici5pbmRleE9mKGUuY2hhckF0KG8rKykpLHI9czw8MnxpPj40LGErPVN0cmluZy5mcm9tQ2hhckNvZGUociksYz1Ici5pbmRleE9mKGUuY2hhckF0KG8rKykpLG49KGkmMTUpPDw0fGM+PjIsYyE9PTY0JiYoYSs9U3RyaW5nLmZyb21DaGFyQ29kZShuKSksZj1Ici5pbmRleE9mKGUuY2hhckF0KG8rKykpLHQ9KGMmMyk8PDZ8ZixmIT09NjQmJihhKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHQpKTtyZXR1cm4gYX12YXIgZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIEJ1ZmZlcjwidSImJnR5cGVvZiBwcm9jZXNzPCJ1IiYmdHlwZW9mIHByb2Nlc3MudmVyc2lvbnM8InUiJiYhIXByb2Nlc3MudmVyc2lvbnMubm9kZX0oKSxKcj1mdW5jdGlvbigpe2lmKHR5cGVvZiBCdWZmZXI8InUiKXt2YXIgZT0hQnVmZmVyLmZyb207aWYoIWUpdHJ5e0J1ZmZlci5mcm9tKCJmb28iLCJ1dGY4Iil9Y2F0Y2h7ZT0hMH1yZXR1cm4gZT9mdW5jdGlvbihhLHIpe3JldHVybiByP25ldyBCdWZmZXIoYSxyKTpuZXcgQnVmZmVyKGEpfTpCdWZmZXIuZnJvbS5iaW5kKEJ1ZmZlcil9cmV0dXJuIGZ1bmN0aW9uKCl7fX0oKTtmdW5jdGlvbiBWcihlKXtyZXR1cm4gZ2U/QnVmZmVyLmFsbG9jP0J1ZmZlci5hbGxvYyhlKTpuZXcgQnVmZmVyKGUpOnR5cGVvZiBVaW50OEFycmF5PCJ1Ij9uZXcgVWludDhBcnJheShlKTpuZXcgQXJyYXkoZSl9ZnVuY3Rpb24gRDAoZSl7cmV0dXJuIGdlP0J1ZmZlci5hbGxvY1Vuc2FmZT9CdWZmZXIuYWxsb2NVbnNhZmUoZSk6bmV3IEJ1ZmZlcihlKTp0eXBlb2YgVWludDhBcnJheTwidSI/bmV3IFVpbnQ4QXJyYXkoZSk6bmV3IEFycmF5KGUpfXZhciBFcj1mdW5jdGlvbihhKXtyZXR1cm4gZ2U/SnIoYSwiYmluYXJ5Iik6YS5zcGxpdCgiIikubWFwKGZ1bmN0aW9uKHIpe3JldHVybiByLmNoYXJDb2RlQXQoMCkmMjU1fSl9O2Z1bmN0aW9uIFpyKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGUubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKG4pfSkuam9pbigiIik7Zm9yKHZhciBhPVtdLHI9MDtyPGUubGVuZ3RoOysrcilhW3JdPVN0cmluZy5mcm9tQ2hhckNvZGUoZVtyXSk7cmV0dXJuIGEuam9pbigiIil9ZnVuY3Rpb24geXQoZSl7aWYodHlwZW9mIEFycmF5QnVmZmVyPiJ1Iil0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIik7aWYoZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXJldHVybiB5dChuZXcgVWludDhBcnJheShlKSk7Zm9yKHZhciBhPW5ldyBBcnJheShlLmxlbmd0aCkscj0wO3I8ZS5sZW5ndGg7KytyKWFbcl09ZVtyXTtyZXR1cm4gYX12YXIgV3I9Z2U/ZnVuY3Rpb24oZSl7cmV0dXJuIEJ1ZmZlci5jb25jYXQoZS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcihhKT9hOkpyKGEpfSkpfTpmdW5jdGlvbihlKXtpZih0eXBlb2YgVWludDhBcnJheTwidSIpe3ZhciBhPTAscj0wO2ZvcihhPTA7YTxlLmxlbmd0aDsrK2Epcis9ZVthXS5sZW5ndGg7dmFyIG49bmV3IFVpbnQ4QXJyYXkociksdD0wO2ZvcihhPTAscj0wO2E8ZS5sZW5ndGg7cis9dCwrK2EpaWYodD1lW2FdLmxlbmd0aCxlW2FdaW5zdGFuY2VvZiBVaW50OEFycmF5KW4uc2V0KGVbYV0scik7ZWxzZXtpZih0eXBlb2YgZVthXT09InN0cmluZyIpdGhyb3cid3RmIjtuLnNldChuZXcgVWludDhBcnJheShlW2FdKSxyKX1yZXR1cm4gbn1yZXR1cm5bXS5jb25jYXQuYXBwbHkoW10sZS5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuIEFycmF5LmlzQXJyYXkocyk/czpbXS5zbGljZS5jYWxsKHMpfSkpfTtmdW5jdGlvbiBkaShlKXtmb3IodmFyIGE9W10scj0wLG49ZS5sZW5ndGgrMjUwLHQ9VnIoZS5sZW5ndGgrMjU1KSxzPTA7czxlLmxlbmd0aDsrK3Mpe3ZhciBpPWUuY2hhckNvZGVBdChzKTtpZihpPDEyOCl0W3IrK109aTtlbHNlIGlmKGk8MjA0OCl0W3IrK109MTkyfGk+PjYmMzEsdFtyKytdPTEyOHxpJjYzO2Vsc2UgaWYoaT49NTUyOTYmJmk8NTczNDQpe2k9KGkmMTAyMykrNjQ7dmFyIGM9ZS5jaGFyQ29kZUF0KCsrcykmMTAyMzt0W3IrK109MjQwfGk+PjgmNyx0W3IrK109MTI4fGk+PjImNjMsdFtyKytdPTEyOHxjPj42JjE1fChpJjMpPDw0LHRbcisrXT0xMjh8YyY2M31lbHNlIHRbcisrXT0yMjR8aT4+MTImMTUsdFtyKytdPTEyOHxpPj42JjYzLHRbcisrXT0xMjh8aSY2MztyPm4mJihhLnB1c2godC5zbGljZSgwLHIpKSxyPTAsdD1Wcig2NTUzNSksbj02NTUzMCl9cmV0dXJuIGEucHVzaCh0LnNsaWNlKDAscikpLFdyKGEpfXZhciBycj0vXHUwMDAwL2csQWE9L1tcdTAwMDEtXHUwMDA2XS9nO2Z1bmN0aW9uIGhhKGUpe2Zvcih2YXIgYT0iIixyPWUubGVuZ3RoLTE7cj49MDspYSs9ZS5jaGFyQXQoci0tKTtyZXR1cm4gYX1mdW5jdGlvbiBUcihlLGEpe3ZhciByPSIiK2U7cmV0dXJuIHIubGVuZ3RoPj1hP3I6RGUoIjAiLGEtci5sZW5ndGgpK3J9ZnVuY3Rpb24gRHQoZSxhKXt2YXIgcj0iIitlO3JldHVybiByLmxlbmd0aD49YT9yOkRlKCIgIixhLXIubGVuZ3RoKStyfWZ1bmN0aW9uIGF0KGUsYSl7dmFyIHI9IiIrZTtyZXR1cm4gci5sZW5ndGg+PWE/cjpyK0RlKCIgIixhLXIubGVuZ3RoKX1mdW5jdGlvbiB2aShlLGEpe3ZhciByPSIiK01hdGgucm91bmQoZSk7cmV0dXJuIHIubGVuZ3RoPj1hP3I6RGUoIjAiLGEtci5sZW5ndGgpK3J9ZnVuY3Rpb24gcGkoZSxhKXt2YXIgcj0iIitlO3JldHVybiByLmxlbmd0aD49YT9yOkRlKCIwIixhLXIubGVuZ3RoKStyfXZhciBPMD1NYXRoLnBvdygyLDMyKTtmdW5jdGlvbiB1YShlLGEpe2lmKGU+TzB8fGU8LU8wKXJldHVybiB2aShlLGEpO3ZhciByPU1hdGgucm91bmQoZSk7cmV0dXJuIHBpKHIsYSl9ZnVuY3Rpb24gdHQoZSxhKXtyZXR1cm4gYT1hfHwwLGUubGVuZ3RoPj03K2EmJihlLmNoYXJDb2RlQXQoYSl8MzIpPT09MTAzJiYoZS5jaGFyQ29kZUF0KGErMSl8MzIpPT09MTAxJiYoZS5jaGFyQ29kZUF0KGErMil8MzIpPT09MTEwJiYoZS5jaGFyQ29kZUF0KGErMyl8MzIpPT09MTAxJiYoZS5jaGFyQ29kZUF0KGErNCl8MzIpPT09MTE0JiYoZS5jaGFyQ29kZUF0KGErNSl8MzIpPT09OTcmJihlLmNoYXJDb2RlQXQoYSs2KXwzMik9PT0xMDh9dmFyIFIwPVtbIlN1biIsIlN1bmRheSJdLFsiTW9uIiwiTW9uZGF5Il0sWyJUdWUiLCJUdWVzZGF5Il0sWyJXZWQiLCJXZWRuZXNkYXkiXSxbIlRodSIsIlRodXJzZGF5Il0sWyJGcmkiLCJGcmlkYXkiXSxbIlNhdCIsIlNhdHVyZGF5Il1dLE90PVtbIkoiLCJKYW4iLCJKYW51YXJ5Il0sWyJGIiwiRmViIiwiRmVicnVhcnkiXSxbIk0iLCJNYXIiLCJNYXJjaCJdLFsiQSIsIkFwciIsIkFwcmlsIl0sWyJNIiwiTWF5IiwiTWF5Il0sWyJKIiwiSnVuIiwiSnVuZSJdLFsiSiIsIkp1bCIsIkp1bHkiXSxbIkEiLCJBdWciLCJBdWd1c3QiXSxbIlMiLCJTZXAiLCJTZXB0ZW1iZXIiXSxbIk8iLCJPY3QiLCJPY3RvYmVyIl0sWyJOIiwiTm92IiwiTm92ZW1iZXIiXSxbIkQiLCJEZWMiLCJEZWNlbWJlciJdXTtmdW5jdGlvbiBnaShlKXtyZXR1cm4gZXx8KGU9e30pLGVbMF09IkdlbmVyYWwiLGVbMV09IjAiLGVbMl09IjAuMDAiLGVbM109IiMsIyMwIixlWzRdPSIjLCMjMC4wMCIsZVs5XT0iMCUiLGVbMTBdPSIwLjAwJSIsZVsxMV09IjAuMDBFKzAwIixlWzEyXT0iIyA/Lz8iLGVbMTNdPSIjID8/Lz8/IixlWzE0XT0ibS9kL3l5IixlWzE1XT0iZC1tbW0teXkiLGVbMTZdPSJkLW1tbSIsZVsxN109Im1tbS15eSIsZVsxOF09Img6bW0gQU0vUE0iLGVbMTldPSJoOm1tOnNzIEFNL1BNIixlWzIwXT0iaDptbSIsZVsyMV09Img6bW06c3MiLGVbMjJdPSJtL2QveXkgaDptbSIsZVszN109IiMsIyMwIDsoIywjIzApIixlWzM4XT0iIywjIzAgO1tSZWRdKCMsIyMwKSIsZVszOV09IiMsIyMwLjAwOygjLCMjMC4wMCkiLGVbNDBdPSIjLCMjMC4wMDtbUmVkXSgjLCMjMC4wMCkiLGVbNDVdPSJtbTpzcyIsZVs0Nl09IltoXTptbTpzcyIsZVs0N109Im1tc3MuMCIsZVs0OF09IiMjMC4wRSswIixlWzQ5XT0iQCIsZVs1Nl09JyLkuIrljYgv5LiL5Y2IICJoaCLmmYIibW0i5YiGInNzIuenkiAiJyxlfXZhciBkZT17MDoiR2VuZXJhbCIsMToiMCIsMjoiMC4wMCIsMzoiIywjIzAiLDQ6IiMsIyMwLjAwIiw5OiIwJSIsMTA6IjAuMDAlIiwxMToiMC4wMEUrMDAiLDEyOiIjID8vPyIsMTM6IiMgPz8vPz8iLDE0OiJtL2QveXkiLDE1OiJkLW1tbS15eSIsMTY6ImQtbW1tIiwxNzoibW1tLXl5IiwxODoiaDptbSBBTS9QTSIsMTk6Img6bW06c3MgQU0vUE0iLDIwOiJoOm1tIiwyMToiaDptbTpzcyIsMjI6Im0vZC95eSBoOm1tIiwzNzoiIywjIzAgOygjLCMjMCkiLDM4OiIjLCMjMCA7W1JlZF0oIywjIzApIiwzOToiIywjIzAuMDA7KCMsIyMwLjAwKSIsNDA6IiMsIyMwLjAwO1tSZWRdKCMsIyMwLjAwKSIsNDU6Im1tOnNzIiw0NjoiW2hdOm1tOnNzIiw0NzoibW1zcy4wIiw0ODoiIyMwLjBFKzAiLDQ5OiJAIiw1NjonIuS4iuWNiC/kuIvljYggImhoIuaZgiJtbSLliIYic3Mi56eSICInfSxJMD17NTozNyw2OjM4LDc6MzksODo0MCwyMzowLDI0OjAsMjU6MCwyNjowLDI3OjE0LDI4OjE0LDI5OjE0LDMwOjE0LDMxOjE0LDUwOjE0LDUxOjE0LDUyOjE0LDUzOjE0LDU0OjE0LDU1OjE0LDU2OjE0LDU3OjE0LDU4OjE0LDU5OjEsNjA6Miw2MTozLDYyOjQsNjc6OSw2ODoxMCw2OToxMiw3MDoxMyw3MToxNCw3MjoxNCw3MzoxNSw3NDoxNiw3NToxNyw3NjoyMCw3NzoyMSw3ODoyMiw3OTo0NSw4MDo0Niw4MTo0Nyw4MjowfSxtaT17NTonIiQiIywjIzBfKTtcXCgiJCIjLCMjMFxcKScsNjM6JyIkIiMsIyMwXyk7XFwoIiQiIywjIzBcXCknLDY6JyIkIiMsIyMwXyk7W1JlZF1cXCgiJCIjLCMjMFxcKScsNjQ6JyIkIiMsIyMwXyk7W1JlZF1cXCgiJCIjLCMjMFxcKScsNzonIiQiIywjIzAuMDBfKTtcXCgiJCIjLCMjMC4wMFxcKScsNjU6JyIkIiMsIyMwLjAwXyk7XFwoIiQiIywjIzAuMDBcXCknLDg6JyIkIiMsIyMwLjAwXyk7W1JlZF1cXCgiJCIjLCMjMC4wMFxcKScsNjY6JyIkIiMsIyMwLjAwXyk7W1JlZF1cXCgiJCIjLCMjMC4wMFxcKScsNDE6J18oKiAjLCMjMF8pO18oKiBcXCgjLCMjMFxcKTtfKCogIi0iXyk7XyhAXyknLDQyOidfKCIkIiogIywjIzBfKTtfKCIkIiogXFwoIywjIzBcXCk7XygiJCIqICItIl8pO18oQF8pJyw0MzonXygqICMsIyMwLjAwXyk7XygqIFxcKCMsIyMwLjAwXFwpO18oKiAiLSI/P18pO18oQF8pJyw0NDonXygiJCIqICMsIyMwLjAwXyk7XygiJCIqIFxcKCMsIyMwLjAwXFwpO18oIiQiKiAiLSI/P18pO18oQF8pJ307ZnVuY3Rpb24gbnQoZSxhLHIpe2Zvcih2YXIgbj1lPDA/LTE6MSx0PWUqbixzPTAsaT0xLGM9MCxmPTEsbz0wLGw9MCxoPU1hdGguZmxvb3IodCk7bzxhJiYoaD1NYXRoLmZsb29yKHQpLGM9aCppK3MsbD1oKm8rZiwhKHQtaDw1ZS04KSk7KXQ9MS8odC1oKSxzPWksaT1jLGY9byxvPWw7aWYobD5hJiYobz5hPyhsPWYsYz1zKToobD1vLGM9aSkpLCFyKXJldHVyblswLG4qYyxsXTt2YXIgeD1NYXRoLmZsb29yKG4qYy9sKTtyZXR1cm5beCxuKmMteCpsLGxdfWZ1bmN0aW9uIHFyKGUsYSxyKXtpZihlPjI5NTg0NjV8fGU8MClyZXR1cm4gbnVsbDt2YXIgbj1lfDAsdD1NYXRoLmZsb29yKDg2NDAwKihlLW4pKSxzPTAsaT1bXSxjPXtEOm4sVDp0LHU6ODY0MDAqKGUtbiktdCx5OjAsbTowLGQ6MCxIOjAsTTowLFM6MCxxOjB9O2lmKE1hdGguYWJzKGMudSk8MWUtNiYmKGMudT0wKSxhJiZhLmRhdGUxOTA0JiYobis9MTQ2MiksYy51Pi45OTk5JiYoYy51PTAsKyt0PT04NjQwMCYmKGMuVD10PTAsKytuLCsrYy5EKSksbj09PTYwKWk9cj9bMTMxNywxMCwyOV06WzE5MDAsMiwyOV0scz0zO2Vsc2UgaWYobj09PTApaT1yP1sxMzE3LDgsMjldOlsxOTAwLDEsMF0scz02O2Vsc2V7bj42MCYmLS1uO3ZhciBmPW5ldyBEYXRlKDE5MDAsMCwxKTtmLnNldERhdGUoZi5nZXREYXRlKCkrbi0xKSxpPVtmLmdldEZ1bGxZZWFyKCksZi5nZXRNb250aCgpKzEsZi5nZXREYXRlKCldLHM9Zi5nZXREYXkoKSxuPDYwJiYocz0ocys2KSU3KSxyJiYocz1BaShmLGkpKX1yZXR1cm4gYy55PWlbMF0sYy5tPWlbMV0sYy5kPWlbMl0sYy5TPXQlNjAsdD1NYXRoLmZsb29yKHQvNjApLGMuTT10JTYwLHQ9TWF0aC5mbG9vcih0LzYwKSxjLkg9dCxjLnE9cyxjfXZhciBOMD1uZXcgRGF0ZSgxODk5LDExLDMxLDAsMCwwKSxfaT1OMC5nZXRUaW1lKCksRWk9bmV3IERhdGUoMTkwMCwyLDEsMCwwLDApO2Z1bmN0aW9uIFAwKGUsYSl7dmFyIHI9ZS5nZXRUaW1lKCk7cmV0dXJuIGE/ci09MTQ2MSoyNCo2MCo2MCoxZTM6ZT49RWkmJihyKz0yNCo2MCo2MCoxZTMpLChyLShfaSsoZS5nZXRUaW1lem9uZU9mZnNldCgpLU4wLmdldFRpbWV6b25lT2Zmc2V0KCkpKjZlNCkpLygyNCo2MCo2MCoxZTMpfWZ1bmN0aW9uIFJ0KGUpe3JldHVybiBlLmluZGV4T2YoIi4iKT09LTE/ZTplLnJlcGxhY2UoLyg/OlwuMCp8KFwuXGQqWzEtOV0pMCspJC8sIiQxIil9ZnVuY3Rpb24gVGkoZSl7cmV0dXJuIGUuaW5kZXhPZigiRSIpPT0tMT9lOmUucmVwbGFjZSgvKD86XC4wKnwoXC5cZCpbMS05XSkwKylbRWVdLywiJDFFIikucmVwbGFjZSgvKEVbKy1dKShcZCkkLywiJDEwJDIiKX1mdW5jdGlvbiBraShlKXt2YXIgYT1lPDA/MTI6MTEscj1SdChlLnRvRml4ZWQoMTIpKTtyZXR1cm4gci5sZW5ndGg8PWF8fChyPWUudG9QcmVjaXNpb24oMTApLHIubGVuZ3RoPD1hKT9yOmUudG9FeHBvbmVudGlhbCg1KX1mdW5jdGlvbiB3aShlKXt2YXIgYT1SdChlLnRvRml4ZWQoMTEpKTtyZXR1cm4gYS5sZW5ndGg+KGU8MD8xMjoxMSl8fGE9PT0iMCJ8fGE9PT0iLTAiP2UudG9QcmVjaXNpb24oNik6YX1mdW5jdGlvbiBGYShlKXt2YXIgYT1NYXRoLmZsb29yKE1hdGgubG9nKE1hdGguYWJzKGUpKSpNYXRoLkxPRzEwRSkscjtyZXR1cm4gYT49LTQmJmE8PS0xP3I9ZS50b1ByZWNpc2lvbigxMCthKTpNYXRoLmFicyhhKTw9OT9yPWtpKGUpOmE9PT0xMD9yPWUudG9GaXhlZCgxMCkuc3Vic3RyKDAsMTIpOnI9d2koZSksUnQoVGkoci50b1VwcGVyQ2FzZSgpKSl9ZnVuY3Rpb24gUXIoZSxhKXtzd2l0Y2godHlwZW9mIGUpe2Nhc2Uic3RyaW5nIjpyZXR1cm4gZTtjYXNlImJvb2xlYW4iOnJldHVybiBlPyJUUlVFIjoiRkFMU0UiO2Nhc2UibnVtYmVyIjpyZXR1cm4oZXwwKT09PWU/ZS50b1N0cmluZygxMCk6RmEoZSk7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiIiO2Nhc2Uib2JqZWN0IjppZihlPT1udWxsKXJldHVybiIiO2lmKGUgaW5zdGFuY2VvZiBEYXRlKXJldHVybiB4cigxNCxQMChlLGEmJmEuZGF0ZTE5MDQpLGEpfXRocm93IG5ldyBFcnJvcigidW5zdXBwb3J0ZWQgdmFsdWUgaW4gR2VuZXJhbCBmb3JtYXQ6ICIrZSl9ZnVuY3Rpb24gQWkoZSxhKXthWzBdLT01ODE7dmFyIHI9ZS5nZXREYXkoKTtyZXR1cm4gZTw2MCYmKHI9KHIrNiklNykscn1mdW5jdGlvbiBGaShlLGEscixuKXt2YXIgdD0iIixzPTAsaT0wLGM9ci55LGYsbz0wO3N3aXRjaChlKXtjYXNlIDk4OmM9ci55KzU0MztjYXNlIDEyMTpzd2l0Y2goYS5sZW5ndGgpe2Nhc2UgMTpjYXNlIDI6Zj1jJTEwMCxvPTI7YnJlYWs7ZGVmYXVsdDpmPWMlMWU0LG89NDticmVha31icmVhaztjYXNlIDEwOTpzd2l0Y2goYS5sZW5ndGgpe2Nhc2UgMTpjYXNlIDI6Zj1yLm0sbz1hLmxlbmd0aDticmVhaztjYXNlIDM6cmV0dXJuIE90W3IubS0xXVsxXTtjYXNlIDU6cmV0dXJuIE90W3IubS0xXVswXTtkZWZhdWx0OnJldHVybiBPdFtyLm0tMV1bMl19YnJlYWs7Y2FzZSAxMDA6c3dpdGNoKGEubGVuZ3RoKXtjYXNlIDE6Y2FzZSAyOmY9ci5kLG89YS5sZW5ndGg7YnJlYWs7Y2FzZSAzOnJldHVybiBSMFtyLnFdWzBdO2RlZmF1bHQ6cmV0dXJuIFIwW3IucV1bMV19YnJlYWs7Y2FzZSAxMDQ6c3dpdGNoKGEubGVuZ3RoKXtjYXNlIDE6Y2FzZSAyOmY9MSsoci5IKzExKSUxMixvPWEubGVuZ3RoO2JyZWFrO2RlZmF1bHQ6dGhyb3ciYmFkIGhvdXIgZm9ybWF0OiAiK2F9YnJlYWs7Y2FzZSA3Mjpzd2l0Y2goYS5sZW5ndGgpe2Nhc2UgMTpjYXNlIDI6Zj1yLkgsbz1hLmxlbmd0aDticmVhaztkZWZhdWx0OnRocm93ImJhZCBob3VyIGZvcm1hdDogIithfWJyZWFrO2Nhc2UgNzc6c3dpdGNoKGEubGVuZ3RoKXtjYXNlIDE6Y2FzZSAyOmY9ci5NLG89YS5sZW5ndGg7YnJlYWs7ZGVmYXVsdDp0aHJvdyJiYWQgbWludXRlIGZvcm1hdDogIithfWJyZWFrO2Nhc2UgMTE1OmlmKGEhPSJzIiYmYSE9InNzIiYmYSE9Ii4wIiYmYSE9Ii4wMCImJmEhPSIuMDAwIil0aHJvdyJiYWQgc2Vjb25kIGZvcm1hdDogIithO3JldHVybiByLnU9PT0wJiYoYT09InMifHxhPT0ic3MiKT9UcihyLlMsYS5sZW5ndGgpOihuPj0yP2k9bj09PTM/MWUzOjEwMDppPW49PT0xPzEwOjEscz1NYXRoLnJvdW5kKGkqKHIuUytyLnUpKSxzPj02MCppJiYocz0wKSxhPT09InMiP3M9PT0wPyIwIjoiIitzL2k6KHQ9VHIocywyK24pLGE9PT0ic3MiP3Quc3Vic3RyKDAsMik6Ii4iK3Quc3Vic3RyKDIsYS5sZW5ndGgtMSkpKTtjYXNlIDkwOnN3aXRjaChhKXtjYXNlIltoXSI6Y2FzZSJbaGhdIjpmPXIuRCoyNCtyLkg7YnJlYWs7Y2FzZSJbbV0iOmNhc2UiW21tXSI6Zj0oci5EKjI0K3IuSCkqNjArci5NO2JyZWFrO2Nhc2UiW3NdIjpjYXNlIltzc10iOmY9KChyLkQqMjQrci5IKSo2MCtyLk0pKjYwK01hdGgucm91bmQoci5TK3IudSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyJiYWQgYWJzdGltZSBmb3JtYXQ6ICIrYX1vPWEubGVuZ3RoPT09Mz8xOjI7YnJlYWs7Y2FzZSAxMDE6Zj1jLG89MTticmVha312YXIgbD1vPjA/VHIoZixvKToiIjtyZXR1cm4gbH1mdW5jdGlvbiBHcihlKXt2YXIgYT0zO2lmKGUubGVuZ3RoPD1hKXJldHVybiBlO2Zvcih2YXIgcj1lLmxlbmd0aCVhLG49ZS5zdWJzdHIoMCxyKTtyIT1lLmxlbmd0aDtyKz1hKW4rPShuLmxlbmd0aD4wPyIsIjoiIikrZS5zdWJzdHIocixhKTtyZXR1cm4gbn12YXIgTDA9LyUvZztmdW5jdGlvbiBTaShlLGEscil7dmFyIG49YS5yZXBsYWNlKEwwLCIiKSx0PWEubGVuZ3RoLW4ubGVuZ3RoO3JldHVybiBJcihlLG4scipNYXRoLnBvdygxMCwyKnQpKStEZSgiJSIsdCl9ZnVuY3Rpb24gQ2koZSxhLHIpe2Zvcih2YXIgbj1hLmxlbmd0aC0xO2EuY2hhckNvZGVBdChuLTEpPT09NDQ7KS0tbjtyZXR1cm4gSXIoZSxhLnN1YnN0cigwLG4pLHIvTWF0aC5wb3coMTAsMyooYS5sZW5ndGgtbikpKX1mdW5jdGlvbiBNMChlLGEpe3ZhciByLG49ZS5pbmRleE9mKCJFIiktZS5pbmRleE9mKCIuIiktMTtpZihlLm1hdGNoKC9eIyswLjBFXCswJC8pKXtpZihhPT0wKXJldHVybiIwLjBFKzAiO2lmKGE8MClyZXR1cm4iLSIrTTAoZSwtYSk7dmFyIHQ9ZS5pbmRleE9mKCIuIik7dD09PS0xJiYodD1lLmluZGV4T2YoIkUiKSk7dmFyIHM9TWF0aC5mbG9vcihNYXRoLmxvZyhhKSpNYXRoLkxPRzEwRSkldDtpZihzPDAmJihzKz10KSxyPShhL01hdGgucG93KDEwLHMpKS50b1ByZWNpc2lvbihuKzErKHQrcykldCksci5pbmRleE9mKCJlIik9PT0tMSl7dmFyIGk9TWF0aC5mbG9vcihNYXRoLmxvZyhhKSpNYXRoLkxPRzEwRSk7Zm9yKHIuaW5kZXhPZigiLiIpPT09LTE/cj1yLmNoYXJBdCgwKSsiLiIrci5zdWJzdHIoMSkrIkUrIisoaS1yLmxlbmd0aCtzKTpyKz0iRSsiKyhpLXMpO3Iuc3Vic3RyKDAsMik9PT0iMC4iOylyPXIuY2hhckF0KDApK3Iuc3Vic3RyKDIsdCkrIi4iK3Iuc3Vic3RyKDIrdCkscj1yLnJlcGxhY2UoL14wKyhbMS05XSkvLCIkMSIpLnJlcGxhY2UoL14wK1wuLywiMC4iKTtyPXIucmVwbGFjZSgvXCstLywiLSIpfXI9ci5yZXBsYWNlKC9eKFsrLV0/KShcZCopXC4oXGQqKVtFZV0vLGZ1bmN0aW9uKGMsZixvLGwpe3JldHVybiBmK28rbC5zdWJzdHIoMCwodCtzKSV0KSsiLiIrbC5zdWJzdHIocykrIkUifSl9ZWxzZSByPWEudG9FeHBvbmVudGlhbChuKTtyZXR1cm4gZS5tYXRjaCgvRVwrMDAkLykmJnIubWF0Y2goL2VbKy1dXGQkLykmJihyPXIuc3Vic3RyKDAsci5sZW5ndGgtMSkrIjAiK3IuY2hhckF0KHIubGVuZ3RoLTEpKSxlLm1hdGNoKC9FXC0vKSYmci5tYXRjaCgvZVwrLykmJihyPXIucmVwbGFjZSgvZVwrLywiZSIpKSxyLnJlcGxhY2UoImUiLCJFIil9dmFyIEIwPS8jIChcPyspKCA/KVwvKCA/KShcZCspLztmdW5jdGlvbiB5aShlLGEscil7dmFyIG49cGFyc2VJbnQoZVs0XSwxMCksdD1NYXRoLnJvdW5kKGEqbikscz1NYXRoLmZsb29yKHQvbiksaT10LXMqbixjPW47cmV0dXJuIHIrKHM9PT0wPyIiOiIiK3MpKyIgIisoaT09PTA/RGUoIiAiLGVbMV0ubGVuZ3RoKzErZVs0XS5sZW5ndGgpOkR0KGksZVsxXS5sZW5ndGgpK2VbMl0rIi8iK2VbM10rVHIoYyxlWzRdLmxlbmd0aCkpfWZ1bmN0aW9uIERpKGUsYSxyKXtyZXR1cm4gcisoYT09PTA/IiI6IiIrYSkrRGUoIiAiLGVbMV0ubGVuZ3RoKzIrZVs0XS5sZW5ndGgpfXZhciBiMD0vXiMqMCpcLihbMCNdKykvLFUwPS9cKS4qWzAjXS8sSDA9L1woIyMjXCkgIyMjXFw/LSMjIyMvO2Z1bmN0aW9uIGFyKGUpe2Zvcih2YXIgYT0iIixyLG49MDtuIT1lLmxlbmd0aDsrK24pc3dpdGNoKHI9ZS5jaGFyQ29kZUF0KG4pKXtjYXNlIDM1OmJyZWFrO2Nhc2UgNjM6YSs9IiAiO2JyZWFrO2Nhc2UgNDg6YSs9IjAiO2JyZWFrO2RlZmF1bHQ6YSs9U3RyaW5nLmZyb21DaGFyQ29kZShyKX1yZXR1cm4gYX1mdW5jdGlvbiBWMChlLGEpe3ZhciByPU1hdGgucG93KDEwLGEpO3JldHVybiIiK01hdGgucm91bmQoZSpyKS9yfWZ1bmN0aW9uIFcwKGUsYSl7dmFyIHI9ZS1NYXRoLmZsb29yKGUpLG49TWF0aC5wb3coMTAsYSk7cmV0dXJuIGE8KCIiK01hdGgucm91bmQocipuKSkubGVuZ3RoPzA6TWF0aC5yb3VuZChyKm4pfWZ1bmN0aW9uIE9pKGUsYSl7cmV0dXJuIGE8KCIiK01hdGgucm91bmQoKGUtTWF0aC5mbG9vcihlKSkqTWF0aC5wb3coMTAsYSkpKS5sZW5ndGg/MTowfWZ1bmN0aW9uIFJpKGUpe3JldHVybiBlPDIxNDc0ODM2NDcmJmU+LTIxNDc0ODM2NDg/IiIrKGU+PTA/ZXwwOmUtMXwwKToiIitNYXRoLmZsb29yKGUpfWZ1bmN0aW9uIHVyKGUsYSxyKXtpZihlLmNoYXJDb2RlQXQoMCk9PT00MCYmIWEubWF0Y2goVTApKXt2YXIgbj1hLnJlcGxhY2UoL1woICovLCIiKS5yZXBsYWNlKC8gXCkvLCIiKS5yZXBsYWNlKC9cKS8sIiIpO3JldHVybiByPj0wP3VyKCJuIixuLHIpOiIoIit1cigibiIsbiwtcikrIikifWlmKGEuY2hhckNvZGVBdChhLmxlbmd0aC0xKT09PTQ0KXJldHVybiBDaShlLGEscik7aWYoYS5pbmRleE9mKCIlIikhPT0tMSlyZXR1cm4gU2koZSxhLHIpO2lmKGEuaW5kZXhPZigiRSIpIT09LTEpcmV0dXJuIE0wKGEscik7aWYoYS5jaGFyQ29kZUF0KDApPT09MzYpcmV0dXJuIiQiK3VyKGUsYS5zdWJzdHIoYS5jaGFyQXQoMSk9PSIgIj8yOjEpLHIpO3ZhciB0LHMsaSxjLGY9TWF0aC5hYnMociksbz1yPDA/Ii0iOiIiO2lmKGEubWF0Y2goL14wMCskLykpcmV0dXJuIG8rdWEoZixhLmxlbmd0aCk7aWYoYS5tYXRjaCgvXlsjP10rJC8pKXJldHVybiB0PXVhKHIsMCksdD09PSIwIiYmKHQ9IiIpLHQubGVuZ3RoPmEubGVuZ3RoP3Q6YXIoYS5zdWJzdHIoMCxhLmxlbmd0aC10Lmxlbmd0aCkpK3Q7aWYocz1hLm1hdGNoKEIwKSlyZXR1cm4geWkocyxmLG8pO2lmKGEubWF0Y2goL14jKzArJC8pKXJldHVybiBvK3VhKGYsYS5sZW5ndGgtYS5pbmRleE9mKCIwIikpO2lmKHM9YS5tYXRjaChiMCkpcmV0dXJuIHQ9VjAocixzWzFdLmxlbmd0aCkucmVwbGFjZSgvXihbXlwuXSspJC8sIiQxLiIrYXIoc1sxXSkpLnJlcGxhY2UoL1wuJC8sIi4iK2FyKHNbMV0pKS5yZXBsYWNlKC9cLihcZCopJC8sZnVuY3Rpb24odix1KXtyZXR1cm4iLiIrdStEZSgiMCIsYXIoc1sxXSkubGVuZ3RoLXUubGVuZ3RoKX0pLGEuaW5kZXhPZigiMC4iKSE9PS0xP3Q6dC5yZXBsYWNlKC9eMFwuLywiLiIpO2lmKGE9YS5yZXBsYWNlKC9eIysoWzAuXSkvLCIkMSIpLHM9YS5tYXRjaCgvXigwKilcLigjKikkLykpcmV0dXJuIG8rVjAoZixzWzJdLmxlbmd0aCkucmVwbGFjZSgvXC4oXGQqWzEtOV0pMCokLywiLiQxIikucmVwbGFjZSgvXigtP1xkKikkLywiJDEuIikucmVwbGFjZSgvXjBcLi8sc1sxXS5sZW5ndGg/IjAuIjoiLiIpO2lmKHM9YS5tYXRjaCgvXiN7MSwzfSwjIzAoXC4/KSQvKSlyZXR1cm4gbytHcih1YShmLDApKTtpZihzPWEubWF0Y2goL14jLCMjMFwuKFsjMF0qMCkkLykpcmV0dXJuIHI8MD8iLSIrdXIoZSxhLC1yKTpHcigiIisoTWF0aC5mbG9vcihyKStPaShyLHNbMV0ubGVuZ3RoKSkpKyIuIitUcihXMChyLHNbMV0ubGVuZ3RoKSxzWzFdLmxlbmd0aCk7aWYocz1hLm1hdGNoKC9eIywjKiwjMC8pKXJldHVybiB1cihlLGEucmVwbGFjZSgvXiMsIyosLywiIikscik7aWYocz1hLm1hdGNoKC9eKFswI10rKShcXD8tKFswI10rKSkrJC8pKXJldHVybiB0PWhhKHVyKGUsYS5yZXBsYWNlKC9bXFwtXS9nLCIiKSxyKSksaT0wLGhhKGhhKGEucmVwbGFjZSgvXFwvZywiIikpLnJlcGxhY2UoL1swI10vZyxmdW5jdGlvbih2KXtyZXR1cm4gaTx0Lmxlbmd0aD90LmNoYXJBdChpKyspOnY9PT0iMCI/IjAiOiIifSkpO2lmKGEubWF0Y2goSDApKXJldHVybiB0PXVyKGUsIiMjIyMjIyMjIyMiLHIpLCIoIit0LnN1YnN0cigwLDMpKyIpICIrdC5zdWJzdHIoMywzKSsiLSIrdC5zdWJzdHIoNik7dmFyIGw9IiI7aWYocz1hLm1hdGNoKC9eKFsjMD9dKykoID8pXC8oID8pKFsjMD9dKykvKSlyZXR1cm4gaT1NYXRoLm1pbihzWzRdLmxlbmd0aCw3KSxjPW50KGYsTWF0aC5wb3coMTAsaSktMSwhMSksdD0iIitvLGw9SXIoIm4iLHNbMV0sY1sxXSksbC5jaGFyQXQobC5sZW5ndGgtMSk9PSIgIiYmKGw9bC5zdWJzdHIoMCxsLmxlbmd0aC0xKSsiMCIpLHQrPWwrc1syXSsiLyIrc1szXSxsPWF0KGNbMl0saSksbC5sZW5ndGg8c1s0XS5sZW5ndGgmJihsPWFyKHNbNF0uc3Vic3RyKHNbNF0ubGVuZ3RoLWwubGVuZ3RoKSkrbCksdCs9bCx0O2lmKHM9YS5tYXRjaCgvXiMgKFsjMD9dKykoID8pXC8oID8pKFsjMD9dKykvKSlyZXR1cm4gaT1NYXRoLm1pbihNYXRoLm1heChzWzFdLmxlbmd0aCxzWzRdLmxlbmd0aCksNyksYz1udChmLE1hdGgucG93KDEwLGkpLTEsITApLG8rKGNbMF18fChjWzFdPyIiOiIwIikpKyIgIisoY1sxXT9EdChjWzFdLGkpK3NbMl0rIi8iK3NbM10rYXQoY1syXSxpKTpEZSgiICIsMippKzErc1syXS5sZW5ndGgrc1szXS5sZW5ndGgpKTtpZihzPWEubWF0Y2goL15bIzA/XSskLykpcmV0dXJuIHQ9dWEociwwKSxhLmxlbmd0aDw9dC5sZW5ndGg/dDphcihhLnN1YnN0cigwLGEubGVuZ3RoLXQubGVuZ3RoKSkrdDtpZihzPWEubWF0Y2goL14oWyMwP10rKVwuKFsjMF0rKSQvKSl7dD0iIityLnRvRml4ZWQoTWF0aC5taW4oc1syXS5sZW5ndGgsMTApKS5yZXBsYWNlKC8oW14wXSkwKyQvLCIkMSIpLGk9dC5pbmRleE9mKCIuIik7dmFyIGg9YS5pbmRleE9mKCIuIiktaSx4PWEubGVuZ3RoLXQubGVuZ3RoLWg7cmV0dXJuIGFyKGEuc3Vic3RyKDAsaCkrdCthLnN1YnN0cihhLmxlbmd0aC14KSl9aWYocz1hLm1hdGNoKC9eMDAsMDAwXC4oWyMwXSowKSQvKSlyZXR1cm4gaT1XMChyLHNbMV0ubGVuZ3RoKSxyPDA/Ii0iK3VyKGUsYSwtcik6R3IoUmkocikpLnJlcGxhY2UoL15cZCxcZHszfSQvLCIwJCYiKS5yZXBsYWNlKC9eXGQqJC8sZnVuY3Rpb24odil7cmV0dXJuIjAwLCIrKHYubGVuZ3RoPDM/VHIoMCwzLXYubGVuZ3RoKToiIikrdn0pKyIuIitUcihpLHNbMV0ubGVuZ3RoKTtzd2l0Y2goYSl7Y2FzZSIjIyMsIyMwLjAwIjpyZXR1cm4gdXIoZSwiIywjIzAuMDAiLHIpO2Nhc2UiIyMjLCMjIyI6Y2FzZSIjIywjIyMiOmNhc2UiIywjIyMiOnZhciBkPUdyKHVhKGYsMCkpO3JldHVybiBkIT09IjAiP28rZDoiIjtjYXNlIiMjIywjIyMuMDAiOnJldHVybiB1cihlLCIjIyMsIyMwLjAwIixyKS5yZXBsYWNlKC9eMFwuLywiLiIpO2Nhc2UiIywjIyMuMDAiOnJldHVybiB1cihlLCIjLCMjMC4wMCIscikucmVwbGFjZSgvXjBcLi8sIi4iKX10aHJvdyBuZXcgRXJyb3IoInVuc3VwcG9ydGVkIGZvcm1hdCB8IithKyJ8Iil9ZnVuY3Rpb24gSWkoZSxhLHIpe2Zvcih2YXIgbj1hLmxlbmd0aC0xO2EuY2hhckNvZGVBdChuLTEpPT09NDQ7KS0tbjtyZXR1cm4gSXIoZSxhLnN1YnN0cigwLG4pLHIvTWF0aC5wb3coMTAsMyooYS5sZW5ndGgtbikpKX1mdW5jdGlvbiBOaShlLGEscil7dmFyIG49YS5yZXBsYWNlKEwwLCIiKSx0PWEubGVuZ3RoLW4ubGVuZ3RoO3JldHVybiBJcihlLG4scipNYXRoLnBvdygxMCwyKnQpKStEZSgiJSIsdCl9ZnVuY3Rpb24gRzAoZSxhKXt2YXIgcixuPWUuaW5kZXhPZigiRSIpLWUuaW5kZXhPZigiLiIpLTE7aWYoZS5tYXRjaCgvXiMrMC4wRVwrMCQvKSl7aWYoYT09MClyZXR1cm4iMC4wRSswIjtpZihhPDApcmV0dXJuIi0iK0cwKGUsLWEpO3ZhciB0PWUuaW5kZXhPZigiLiIpO3Q9PT0tMSYmKHQ9ZS5pbmRleE9mKCJFIikpO3ZhciBzPU1hdGguZmxvb3IoTWF0aC5sb2coYSkqTWF0aC5MT0cxMEUpJXQ7aWYoczwwJiYocys9dCkscj0oYS9NYXRoLnBvdygxMCxzKSkudG9QcmVjaXNpb24obisxKyh0K3MpJXQpLCFyLm1hdGNoKC9bRWVdLykpe3ZhciBpPU1hdGguZmxvb3IoTWF0aC5sb2coYSkqTWF0aC5MT0cxMEUpO3IuaW5kZXhPZigiLiIpPT09LTE/cj1yLmNoYXJBdCgwKSsiLiIrci5zdWJzdHIoMSkrIkUrIisoaS1yLmxlbmd0aCtzKTpyKz0iRSsiKyhpLXMpLHI9ci5yZXBsYWNlKC9cKy0vLCItIil9cj1yLnJlcGxhY2UoL14oWystXT8pKFxkKilcLihcZCopW0VlXS8sZnVuY3Rpb24oYyxmLG8sbCl7cmV0dXJuIGYrbytsLnN1YnN0cigwLCh0K3MpJXQpKyIuIitsLnN1YnN0cihzKSsiRSJ9KX1lbHNlIHI9YS50b0V4cG9uZW50aWFsKG4pO3JldHVybiBlLm1hdGNoKC9FXCswMCQvKSYmci5tYXRjaCgvZVsrLV1cZCQvKSYmKHI9ci5zdWJzdHIoMCxyLmxlbmd0aC0xKSsiMCIrci5jaGFyQXQoci5sZW5ndGgtMSkpLGUubWF0Y2goL0VcLS8pJiZyLm1hdGNoKC9lXCsvKSYmKHI9ci5yZXBsYWNlKC9lXCsvLCJlIikpLHIucmVwbGFjZSgiZSIsIkUiKX1mdW5jdGlvbiBGcihlLGEscil7aWYoZS5jaGFyQ29kZUF0KDApPT09NDAmJiFhLm1hdGNoKFUwKSl7dmFyIG49YS5yZXBsYWNlKC9cKCAqLywiIikucmVwbGFjZSgvIFwpLywiIikucmVwbGFjZSgvXCkvLCIiKTtyZXR1cm4gcj49MD9GcigibiIsbixyKToiKCIrRnIoIm4iLG4sLXIpKyIpIn1pZihhLmNoYXJDb2RlQXQoYS5sZW5ndGgtMSk9PT00NClyZXR1cm4gSWkoZSxhLHIpO2lmKGEuaW5kZXhPZigiJSIpIT09LTEpcmV0dXJuIE5pKGUsYSxyKTtpZihhLmluZGV4T2YoIkUiKSE9PS0xKXJldHVybiBHMChhLHIpO2lmKGEuY2hhckNvZGVBdCgwKT09PTM2KXJldHVybiIkIitGcihlLGEuc3Vic3RyKGEuY2hhckF0KDEpPT0iICI/MjoxKSxyKTt2YXIgdCxzLGksYyxmPU1hdGguYWJzKHIpLG89cjwwPyItIjoiIjtpZihhLm1hdGNoKC9eMDArJC8pKXJldHVybiBvK1RyKGYsYS5sZW5ndGgpO2lmKGEubWF0Y2goL15bIz9dKyQvKSlyZXR1cm4gdD0iIityLHI9PT0wJiYodD0iIiksdC5sZW5ndGg+YS5sZW5ndGg/dDphcihhLnN1YnN0cigwLGEubGVuZ3RoLXQubGVuZ3RoKSkrdDtpZihzPWEubWF0Y2goQjApKXJldHVybiBEaShzLGYsbyk7aWYoYS5tYXRjaCgvXiMrMCskLykpcmV0dXJuIG8rVHIoZixhLmxlbmd0aC1hLmluZGV4T2YoIjAiKSk7aWYocz1hLm1hdGNoKGIwKSlyZXR1cm4gdD0oIiIrcikucmVwbGFjZSgvXihbXlwuXSspJC8sIiQxLiIrYXIoc1sxXSkpLnJlcGxhY2UoL1wuJC8sIi4iK2FyKHNbMV0pKSx0PXQucmVwbGFjZSgvXC4oXGQqKSQvLGZ1bmN0aW9uKHYsdSl7cmV0dXJuIi4iK3UrRGUoIjAiLGFyKHNbMV0pLmxlbmd0aC11Lmxlbmd0aCl9KSxhLmluZGV4T2YoIjAuIikhPT0tMT90OnQucmVwbGFjZSgvXjBcLi8sIi4iKTtpZihhPWEucmVwbGFjZSgvXiMrKFswLl0pLywiJDEiKSxzPWEubWF0Y2goL14oMCopXC4oIyopJC8pKXJldHVybiBvKygiIitmKS5yZXBsYWNlKC9cLihcZCpbMS05XSkwKiQvLCIuJDEiKS5yZXBsYWNlKC9eKC0/XGQqKSQvLCIkMS4iKS5yZXBsYWNlKC9eMFwuLyxzWzFdLmxlbmd0aD8iMC4iOiIuIik7aWYocz1hLm1hdGNoKC9eI3sxLDN9LCMjMChcLj8pJC8pKXJldHVybiBvK0dyKCIiK2YpO2lmKHM9YS5tYXRjaCgvXiMsIyMwXC4oWyMwXSowKSQvKSlyZXR1cm4gcjwwPyItIitGcihlLGEsLXIpOkdyKCIiK3IpKyIuIitEZSgiMCIsc1sxXS5sZW5ndGgpO2lmKHM9YS5tYXRjaCgvXiMsIyosIzAvKSlyZXR1cm4gRnIoZSxhLnJlcGxhY2UoL14jLCMqLC8sIiIpLHIpO2lmKHM9YS5tYXRjaCgvXihbMCNdKykoXFw/LShbMCNdKykpKyQvKSlyZXR1cm4gdD1oYShGcihlLGEucmVwbGFjZSgvW1xcLV0vZywiIikscikpLGk9MCxoYShoYShhLnJlcGxhY2UoL1xcL2csIiIpKS5yZXBsYWNlKC9bMCNdL2csZnVuY3Rpb24odil7cmV0dXJuIGk8dC5sZW5ndGg/dC5jaGFyQXQoaSsrKTp2PT09IjAiPyIwIjoiIn0pKTtpZihhLm1hdGNoKEgwKSlyZXR1cm4gdD1GcihlLCIjIyMjIyMjIyMjIixyKSwiKCIrdC5zdWJzdHIoMCwzKSsiKSAiK3Quc3Vic3RyKDMsMykrIi0iK3Quc3Vic3RyKDYpO3ZhciBsPSIiO2lmKHM9YS5tYXRjaCgvXihbIzA/XSspKCA/KVwvKCA/KShbIzA/XSspLykpcmV0dXJuIGk9TWF0aC5taW4oc1s0XS5sZW5ndGgsNyksYz1udChmLE1hdGgucG93KDEwLGkpLTEsITEpLHQ9IiIrbyxsPUlyKCJuIixzWzFdLGNbMV0pLGwuY2hhckF0KGwubGVuZ3RoLTEpPT0iICImJihsPWwuc3Vic3RyKDAsbC5sZW5ndGgtMSkrIjAiKSx0Kz1sK3NbMl0rIi8iK3NbM10sbD1hdChjWzJdLGkpLGwubGVuZ3RoPHNbNF0ubGVuZ3RoJiYobD1hcihzWzRdLnN1YnN0cihzWzRdLmxlbmd0aC1sLmxlbmd0aCkpK2wpLHQrPWwsdDtpZihzPWEubWF0Y2goL14jIChbIzA/XSspKCA/KVwvKCA/KShbIzA/XSspLykpcmV0dXJuIGk9TWF0aC5taW4oTWF0aC5tYXgoc1sxXS5sZW5ndGgsc1s0XS5sZW5ndGgpLDcpLGM9bnQoZixNYXRoLnBvdygxMCxpKS0xLCEwKSxvKyhjWzBdfHwoY1sxXT8iIjoiMCIpKSsiICIrKGNbMV0/RHQoY1sxXSxpKStzWzJdKyIvIitzWzNdK2F0KGNbMl0saSk6RGUoIiAiLDIqaSsxK3NbMl0ubGVuZ3RoK3NbM10ubGVuZ3RoKSk7aWYocz1hLm1hdGNoKC9eWyMwP10rJC8pKXJldHVybiB0PSIiK3IsYS5sZW5ndGg8PXQubGVuZ3RoP3Q6YXIoYS5zdWJzdHIoMCxhLmxlbmd0aC10Lmxlbmd0aCkpK3Q7aWYocz1hLm1hdGNoKC9eKFsjMF0rKVwuKFsjMF0rKSQvKSl7dD0iIityLnRvRml4ZWQoTWF0aC5taW4oc1syXS5sZW5ndGgsMTApKS5yZXBsYWNlKC8oW14wXSkwKyQvLCIkMSIpLGk9dC5pbmRleE9mKCIuIik7dmFyIGg9YS5pbmRleE9mKCIuIiktaSx4PWEubGVuZ3RoLXQubGVuZ3RoLWg7cmV0dXJuIGFyKGEuc3Vic3RyKDAsaCkrdCthLnN1YnN0cihhLmxlbmd0aC14KSl9aWYocz1hLm1hdGNoKC9eMDAsMDAwXC4oWyMwXSowKSQvKSlyZXR1cm4gcjwwPyItIitGcihlLGEsLXIpOkdyKCIiK3IpLnJlcGxhY2UoL15cZCxcZHszfSQvLCIwJCYiKS5yZXBsYWNlKC9eXGQqJC8sZnVuY3Rpb24odil7cmV0dXJuIjAwLCIrKHYubGVuZ3RoPDM/VHIoMCwzLXYubGVuZ3RoKToiIikrdn0pKyIuIitUcigwLHNbMV0ubGVuZ3RoKTtzd2l0Y2goYSl7Y2FzZSIjIyMsIyMjIjpjYXNlIiMjLCMjIyI6Y2FzZSIjLCMjIyI6dmFyIGQ9R3IoIiIrZik7cmV0dXJuIGQhPT0iMCI/bytkOiIiO2RlZmF1bHQ6aWYoYS5tYXRjaCgvXC5bMCM/XSokLykpcmV0dXJuIEZyKGUsYS5zbGljZSgwLGEubGFzdEluZGV4T2YoIi4iKSkscikrYXIoYS5zbGljZShhLmxhc3RJbmRleE9mKCIuIikpKX10aHJvdyBuZXcgRXJyb3IoInVuc3VwcG9ydGVkIGZvcm1hdCB8IithKyJ8Iil9ZnVuY3Rpb24gSXIoZSxhLHIpe3JldHVybihyfDApPT09cj9GcihlLGEscik6dXIoZSxhLHIpfWZ1bmN0aW9uIFBpKGUpe2Zvcih2YXIgYT1bXSxyPSExLG49MCx0PTA7bjxlLmxlbmd0aDsrK24pc3dpdGNoKGUuY2hhckNvZGVBdChuKSl7Y2FzZSAzNDpyPSFyO2JyZWFrO2Nhc2UgOTU6Y2FzZSA0MjpjYXNlIDkyOisrbjticmVhaztjYXNlIDU5OmFbYS5sZW5ndGhdPWUuc3Vic3RyKHQsbi10KSx0PW4rMX1pZihhW2EubGVuZ3RoXT1lLnN1YnN0cih0KSxyPT09ITApdGhyb3cgbmV3IEVycm9yKCJGb3JtYXQgfCIrZSsifCB1bnRlcm1pbmF0ZWQgc3RyaW5nICIpO3JldHVybiBhfXZhciBYMD0vXFtbSGhNbVNzXHUwRTBBXHUwRTE5XHUwRTE3XSpcXS87ZnVuY3Rpb24geGEoZSl7Zm9yKHZhciBhPTAscj0iIixuPSIiO2E8ZS5sZW5ndGg7KXN3aXRjaChyPWUuY2hhckF0KGEpKXtjYXNlIkciOnR0KGUsYSkmJihhKz02KSxhKys7YnJlYWs7Y2FzZSciJzpmb3IoO2UuY2hhckNvZGVBdCgrK2EpIT09MzQmJmE8ZS5sZW5ndGg7KTsrK2E7YnJlYWs7Y2FzZSJcXCI6YSs9MjticmVhaztjYXNlIl8iOmErPTI7YnJlYWs7Y2FzZSJAIjorK2E7YnJlYWs7Y2FzZSJCIjpjYXNlImIiOmlmKGUuY2hhckF0KGErMSk9PT0iMSJ8fGUuY2hhckF0KGErMSk9PT0iMiIpcmV0dXJuITA7Y2FzZSJNIjpjYXNlIkQiOmNhc2UiWSI6Y2FzZSJIIjpjYXNlIlMiOmNhc2UiRSI6Y2FzZSJtIjpjYXNlImQiOmNhc2UieSI6Y2FzZSJoIjpjYXNlInMiOmNhc2UiZSI6Y2FzZSJnIjpyZXR1cm4hMDtjYXNlIkEiOmNhc2UiYSI6Y2FzZSLkuIoiOmlmKGUuc3Vic3RyKGEsMykudG9VcHBlckNhc2UoKT09PSJBL1AifHxlLnN1YnN0cihhLDUpLnRvVXBwZXJDYXNlKCk9PT0iQU0vUE0ifHxlLnN1YnN0cihhLDUpLnRvVXBwZXJDYXNlKCk9PT0i5LiK5Y2IL+S4i+WNiCIpcmV0dXJuITA7KythO2JyZWFrO2Nhc2UiWyI6Zm9yKG49cjtlLmNoYXJBdChhKyspIT09Il0iJiZhPGUubGVuZ3RoOyluKz1lLmNoYXJBdChhKTtpZihuLm1hdGNoKFgwKSlyZXR1cm4hMDticmVhaztjYXNlIi4iOmNhc2UiMCI6Y2FzZSIjIjpmb3IoO2E8ZS5sZW5ndGgmJigiMCM/LixFKy0lIi5pbmRleE9mKHI9ZS5jaGFyQXQoKythKSk+LTF8fHI9PSJcXCImJmUuY2hhckF0KGErMSk9PSItIiYmIjAjIi5pbmRleE9mKGUuY2hhckF0KGErMikpPi0xKTspO2JyZWFrO2Nhc2UiPyI6Zm9yKDtlLmNoYXJBdCgrK2EpPT09cjspO2JyZWFrO2Nhc2UiKiI6KythLChlLmNoYXJBdChhKT09IiAifHxlLmNoYXJBdChhKT09IioiKSYmKythO2JyZWFrO2Nhc2UiKCI6Y2FzZSIpIjorK2E7YnJlYWs7Y2FzZSIxIjpjYXNlIjIiOmNhc2UiMyI6Y2FzZSI0IjpjYXNlIjUiOmNhc2UiNiI6Y2FzZSI3IjpjYXNlIjgiOmNhc2UiOSI6Zm9yKDthPGUubGVuZ3RoJiYiMDEyMzQ1Njc4OSIuaW5kZXhPZihlLmNoYXJBdCgrK2EpKT4tMTspO2JyZWFrO2Nhc2UiICI6KythO2JyZWFrO2RlZmF1bHQ6KythO2JyZWFrfXJldHVybiExfWZ1bmN0aW9uIExpKGUsYSxyLG4pe2Zvcih2YXIgdD1bXSxzPSIiLGk9MCxjPSIiLGY9InQiLG8sbCxoLHg9IkgiO2k8ZS5sZW5ndGg7KXN3aXRjaChjPWUuY2hhckF0KGkpKXtjYXNlIkciOmlmKCF0dChlLGkpKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkIGNoYXJhY3RlciAiK2MrIiBpbiAiK2UpO3RbdC5sZW5ndGhdPXt0OiJHIix2OiJHZW5lcmFsIn0saSs9NzticmVhaztjYXNlJyInOmZvcihzPSIiOyhoPWUuY2hhckNvZGVBdCgrK2kpKSE9PTM0JiZpPGUubGVuZ3RoOylzKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGgpO3RbdC5sZW5ndGhdPXt0OiJ0Iix2OnN9LCsraTticmVhaztjYXNlIlxcIjp2YXIgZD1lLmNoYXJBdCgrK2kpLHY9ZD09PSIoInx8ZD09PSIpIj9kOiJ0Ijt0W3QubGVuZ3RoXT17dDp2LHY6ZH0sKytpO2JyZWFrO2Nhc2UiXyI6dFt0Lmxlbmd0aF09e3Q6InQiLHY6IiAifSxpKz0yO2JyZWFrO2Nhc2UiQCI6dFt0Lmxlbmd0aF09e3Q6IlQiLHY6YX0sKytpO2JyZWFrO2Nhc2UiQiI6Y2FzZSJiIjppZihlLmNoYXJBdChpKzEpPT09IjEifHxlLmNoYXJBdChpKzEpPT09IjIiKXtpZihvPT1udWxsJiYobz1xcihhLHIsZS5jaGFyQXQoaSsxKT09PSIyIiksbz09bnVsbCkpcmV0dXJuIiI7dFt0Lmxlbmd0aF09e3Q6IlgiLHY6ZS5zdWJzdHIoaSwyKX0sZj1jLGkrPTI7YnJlYWt9Y2FzZSJNIjpjYXNlIkQiOmNhc2UiWSI6Y2FzZSJIIjpjYXNlIlMiOmNhc2UiRSI6Yz1jLnRvTG93ZXJDYXNlKCk7Y2FzZSJtIjpjYXNlImQiOmNhc2UieSI6Y2FzZSJoIjpjYXNlInMiOmNhc2UiZSI6Y2FzZSJnIjppZihhPDB8fG89PW51bGwmJihvPXFyKGEsciksbz09bnVsbCkpcmV0dXJuIiI7Zm9yKHM9YzsrK2k8ZS5sZW5ndGgmJmUuY2hhckF0KGkpLnRvTG93ZXJDYXNlKCk9PT1jOylzKz1jO2M9PT0ibSImJmYudG9Mb3dlckNhc2UoKT09PSJoIiYmKGM9Ik0iKSxjPT09ImgiJiYoYz14KSx0W3QubGVuZ3RoXT17dDpjLHY6c30sZj1jO2JyZWFrO2Nhc2UiQSI6Y2FzZSJhIjpjYXNlIuS4iiI6dmFyIHU9e3Q6Yyx2OmN9O2lmKG89PW51bGwmJihvPXFyKGEscikpLGUuc3Vic3RyKGksMykudG9VcHBlckNhc2UoKT09PSJBL1AiPyhvIT1udWxsJiYodS52PW8uSD49MTI/IlAiOiJBIiksdS50PSJUIix4PSJoIixpKz0zKTplLnN1YnN0cihpLDUpLnRvVXBwZXJDYXNlKCk9PT0iQU0vUE0iPyhvIT1udWxsJiYodS52PW8uSD49MTI/IlBNIjoiQU0iKSx1LnQ9IlQiLGkrPTUseD0iaCIpOmUuc3Vic3RyKGksNSkudG9VcHBlckNhc2UoKT09PSLkuIrljYgv5LiL5Y2IIj8obyE9bnVsbCYmKHUudj1vLkg+PTEyPyLkuIvljYgiOiLkuIrljYgiKSx1LnQ9IlQiLGkrPTUseD0iaCIpOih1LnQ9InQiLCsraSksbz09bnVsbCYmdS50PT09IlQiKXJldHVybiIiO3RbdC5sZW5ndGhdPXUsZj1jO2JyZWFrO2Nhc2UiWyI6Zm9yKHM9YztlLmNoYXJBdChpKyspIT09Il0iJiZpPGUubGVuZ3RoOylzKz1lLmNoYXJBdChpKTtpZihzLnNsaWNlKC0xKSE9PSJdIil0aHJvdyd1bnRlcm1pbmF0ZWQgIlsiIGJsb2NrOiB8JytzKyJ8IjtpZihzLm1hdGNoKFgwKSl7aWYobz09bnVsbCYmKG89cXIoYSxyKSxvPT1udWxsKSlyZXR1cm4iIjt0W3QubGVuZ3RoXT17dDoiWiIsdjpzLnRvTG93ZXJDYXNlKCl9LGY9cy5jaGFyQXQoMSl9ZWxzZSBzLmluZGV4T2YoIiQiKT4tMSYmKHM9KHMubWF0Y2goL1wkKFteLVxbXF1dKikvKXx8W10pWzFdfHwiJCIseGEoZSl8fCh0W3QubGVuZ3RoXT17dDoidCIsdjpzfSkpO2JyZWFrO2Nhc2UiLiI6aWYobyE9bnVsbCl7Zm9yKHM9YzsrK2k8ZS5sZW5ndGgmJihjPWUuY2hhckF0KGkpKT09PSIwIjspcys9Yzt0W3QubGVuZ3RoXT17dDoicyIsdjpzfTticmVha31jYXNlIjAiOmNhc2UiIyI6Zm9yKHM9YzsrK2k8ZS5sZW5ndGgmJiIwIz8uLEUrLSUiLmluZGV4T2YoYz1lLmNoYXJBdChpKSk+LTE7KXMrPWM7dFt0Lmxlbmd0aF09e3Q6Im4iLHY6c307YnJlYWs7Y2FzZSI/Ijpmb3Iocz1jO2UuY2hhckF0KCsraSk9PT1jOylzKz1jO3RbdC5sZW5ndGhdPXt0OmMsdjpzfSxmPWM7YnJlYWs7Y2FzZSIqIjorK2ksKGUuY2hhckF0KGkpPT0iICJ8fGUuY2hhckF0KGkpPT0iKiIpJiYrK2k7YnJlYWs7Y2FzZSIoIjpjYXNlIikiOnRbdC5sZW5ndGhdPXt0Om49PT0xPyJ0IjpjLHY6Y30sKytpO2JyZWFrO2Nhc2UiMSI6Y2FzZSIyIjpjYXNlIjMiOmNhc2UiNCI6Y2FzZSI1IjpjYXNlIjYiOmNhc2UiNyI6Y2FzZSI4IjpjYXNlIjkiOmZvcihzPWM7aTxlLmxlbmd0aCYmIjAxMjM0NTY3ODkiLmluZGV4T2YoZS5jaGFyQXQoKytpKSk+LTE7KXMrPWUuY2hhckF0KGkpO3RbdC5sZW5ndGhdPXt0OiJEIix2OnN9O2JyZWFrO2Nhc2UiICI6dFt0Lmxlbmd0aF09e3Q6Yyx2OmN9LCsraTticmVhaztjYXNlIiQiOnRbdC5sZW5ndGhdPXt0OiJ0Iix2OiIkIn0sKytpO2JyZWFrO2RlZmF1bHQ6aWYoIiwkLSsvKCk6IV4mJ357fTw+PeKCrGFjZmlqa2xvcHFydHV2d3h6UCIuaW5kZXhPZihjKT09PS0xKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkIGNoYXJhY3RlciAiK2MrIiBpbiAiK2UpO3RbdC5sZW5ndGhdPXt0OiJ0Iix2OmN9LCsraTticmVha312YXIgZz0wLEY9MCx5O2ZvcihpPXQubGVuZ3RoLTEsZj0idCI7aT49MDstLWkpc3dpdGNoKHRbaV0udCl7Y2FzZSJoIjpjYXNlIkgiOnRbaV0udD14LGY9ImgiLGc8MSYmKGc9MSk7YnJlYWs7Y2FzZSJzIjooeT10W2ldLnYubWF0Y2goL1wuMCskLykpJiYoRj1NYXRoLm1heChGLHlbMF0ubGVuZ3RoLTEpKSxnPDMmJihnPTMpO2Nhc2UiZCI6Y2FzZSJ5IjpjYXNlIk0iOmNhc2UiZSI6Zj10W2ldLnQ7YnJlYWs7Y2FzZSJtIjpmPT09InMiJiYodFtpXS50PSJNIixnPDImJihnPTIpKTticmVhaztjYXNlIlgiOmJyZWFrO2Nhc2UiWiI6ZzwxJiZ0W2ldLnYubWF0Y2goL1tIaF0vKSYmKGc9MSksZzwyJiZ0W2ldLnYubWF0Y2goL1tNbV0vKSYmKGc9MiksZzwzJiZ0W2ldLnYubWF0Y2goL1tTc10vKSYmKGc9Myl9c3dpdGNoKGcpe2Nhc2UgMDpicmVhaztjYXNlIDE6by51Pj0uNSYmKG8udT0wLCsrby5TKSxvLlM+PTYwJiYoby5TPTAsKytvLk0pLG8uTT49NjAmJihvLk09MCwrK28uSCk7YnJlYWs7Y2FzZSAyOm8udT49LjUmJihvLnU9MCwrK28uUyksby5TPj02MCYmKG8uUz0wLCsrby5NKTticmVha312YXIgXz0iIixOO2ZvcihpPTA7aTx0Lmxlbmd0aDsrK2kpc3dpdGNoKHRbaV0udCl7Y2FzZSJ0IjpjYXNlIlQiOmNhc2UiICI6Y2FzZSJEIjpicmVhaztjYXNlIlgiOnRbaV0udj0iIix0W2ldLnQ9IjsiO2JyZWFrO2Nhc2UiZCI6Y2FzZSJtIjpjYXNlInkiOmNhc2UiaCI6Y2FzZSJIIjpjYXNlIk0iOmNhc2UicyI6Y2FzZSJlIjpjYXNlImIiOmNhc2UiWiI6dFtpXS52PUZpKHRbaV0udC5jaGFyQ29kZUF0KDApLHRbaV0udixvLEYpLHRbaV0udD0idCI7YnJlYWs7Y2FzZSJuIjpjYXNlIj8iOmZvcihOPWkrMTt0W05dIT1udWxsJiYoKGM9dFtOXS50KT09PSI/Inx8Yz09PSJEInx8KGM9PT0iICJ8fGM9PT0idCIpJiZ0W04rMV0hPW51bGwmJih0W04rMV0udD09PSI/Inx8dFtOKzFdLnQ9PT0idCImJnRbTisxXS52PT09Ii8iKXx8dFtpXS50PT09IigiJiYoYz09PSIgInx8Yz09PSJuInx8Yz09PSIpIil8fGM9PT0idCImJih0W05dLnY9PT0iLyJ8fHRbTl0udj09PSIgIiYmdFtOKzFdIT1udWxsJiZ0W04rMV0udD09Ij8iKSk7KXRbaV0udis9dFtOXS52LHRbTl09e3Y6IiIsdDoiOyJ9LCsrTjtfKz10W2ldLnYsaT1OLTE7YnJlYWs7Y2FzZSJHIjp0W2ldLnQ9InQiLHRbaV0udj1RcihhLHIpO2JyZWFrfXZhciBiPSIiLEksQTtpZihfLmxlbmd0aD4wKXtfLmNoYXJDb2RlQXQoMCk9PTQwPyhJPWE8MCYmXy5jaGFyQ29kZUF0KDApPT09NDU/LWE6YSxBPUlyKCJuIixfLEkpKTooST1hPDAmJm4+MT8tYTphLEE9SXIoIm4iLF8sSSksSTwwJiZ0WzBdJiZ0WzBdLnQ9PSJ0IiYmKEE9QS5zdWJzdHIoMSksdFswXS52PSItIit0WzBdLnYpKSxOPUEubGVuZ3RoLTE7dmFyIFY9dC5sZW5ndGg7Zm9yKGk9MDtpPHQubGVuZ3RoOysraSlpZih0W2ldIT1udWxsJiZ0W2ldLnQhPSJ0IiYmdFtpXS52LmluZGV4T2YoIi4iKT4tMSl7Vj1pO2JyZWFrfXZhciBEPXQubGVuZ3RoO2lmKFY9PT10Lmxlbmd0aCYmQS5pbmRleE9mKCJFIik9PT0tMSl7Zm9yKGk9dC5sZW5ndGgtMTtpPj0wOy0taSl0W2ldPT1udWxsfHwibj8iLmluZGV4T2YodFtpXS50KT09PS0xfHwoTj49dFtpXS52Lmxlbmd0aC0xPyhOLT10W2ldLnYubGVuZ3RoLHRbaV0udj1BLnN1YnN0cihOKzEsdFtpXS52Lmxlbmd0aCkpOk48MD90W2ldLnY9IiI6KHRbaV0udj1BLnN1YnN0cigwLE4rMSksTj0tMSksdFtpXS50PSJ0IixEPWkpO04+PTAmJkQ8dC5sZW5ndGgmJih0W0RdLnY9QS5zdWJzdHIoMCxOKzEpK3RbRF0udil9ZWxzZSBpZihWIT09dC5sZW5ndGgmJkEuaW5kZXhPZigiRSIpPT09LTEpe2ZvcihOPUEuaW5kZXhPZigiLiIpLTEsaT1WO2k+PTA7LS1pKWlmKCEodFtpXT09bnVsbHx8Im4/Ii5pbmRleE9mKHRbaV0udCk9PT0tMSkpe2ZvcihsPXRbaV0udi5pbmRleE9mKCIuIik+LTEmJmk9PT1WP3RbaV0udi5pbmRleE9mKCIuIiktMTp0W2ldLnYubGVuZ3RoLTEsYj10W2ldLnYuc3Vic3RyKGwrMSk7bD49MDstLWwpTj49MCYmKHRbaV0udi5jaGFyQXQobCk9PT0iMCJ8fHRbaV0udi5jaGFyQXQobCk9PT0iIyIpJiYoYj1BLmNoYXJBdChOLS0pK2IpO3RbaV0udj1iLHRbaV0udD0idCIsRD1pfWZvcihOPj0wJiZEPHQubGVuZ3RoJiYodFtEXS52PUEuc3Vic3RyKDAsTisxKSt0W0RdLnYpLE49QS5pbmRleE9mKCIuIikrMSxpPVY7aTx0Lmxlbmd0aDsrK2kpaWYoISh0W2ldPT1udWxsfHwibj8oIi5pbmRleE9mKHRbaV0udCk9PT0tMSYmaSE9PVYpKXtmb3IobD10W2ldLnYuaW5kZXhPZigiLiIpPi0xJiZpPT09Vj90W2ldLnYuaW5kZXhPZigiLiIpKzE6MCxiPXRbaV0udi5zdWJzdHIoMCxsKTtsPHRbaV0udi5sZW5ndGg7KytsKU48QS5sZW5ndGgmJihiKz1BLmNoYXJBdChOKyspKTt0W2ldLnY9Yix0W2ldLnQ9InQiLEQ9aX19fWZvcihpPTA7aTx0Lmxlbmd0aDsrK2kpdFtpXSE9bnVsbCYmIm4/Ii5pbmRleE9mKHRbaV0udCk+LTEmJihJPW4+MSYmYTwwJiZpPjAmJnRbaS0xXS52PT09Ii0iPy1hOmEsdFtpXS52PUlyKHRbaV0udCx0W2ldLnYsSSksdFtpXS50PSJ0Iik7dmFyIHo9IiI7Zm9yKGk9MDtpIT09dC5sZW5ndGg7KytpKXRbaV0hPW51bGwmJih6Kz10W2ldLnYpO3JldHVybiB6fXZhciAkMD0vXFsoPXw+Wz1dP3w8Wz49XT8pKC0/XGQrKD86XC5cZCopPylcXS87ZnVuY3Rpb24gejAoZSxhKXtpZihhPT1udWxsKXJldHVybiExO3ZhciByPXBhcnNlRmxvYXQoYVsyXSk7c3dpdGNoKGFbMV0pe2Nhc2UiPSI6aWYoZT09cilyZXR1cm4hMDticmVhaztjYXNlIj4iOmlmKGU+cilyZXR1cm4hMDticmVhaztjYXNlIjwiOmlmKGU8cilyZXR1cm4hMDticmVhaztjYXNlIjw+IjppZihlIT1yKXJldHVybiEwO2JyZWFrO2Nhc2UiPj0iOmlmKGU+PXIpcmV0dXJuITA7YnJlYWs7Y2FzZSI8PSI6aWYoZTw9cilyZXR1cm4hMDticmVha31yZXR1cm4hMX1mdW5jdGlvbiBNaShlLGEpe3ZhciByPVBpKGUpLG49ci5sZW5ndGgsdD1yW24tMV0uaW5kZXhPZigiQCIpO2lmKG48NCYmdD4tMSYmLS1uLHIubGVuZ3RoPjQpdGhyb3cgbmV3IEVycm9yKCJjYW5ub3QgZmluZCByaWdodCBmb3JtYXQgZm9yIHwiK3Iuam9pbigifCIpKyJ8Iik7aWYodHlwZW9mIGEhPSJudW1iZXIiKXJldHVybls0LHIubGVuZ3RoPT09NHx8dD4tMT9yW3IubGVuZ3RoLTFdOiJAIl07c3dpdGNoKHIubGVuZ3RoKXtjYXNlIDE6cj10Pi0xP1siR2VuZXJhbCIsIkdlbmVyYWwiLCJHZW5lcmFsIixyWzBdXTpbclswXSxyWzBdLHJbMF0sIkAiXTticmVhaztjYXNlIDI6cj10Pi0xP1tyWzBdLHJbMF0sclswXSxyWzFdXTpbclswXSxyWzFdLHJbMF0sIkAiXTticmVhaztjYXNlIDM6cj10Pi0xP1tyWzBdLHJbMV0sclswXSxyWzJdXTpbclswXSxyWzFdLHJbMl0sIkAiXTticmVha312YXIgcz1hPjA/clswXTphPDA/clsxXTpyWzJdO2lmKHJbMF0uaW5kZXhPZigiWyIpPT09LTEmJnJbMV0uaW5kZXhPZigiWyIpPT09LTEpcmV0dXJuW24sc107aWYoclswXS5tYXRjaCgvXFtbPTw+XS8pIT1udWxsfHxyWzFdLm1hdGNoKC9cW1s9PD5dLykhPW51bGwpe3ZhciBpPXJbMF0ubWF0Y2goJDApLGM9clsxXS5tYXRjaCgkMCk7cmV0dXJuIHowKGEsaSk/W24sclswXV06ejAoYSxjKT9bbixyWzFdXTpbbixyW2khPW51bGwmJmMhPW51bGw/MjoxXV19cmV0dXJuW24sc119ZnVuY3Rpb24geHIoZSxhLHIpe3I9PW51bGwmJihyPXt9KTt2YXIgbj0iIjtzd2l0Y2godHlwZW9mIGUpe2Nhc2Uic3RyaW5nIjplPT0ibS9kL3l5IiYmci5kYXRlTkY/bj1yLmRhdGVORjpuPWU7YnJlYWs7Y2FzZSJudW1iZXIiOmU9PTE0JiZyLmRhdGVORj9uPXIuZGF0ZU5GOm49KHIudGFibGUhPW51bGw/ci50YWJsZTpkZSlbZV0sbj09bnVsbCYmKG49ci50YWJsZSYmci50YWJsZVtJMFtlXV18fGRlW0kwW2VdXSksbj09bnVsbCYmKG49bWlbZV18fCJHZW5lcmFsIik7YnJlYWt9aWYodHQobiwwKSlyZXR1cm4gUXIoYSxyKTthIGluc3RhbmNlb2YgRGF0ZSYmKGE9UDAoYSxyLmRhdGUxOTA0KSk7dmFyIHQ9TWkobixhKTtpZih0dCh0WzFdKSlyZXR1cm4gUXIoYSxyKTtpZihhPT09ITApYT0iVFJVRSI7ZWxzZSBpZihhPT09ITEpYT0iRkFMU0UiO2Vsc2UgaWYoYT09PSIifHxhPT1udWxsKXJldHVybiIiO3JldHVybiBMaSh0WzFdLGEscix0WzBdKX1mdW5jdGlvbiBlYShlLGEpe2lmKHR5cGVvZiBhIT0ibnVtYmVyIil7YT0rYXx8LTE7Zm9yKHZhciByPTA7cjwzOTI7KytyKXtpZihkZVtyXT09bnVsbCl7YTwwJiYoYT1yKTtjb250aW51ZX1pZihkZVtyXT09ZSl7YT1yO2JyZWFrfX1hPDAmJihhPTM5MSl9cmV0dXJuIGRlW2FdPWUsYX1mdW5jdGlvbiBLMCgpe2RlPWdpKCl9dmFyIEJpPXs1OiciJCIjLCMjMF8pO1xcKCIkIiMsIyMwXFwpJyw2OiciJCIjLCMjMF8pO1tSZWRdXFwoIiQiIywjIzBcXCknLDc6JyIkIiMsIyMwLjAwXyk7XFwoIiQiIywjIzAuMDBcXCknLDg6JyIkIiMsIyMwLjAwXyk7W1JlZF1cXCgiJCIjLCMjMC4wMFxcKScsMjM6IkdlbmVyYWwiLDI0OiJHZW5lcmFsIiwyNToiR2VuZXJhbCIsMjY6IkdlbmVyYWwiLDI3OiJtL2QveXkiLDI4OiJtL2QveXkiLDI5OiJtL2QveXkiLDMwOiJtL2QveXkiLDMxOiJtL2QveXkiLDMyOiJoOm1tOnNzIiwzMzoiaDptbTpzcyIsMzQ6Img6bW06c3MiLDM1OiJoOm1tOnNzIiwzNjoibS9kL3l5Iiw0MTonXygqICMsIyMwXyk7XygqICgjLCMjMCk7XygqICItIl8pO18oQF8pJyw0MjonXygiJCIqICMsIyMwXyk7XygiJCIqICgjLCMjMCk7XygiJCIqICItIl8pO18oQF8pJyw0MzonXygqICMsIyMwLjAwXyk7XygqICgjLCMjMC4wMCk7XygqICItIj8/Xyk7XyhAXyknLDQ0OidfKCIkIiogIywjIzAuMDBfKTtfKCIkIiogKCMsIyMwLjAwKTtfKCIkIiogIi0iPz9fKTtfKEBfKScsNTA6Im0vZC95eSIsNTE6Im0vZC95eSIsNTI6Im0vZC95eSIsNTM6Im0vZC95eSIsNTQ6Im0vZC95eSIsNTU6Im0vZC95eSIsNTY6Im0vZC95eSIsNTc6Im0vZC95eSIsNTg6Im0vZC95eSIsNTk6IjAiLDYwOiIwLjAwIiw2MToiIywjIzAiLDYyOiIjLCMjMC4wMCIsNjM6JyIkIiMsIyMwXyk7XFwoIiQiIywjIzBcXCknLDY0OiciJCIjLCMjMF8pO1tSZWRdXFwoIiQiIywjIzBcXCknLDY1OiciJCIjLCMjMC4wMF8pO1xcKCIkIiMsIyMwLjAwXFwpJyw2NjonIiQiIywjIzAuMDBfKTtbUmVkXVxcKCIkIiMsIyMwLjAwXFwpJyw2NzoiMCUiLDY4OiIwLjAwJSIsNjk6IiMgPy8/Iiw3MDoiIyA/Py8/PyIsNzE6Im0vZC95eSIsNzI6Im0vZC95eSIsNzM6ImQtbW1tLXl5Iiw3NDoiZC1tbW0iLDc1OiJtbW0teXkiLDc2OiJoOm1tIiw3NzoiaDptbTpzcyIsNzg6Im0vZC95eSBoOm1tIiw3OToibW06c3MiLDgwOiJbaF06bW06c3MiLDgxOiJtbXNzLjAifSxZMD0vW2REXSt8W21NXSt8W3lZZUVdK3xbSGhdK3xbU3NdKy9nO2Z1bmN0aW9uIGJpKGUpe3ZhciBhPXR5cGVvZiBlPT0ibnVtYmVyIj9kZVtlXTplO3JldHVybiBhPWEucmVwbGFjZShZMCwiKFxcZCspIiksbmV3IFJlZ0V4cCgiXiIrYSsiJCIpfWZ1bmN0aW9uIFVpKGUsYSxyKXt2YXIgbj0tMSx0PS0xLHM9LTEsaT0tMSxjPS0xLGY9LTE7KGEubWF0Y2goWTApfHxbXSkuZm9yRWFjaChmdW5jdGlvbihoLHgpe3ZhciBkPXBhcnNlSW50KHJbeCsxXSwxMCk7c3dpdGNoKGgudG9Mb3dlckNhc2UoKS5jaGFyQXQoMCkpe2Nhc2UieSI6bj1kO2JyZWFrO2Nhc2UiZCI6cz1kO2JyZWFrO2Nhc2UiaCI6aT1kO2JyZWFrO2Nhc2UicyI6Zj1kO2JyZWFrO2Nhc2UibSI6aT49MD9jPWQ6dD1kO2JyZWFrfX0pLGY+PTAmJmM9PS0xJiZ0Pj0wJiYoYz10LHQ9LTEpO3ZhciBvPSgiIisobj49MD9uOm5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSkpLnNsaWNlKC00KSsiLSIrKCIwMCIrKHQ+PTE/dDoxKSkuc2xpY2UoLTIpKyItIisoIjAwIisocz49MT9zOjEpKS5zbGljZSgtMik7by5sZW5ndGg9PTcmJihvPSIwIitvKSxvLmxlbmd0aD09OCYmKG89IjIwIitvKTt2YXIgbD0oIjAwIisoaT49MD9pOjApKS5zbGljZSgtMikrIjoiKygiMDAiKyhjPj0wP2M6MCkpLnNsaWNlKC0yKSsiOiIrKCIwMCIrKGY+PTA/ZjowKSkuc2xpY2UoLTIpO3JldHVybiBpPT0tMSYmYz09LTEmJmY9PS0xP286bj09LTEmJnQ9PS0xJiZzPT0tMT9sOm8rIlQiK2x9dmFyIEhpPWZ1bmN0aW9uKCl7dmFyIGU9e307ZS52ZXJzaW9uPSIxLjIuMCI7ZnVuY3Rpb24gYSgpe2Zvcih2YXIgQT0wLFY9bmV3IEFycmF5KDI1NiksRD0wO0QhPTI1NjsrK0QpQT1ELEE9QSYxPy0zMDY2NzQ5MTJeQT4+PjE6QT4+PjEsQT1BJjE/LTMwNjY3NDkxMl5BPj4+MTpBPj4+MSxBPUEmMT8tMzA2Njc0OTEyXkE+Pj4xOkE+Pj4xLEE9QSYxPy0zMDY2NzQ5MTJeQT4+PjE6QT4+PjEsQT1BJjE/LTMwNjY3NDkxMl5BPj4+MTpBPj4+MSxBPUEmMT8tMzA2Njc0OTEyXkE+Pj4xOkE+Pj4xLEE9QSYxPy0zMDY2NzQ5MTJeQT4+PjE6QT4+PjEsQT1BJjE/LTMwNjY3NDkxMl5BPj4+MTpBPj4+MSxWW0RdPUE7cmV0dXJuIHR5cGVvZiBJbnQzMkFycmF5PCJ1Ij9uZXcgSW50MzJBcnJheShWKTpWfXZhciByPWEoKTtmdW5jdGlvbiBuKEEpe3ZhciBWPTAsRD0wLHo9MCxHPXR5cGVvZiBJbnQzMkFycmF5PCJ1Ij9uZXcgSW50MzJBcnJheSg0MDk2KTpuZXcgQXJyYXkoNDA5Nik7Zm9yKHo9MDt6IT0yNTY7Kyt6KUdbel09QVt6XTtmb3Ioej0wO3ohPTI1NjsrK3opZm9yKEQ9QVt6XSxWPTI1Nit6O1Y8NDA5NjtWKz0yNTYpRD1HW1ZdPUQ+Pj44XkFbRCYyNTVdO3ZhciBQPVtdO2Zvcih6PTE7eiE9MTY7Kyt6KVBbei0xXT10eXBlb2YgSW50MzJBcnJheTwidSI/Ry5zdWJhcnJheSh6KjI1Nix6KjI1NisyNTYpOkcuc2xpY2UoeioyNTYseioyNTYrMjU2KTtyZXR1cm4gUH12YXIgdD1uKHIpLHM9dFswXSxpPXRbMV0sYz10WzJdLGY9dFszXSxvPXRbNF0sbD10WzVdLGg9dFs2XSx4PXRbN10sZD10WzhdLHY9dFs5XSx1PXRbMTBdLGc9dFsxMV0sRj10WzEyXSx5PXRbMTNdLF89dFsxNF07ZnVuY3Rpb24gTihBLFYpe2Zvcih2YXIgRD1WXi0xLHo9MCxHPUEubGVuZ3RoO3o8RzspRD1EPj4+OF5yWyhEXkEuY2hhckNvZGVBdCh6KyspKSYyNTVdO3JldHVybn5EfWZ1bmN0aW9uIGIoQSxWKXtmb3IodmFyIEQ9Vl4tMSx6PUEubGVuZ3RoLTE1LEc9MDtHPHo7KUQ9X1tBW0crK11eRCYyNTVdXnlbQVtHKytdXkQ+PjgmMjU1XV5GW0FbRysrXV5EPj4xNiYyNTVdXmdbQVtHKytdXkQ+Pj4yNF1edVtBW0crK11dXnZbQVtHKytdXV5kW0FbRysrXV1eeFtBW0crK11dXmhbQVtHKytdXV5sW0FbRysrXV1eb1tBW0crK11dXmZbQVtHKytdXV5jW0FbRysrXV1eaVtBW0crK11dXnNbQVtHKytdXV5yW0FbRysrXV07Zm9yKHorPTE1O0c8ejspRD1EPj4+OF5yWyhEXkFbRysrXSkmMjU1XTtyZXR1cm5+RH1mdW5jdGlvbiBJKEEsVil7Zm9yKHZhciBEPVZeLTEsej0wLEc9QS5sZW5ndGgsUD0wLEo9MDt6PEc7KVA9QS5jaGFyQ29kZUF0KHorKyksUDwxMjg/RD1EPj4+OF5yWyhEXlApJjI1NV06UDwyMDQ4PyhEPUQ+Pj44XnJbKEReKDE5MnxQPj42JjMxKSkmMjU1XSxEPUQ+Pj44XnJbKEReKDEyOHxQJjYzKSkmMjU1XSk6UD49NTUyOTYmJlA8NTczNDQ/KFA9KFAmMTAyMykrNjQsSj1BLmNoYXJDb2RlQXQoeisrKSYxMDIzLEQ9RD4+PjheclsoRF4oMjQwfFA+PjgmNykpJjI1NV0sRD1EPj4+OF5yWyhEXigxMjh8UD4+MiY2MykpJjI1NV0sRD1EPj4+OF5yWyhEXigxMjh8Sj4+NiYxNXwoUCYzKTw8NCkpJjI1NV0sRD1EPj4+OF5yWyhEXigxMjh8SiY2MykpJjI1NV0pOihEPUQ+Pj44XnJbKEReKDIyNHxQPj4xMiYxNSkpJjI1NV0sRD1EPj4+OF5yWyhEXigxMjh8UD4+NiY2MykpJjI1NV0sRD1EPj4+OF5yWyhEXigxMjh8UCY2MykpJjI1NV0pO3JldHVybn5EfXJldHVybiBlLnRhYmxlPXIsZS5ic3RyPU4sZS5idWY9YixlLnN0cj1JLGV9KCksbWU9ZnVuY3Rpb24oKXt2YXIgYT17fTthLnZlcnNpb249IjEuMi4xIjtmdW5jdGlvbiByKHAsVCl7Zm9yKHZhciBtPXAuc3BsaXQoIi8iKSxFPVQuc3BsaXQoIi8iKSxrPTAsdz0wLE09TWF0aC5taW4obS5sZW5ndGgsRS5sZW5ndGgpO2s8TTsrK2spe2lmKHc9bVtrXS5sZW5ndGgtRVtrXS5sZW5ndGgpcmV0dXJuIHc7aWYobVtrXSE9RVtrXSlyZXR1cm4gbVtrXTxFW2tdPy0xOjF9cmV0dXJuIG0ubGVuZ3RoLUUubGVuZ3RofWZ1bmN0aW9uIG4ocCl7aWYocC5jaGFyQXQocC5sZW5ndGgtMSk9PSIvIilyZXR1cm4gcC5zbGljZSgwLC0xKS5pbmRleE9mKCIvIik9PT0tMT9wOm4ocC5zbGljZSgwLC0xKSk7dmFyIFQ9cC5sYXN0SW5kZXhPZigiLyIpO3JldHVybiBUPT09LTE/cDpwLnNsaWNlKDAsVCsxKX1mdW5jdGlvbiB0KHApe2lmKHAuY2hhckF0KHAubGVuZ3RoLTEpPT0iLyIpcmV0dXJuIHQocC5zbGljZSgwLC0xKSk7dmFyIFQ9cC5sYXN0SW5kZXhPZigiLyIpO3JldHVybiBUPT09LTE/cDpwLnNsaWNlKFQrMSl9ZnVuY3Rpb24gcyhwLFQpe3R5cGVvZiBUPT0ic3RyaW5nIiYmKFQ9bmV3IERhdGUoVCkpO3ZhciBtPVQuZ2V0SG91cnMoKTttPW08PDZ8VC5nZXRNaW51dGVzKCksbT1tPDw1fFQuZ2V0U2Vjb25kcygpPj4+MSxwLndyaXRlX3NoaWZ0KDIsbSk7dmFyIEU9VC5nZXRGdWxsWWVhcigpLTE5ODA7RT1FPDw0fFQuZ2V0TW9udGgoKSsxLEU9RTw8NXxULmdldERhdGUoKSxwLndyaXRlX3NoaWZ0KDIsRSl9ZnVuY3Rpb24gaShwKXt2YXIgVD1wLnJlYWRfc2hpZnQoMikmNjU1MzUsbT1wLnJlYWRfc2hpZnQoMikmNjU1MzUsRT1uZXcgRGF0ZSxrPW0mMzE7bT4+Pj01O3ZhciB3PW0mMTU7bT4+Pj00LEUuc2V0TWlsbGlzZWNvbmRzKDApLEUuc2V0RnVsbFllYXIobSsxOTgwKSxFLnNldE1vbnRoKHctMSksRS5zZXREYXRlKGspO3ZhciBNPVQmMzE7VD4+Pj01O3ZhciBYPVQmNjM7cmV0dXJuIFQ+Pj49NixFLnNldEhvdXJzKFQpLEUuc2V0TWludXRlcyhYKSxFLnNldFNlY29uZHMoTTw8MSksRX1mdW5jdGlvbiBjKHApeyRlKHAsMCk7Zm9yKHZhciBUPXt9LG09MDtwLmw8PXAubGVuZ3RoLTQ7KXt2YXIgRT1wLnJlYWRfc2hpZnQoMiksaz1wLnJlYWRfc2hpZnQoMiksdz1wLmwrayxNPXt9O3N3aXRjaChFKXtjYXNlIDIxNTg5Om09cC5yZWFkX3NoaWZ0KDEpLG0mMSYmKE0ubXRpbWU9cC5yZWFkX3NoaWZ0KDQpKSxrPjUmJihtJjImJihNLmF0aW1lPXAucmVhZF9zaGlmdCg0KSksbSY0JiYoTS5jdGltZT1wLnJlYWRfc2hpZnQoNCkpKSxNLm10aW1lJiYoTS5tdD1uZXcgRGF0ZShNLm10aW1lKjFlMykpO2JyZWFrfXAubD13LFRbRV09TX1yZXR1cm4gVH12YXIgZjtmdW5jdGlvbiBvKCl7cmV0dXJuIGZ8fChmPXt9KX1mdW5jdGlvbiBsKHAsVCl7aWYocFswXT09ODAmJnBbMV09PTc1KXJldHVybiBsaShwLFQpO2lmKChwWzBdfDMyKT09MTA5JiYocFsxXXwzMik9PTEwNSlyZXR1cm4gQWQocCxUKTtpZihwLmxlbmd0aDw1MTIpdGhyb3cgbmV3IEVycm9yKCJDRkIgZmlsZSBzaXplICIrcC5sZW5ndGgrIiA8IDUxMiIpO3ZhciBtPTMsRT01MTIsaz0wLHc9MCxNPTAsWD0wLEw9MCxCPVtdLEg9cC5zbGljZSgwLDUxMik7JGUoSCwwKTt2YXIgWT1oKEgpO3N3aXRjaChtPVlbMF0sbSl7Y2FzZSAzOkU9NTEyO2JyZWFrO2Nhc2UgNDpFPTQwOTY7YnJlYWs7Y2FzZSAwOmlmKFlbMV09PTApcmV0dXJuIGxpKHAsVCk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIk1ham9yIFZlcnNpb246IEV4cGVjdGVkIDMgb3IgNCBzYXcgIittKX1FIT09NTEyJiYoSD1wLnNsaWNlKDAsRSksJGUoSCwyOCkpO3ZhciBRPXAuc2xpY2UoMCxFKTt4KEgsbSk7dmFyIHNlPUgucmVhZF9zaGlmdCg0LCJpIik7aWYobT09PTMmJnNlIT09MCl0aHJvdyBuZXcgRXJyb3IoIiMgRGlyZWN0b3J5IFNlY3RvcnM6IEV4cGVjdGVkIDAgc2F3ICIrc2UpO0gubCs9NCxNPUgucmVhZF9zaGlmdCg0LCJpIiksSC5sKz00LEguY2hrKCIwMDEwMDAwMCIsIk1pbmkgU3RyZWFtIEN1dG9mZiBTaXplOiAiKSxYPUgucmVhZF9zaGlmdCg0LCJpIiksaz1ILnJlYWRfc2hpZnQoNCwiaSIpLEw9SC5yZWFkX3NoaWZ0KDQsImkiKSx3PUgucmVhZF9zaGlmdCg0LCJpIik7Zm9yKHZhciBaPS0xLHRlPTA7dGU8MTA5JiYoWj1ILnJlYWRfc2hpZnQoNCwiaSIpLCEoWjwwKSk7Kyt0ZSlCW3RlXT1aO3ZhciB4ZT1kKHAsRSk7ZyhMLHcseGUsRSxCKTt2YXIgQ2U9eSh4ZSxNLEIsRSk7Q2VbTV0ubmFtZT0iIURpcmVjdG9yeSIsaz4wJiZYIT09SiYmKENlW1hdLm5hbWU9IiFNaW5pRkFUIiksQ2VbQlswXV0ubmFtZT0iIUZBVCIsQ2UuZmF0X2FkZHJzPUIsQ2Uuc3N6PUU7dmFyIHllPXt9LGVyPVtdLHFhPVtdLFFhPVtdO18oTSxDZSx4ZSxlcixrLHllLHFhLFgpLHYocWEsUWEsZXIpLGVyLnNoaWZ0KCk7dmFyIGV0PXtGaWxlSW5kZXg6cWEsRnVsbFBhdGhzOlFhfTtyZXR1cm4gVCYmVC5yYXcmJihldC5yYXc9e2hlYWRlcjpRLHNlY3RvcnM6eGV9KSxldH1mdW5jdGlvbiBoKHApe2lmKHBbcC5sXT09ODAmJnBbcC5sKzFdPT03NSlyZXR1cm5bMCwwXTtwLmNoayhmZSwiSGVhZGVyIFNpZ25hdHVyZTogIikscC5sKz0xNjt2YXIgVD1wLnJlYWRfc2hpZnQoMiwidSIpO3JldHVybltwLnJlYWRfc2hpZnQoMiwidSIpLFRdfWZ1bmN0aW9uIHgocCxUKXt2YXIgbT05O3N3aXRjaChwLmwrPTIsbT1wLnJlYWRfc2hpZnQoMikpe2Nhc2UgOTppZihUIT0zKXRocm93IG5ldyBFcnJvcigiU2VjdG9yIFNoaWZ0OiBFeHBlY3RlZCA5IHNhdyAiK20pO2JyZWFrO2Nhc2UgMTI6aWYoVCE9NCl0aHJvdyBuZXcgRXJyb3IoIlNlY3RvciBTaGlmdDogRXhwZWN0ZWQgMTIgc2F3ICIrbSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlNlY3RvciBTaGlmdDogRXhwZWN0ZWQgOSBvciAxMiBzYXcgIittKX1wLmNoaygiMDYwMCIsIk1pbmkgU2VjdG9yIFNoaWZ0OiAiKSxwLmNoaygiMDAwMDAwMDAwMDAwIiwiUmVzZXJ2ZWQ6ICIpfWZ1bmN0aW9uIGQocCxUKXtmb3IodmFyIG09TWF0aC5jZWlsKHAubGVuZ3RoL1QpLTEsRT1bXSxrPTE7azxtOysraylFW2stMV09cC5zbGljZShrKlQsKGsrMSkqVCk7cmV0dXJuIEVbbS0xXT1wLnNsaWNlKG0qVCksRX1mdW5jdGlvbiB2KHAsVCxtKXtmb3IodmFyIEU9MCxrPTAsdz0wLE09MCxYPTAsTD1tLmxlbmd0aCxCPVtdLEg9W107RTxMOysrRSlCW0VdPUhbRV09RSxUW0VdPW1bRV07Zm9yKDtYPEgubGVuZ3RoOysrWClFPUhbWF0saz1wW0VdLkwsdz1wW0VdLlIsTT1wW0VdLkMsQltFXT09PUUmJihrIT09LTEmJkJba10hPT1rJiYoQltFXT1CW2tdKSx3IT09LTEmJkJbd10hPT13JiYoQltFXT1CW3ddKSksTSE9PS0xJiYoQltNXT1FKSxrIT09LTEmJkUhPUJbRV0mJihCW2tdPUJbRV0sSC5sYXN0SW5kZXhPZihrKTxYJiZILnB1c2goaykpLHchPT0tMSYmRSE9QltFXSYmKEJbd109QltFXSxILmxhc3RJbmRleE9mKHcpPFgmJkgucHVzaCh3KSk7Zm9yKEU9MTtFPEw7KytFKUJbRV09PT1FJiYodyE9PS0xJiZCW3ddIT09dz9CW0VdPUJbd106ayE9PS0xJiZCW2tdIT09ayYmKEJbRV09QltrXSkpO2ZvcihFPTE7RTxMOysrRSlpZihwW0VdLnR5cGUhPT0wKXtpZihYPUUsWCE9QltYXSlkbyBYPUJbWF0sVFtFXT1UW1hdKyIvIitUW0VdO3doaWxlKFghPT0wJiZCW1hdIT09LTEmJlghPUJbWF0pO0JbRV09LTF9Zm9yKFRbMF0rPSIvIixFPTE7RTxMOysrRSlwW0VdLnR5cGUhPT0yJiYoVFtFXSs9Ii8iKX1mdW5jdGlvbiB1KHAsVCxtKXtmb3IodmFyIEU9cC5zdGFydCxrPXAuc2l6ZSx3PVtdLE09RTttJiZrPjAmJk0+PTA7KXcucHVzaChULnNsaWNlKE0qUCxNKlArUCkpLGstPVAsTT1hYShtLE0qNCk7cmV0dXJuIHcubGVuZ3RoPT09MD9iZSgwKTpXcih3KS5zbGljZSgwLHAuc2l6ZSl9ZnVuY3Rpb24gZyhwLFQsbSxFLGspe3ZhciB3PUo7aWYocD09PUope2lmKFQhPT0wKXRocm93IG5ldyBFcnJvcigiRElGQVQgY2hhaW4gc2hvcnRlciB0aGFuIGV4cGVjdGVkIil9ZWxzZSBpZihwIT09LTEpe3ZhciBNPW1bcF0sWD0oRT4+PjIpLTE7aWYoIU0pcmV0dXJuO2Zvcih2YXIgTD0wO0w8WCYmKHc9YWEoTSxMKjQpKSE9PUo7KytMKWsucHVzaCh3KTtnKGFhKE0sRS00KSxULTEsbSxFLGspfX1mdW5jdGlvbiBGKHAsVCxtLEUsayl7dmFyIHc9W10sTT1bXTtrfHwoaz1bXSk7dmFyIFg9RS0xLEw9MCxCPTA7Zm9yKEw9VDtMPj0wOyl7a1tMXT0hMCx3W3cubGVuZ3RoXT1MLE0ucHVzaChwW0xdKTt2YXIgSD1tW01hdGguZmxvb3IoTCo0L0UpXTtpZihCPUwqNCZYLEU8NCtCKXRocm93IG5ldyBFcnJvcigiRkFUIGJvdW5kYXJ5IGNyb3NzZWQ6ICIrTCsiIDQgIitFKTtpZighcFtIXSlicmVhaztMPWFhKHBbSF0sQil9cmV0dXJue25vZGVzOncsZGF0YTp4bihbTV0pfX1mdW5jdGlvbiB5KHAsVCxtLEUpe3ZhciBrPXAubGVuZ3RoLHc9W10sTT1bXSxYPVtdLEw9W10sQj1FLTEsSD0wLFk9MCxRPTAsc2U9MDtmb3IoSD0wO0g8azsrK0gpaWYoWD1bXSxRPUgrVCxRPj1rJiYoUS09ayksIU1bUV0pe0w9W107dmFyIFo9W107Zm9yKFk9UTtZPj0wOyl7WltZXT0hMCxNW1ldPSEwLFhbWC5sZW5ndGhdPVksTC5wdXNoKHBbWV0pO3ZhciB0ZT1tW01hdGguZmxvb3IoWSo0L0UpXTtpZihzZT1ZKjQmQixFPDQrc2UpdGhyb3cgbmV3IEVycm9yKCJGQVQgYm91bmRhcnkgY3Jvc3NlZDogIitZKyIgNCAiK0UpO2lmKCFwW3RlXXx8KFk9YWEocFt0ZV0sc2UpLFpbWV0pKWJyZWFrfXdbUV09e25vZGVzOlgsZGF0YTp4bihbTF0pfX1yZXR1cm4gd31mdW5jdGlvbiBfKHAsVCxtLEUsayx3LE0sWCl7Zm9yKHZhciBMPTAsQj1FLmxlbmd0aD8yOjAsSD1UW3BdLmRhdGEsWT0wLFE9MCxzZTtZPEgubGVuZ3RoO1krPTEyOCl7dmFyIFo9SC5zbGljZShZLFkrMTI4KTskZShaLDY0KSxRPVoucmVhZF9zaGlmdCgyKSxzZT1CdChaLDAsUS1CKSxFLnB1c2goc2UpO3ZhciB0ZT17bmFtZTpzZSx0eXBlOloucmVhZF9zaGlmdCgxKSxjb2xvcjpaLnJlYWRfc2hpZnQoMSksTDpaLnJlYWRfc2hpZnQoNCwiaSIpLFI6Wi5yZWFkX3NoaWZ0KDQsImkiKSxDOloucmVhZF9zaGlmdCg0LCJpIiksY2xzaWQ6Wi5yZWFkX3NoaWZ0KDE2KSxzdGF0ZTpaLnJlYWRfc2hpZnQoNCwiaSIpLHN0YXJ0OjAsc2l6ZTowfSx4ZT1aLnJlYWRfc2hpZnQoMikrWi5yZWFkX3NoaWZ0KDIpK1oucmVhZF9zaGlmdCgyKStaLnJlYWRfc2hpZnQoMik7eGUhPT0wJiYodGUuY3Q9TihaLFoubC04KSk7dmFyIENlPVoucmVhZF9zaGlmdCgyKStaLnJlYWRfc2hpZnQoMikrWi5yZWFkX3NoaWZ0KDIpK1oucmVhZF9zaGlmdCgyKTtDZSE9PTAmJih0ZS5tdD1OKFosWi5sLTgpKSx0ZS5zdGFydD1aLnJlYWRfc2hpZnQoNCwiaSIpLHRlLnNpemU9Wi5yZWFkX3NoaWZ0KDQsImkiKSx0ZS5zaXplPDAmJnRlLnN0YXJ0PDAmJih0ZS5zaXplPXRlLnR5cGU9MCx0ZS5zdGFydD1KLHRlLm5hbWU9IiIpLHRlLnR5cGU9PT01PyhMPXRlLnN0YXJ0LGs+MCYmTCE9PUomJihUW0xdLm5hbWU9IiFTdHJlYW1EYXRhIikpOnRlLnNpemU+PTQwOTY/KHRlLnN0b3JhZ2U9ImZhdCIsVFt0ZS5zdGFydF09PT12b2lkIDAmJihUW3RlLnN0YXJ0XT1GKG0sdGUuc3RhcnQsVC5mYXRfYWRkcnMsVC5zc3opKSxUW3RlLnN0YXJ0XS5uYW1lPXRlLm5hbWUsdGUuY29udGVudD1UW3RlLnN0YXJ0XS5kYXRhLnNsaWNlKDAsdGUuc2l6ZSkpOih0ZS5zdG9yYWdlPSJtaW5pZmF0Iix0ZS5zaXplPDA/dGUuc2l6ZT0wOkwhPT1KJiZ0ZS5zdGFydCE9PUomJlRbTF0mJih0ZS5jb250ZW50PXUodGUsVFtMXS5kYXRhLChUW1hdfHx7fSkuZGF0YSkpKSx0ZS5jb250ZW50JiYkZSh0ZS5jb250ZW50LDApLHdbc2VdPXRlLE0ucHVzaCh0ZSl9fWZ1bmN0aW9uIE4ocCxUKXtyZXR1cm4gbmV3IERhdGUoKGxyKHAsVCs0KS8xZTcqTWF0aC5wb3coMiwzMikrbHIocCxUKS8xZTctMTE2NDQ0NzM2MDApKjFlMyl9ZnVuY3Rpb24gYihwLFQpe3JldHVybiBvKCksbChmLnJlYWRGaWxlU3luYyhwKSxUKX1mdW5jdGlvbiBJKHAsVCl7dmFyIG09VCYmVC50eXBlO3N3aXRjaChtfHxnZSYmQnVmZmVyLmlzQnVmZmVyKHApJiYobT0iYnVmZmVyIiksbXx8ImJhc2U2NCIpe2Nhc2UiZmlsZSI6cmV0dXJuIGIocCxUKTtjYXNlImJhc2U2NCI6cmV0dXJuIGwoRXIoZnIocCkpLFQpO2Nhc2UiYmluYXJ5IjpyZXR1cm4gbChFcihwKSxUKX1yZXR1cm4gbChwLFQpfWZ1bmN0aW9uIEEocCxUKXt2YXIgbT1UfHx7fSxFPW0ucm9vdHx8IlJvb3QgRW50cnkiO2lmKHAuRnVsbFBhdGhzfHwocC5GdWxsUGF0aHM9W10pLHAuRmlsZUluZGV4fHwocC5GaWxlSW5kZXg9W10pLHAuRnVsbFBhdGhzLmxlbmd0aCE9PXAuRmlsZUluZGV4Lmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImluY29uc2lzdGVudCBDRkIgc3RydWN0dXJlIik7cC5GdWxsUGF0aHMubGVuZ3RoPT09MCYmKHAuRnVsbFBhdGhzWzBdPUUrIi8iLHAuRmlsZUluZGV4WzBdPXtuYW1lOkUsdHlwZTo1fSksbS5DTFNJRCYmKHAuRmlsZUluZGV4WzBdLmNsc2lkPW0uQ0xTSUQpLFYocCl9ZnVuY3Rpb24gVihwKXt2YXIgVD0iAVNoMzN0SjUiO2lmKCFtZS5maW5kKHAsIi8iK1QpKXt2YXIgbT1iZSg0KTttWzBdPTU1LG1bMV09bVszXT01MCxtWzJdPTU0LHAuRmlsZUluZGV4LnB1c2goe25hbWU6VCx0eXBlOjIsY29udGVudDptLHNpemU6NCxMOjY5LFI6NjksQzo2OX0pLHAuRnVsbFBhdGhzLnB1c2gocC5GdWxsUGF0aHNbMF0rVCksRChwKX19ZnVuY3Rpb24gRChwLFQpe0EocCk7Zm9yKHZhciBtPSExLEU9ITEsaz1wLkZ1bGxQYXRocy5sZW5ndGgtMTtrPj0wOy0tayl7dmFyIHc9cC5GaWxlSW5kZXhba107c3dpdGNoKHcudHlwZSl7Y2FzZSAwOkU/bT0hMDoocC5GaWxlSW5kZXgucG9wKCkscC5GdWxsUGF0aHMucG9wKCkpO2JyZWFrO2Nhc2UgMTpjYXNlIDI6Y2FzZSA1OkU9ITAsaXNOYU4ody5SKncuTCp3LkMpJiYobT0hMCksdy5SPi0xJiZ3Lkw+LTEmJncuUj09dy5MJiYobT0hMCk7YnJlYWs7ZGVmYXVsdDptPSEwO2JyZWFrfX1pZighKCFtJiYhVCkpe3ZhciBNPW5ldyBEYXRlKDE5ODcsMSwxOSksWD0wLEw9T2JqZWN0LmNyZWF0ZT9PYmplY3QuY3JlYXRlKG51bGwpOnt9LEI9W107Zm9yKGs9MDtrPHAuRnVsbFBhdGhzLmxlbmd0aDsrK2spTFtwLkZ1bGxQYXRoc1trXV09ITAscC5GaWxlSW5kZXhba10udHlwZSE9PTAmJkIucHVzaChbcC5GdWxsUGF0aHNba10scC5GaWxlSW5kZXhba11dKTtmb3Ioaz0wO2s8Qi5sZW5ndGg7KytrKXt2YXIgSD1uKEJba11bMF0pO0U9TFtIXSxFfHwoQi5wdXNoKFtILHtuYW1lOnQoSCkucmVwbGFjZSgiLyIsIiIpLHR5cGU6MSxjbHNpZDpjZSxjdDpNLG10Ok0sY29udGVudDpudWxsfV0pLExbSF09ITApfWZvcihCLnNvcnQoZnVuY3Rpb24oc2UsWil7cmV0dXJuIHIoc2VbMF0sWlswXSl9KSxwLkZ1bGxQYXRocz1bXSxwLkZpbGVJbmRleD1bXSxrPTA7azxCLmxlbmd0aDsrK2spcC5GdWxsUGF0aHNba109QltrXVswXSxwLkZpbGVJbmRleFtrXT1CW2tdWzFdO2ZvcihrPTA7azxCLmxlbmd0aDsrK2spe3ZhciBZPXAuRmlsZUluZGV4W2tdLFE9cC5GdWxsUGF0aHNba107aWYoWS5uYW1lPXQoUSkucmVwbGFjZSgiLyIsIiIpLFkuTD1ZLlI9WS5DPS0oWS5jb2xvcj0xKSxZLnNpemU9WS5jb250ZW50P1kuY29udGVudC5sZW5ndGg6MCxZLnN0YXJ0PTAsWS5jbHNpZD1ZLmNsc2lkfHxjZSxrPT09MClZLkM9Qi5sZW5ndGg+MT8xOi0xLFkuc2l6ZT0wLFkudHlwZT01O2Vsc2UgaWYoUS5zbGljZSgtMSk9PSIvIil7Zm9yKFg9aysxO1g8Qi5sZW5ndGgmJm4ocC5GdWxsUGF0aHNbWF0pIT1ROysrWCk7Zm9yKFkuQz1YPj1CLmxlbmd0aD8tMTpYLFg9aysxO1g8Qi5sZW5ndGgmJm4ocC5GdWxsUGF0aHNbWF0pIT1uKFEpOysrWCk7WS5SPVg+PUIubGVuZ3RoPy0xOlgsWS50eXBlPTF9ZWxzZSBuKHAuRnVsbFBhdGhzW2srMV18fCIiKT09bihRKSYmKFkuUj1rKzEpLFkudHlwZT0yfX19ZnVuY3Rpb24geihwLFQpe3ZhciBtPVR8fHt9O2lmKG0uZmlsZVR5cGU9PSJtYWQiKXJldHVybiBGZChwLG0pO3N3aXRjaChEKHApLG0uZmlsZVR5cGUpe2Nhc2UiemlwIjpyZXR1cm4gbWQocCxtKX12YXIgRT1mdW5jdGlvbihzZSl7Zm9yKHZhciBaPTAsdGU9MCx4ZT0wO3hlPHNlLkZpbGVJbmRleC5sZW5ndGg7Kyt4ZSl7dmFyIENlPXNlLkZpbGVJbmRleFt4ZV07aWYoQ2UuY29udGVudCl7dmFyIHllPUNlLmNvbnRlbnQubGVuZ3RoO3llPjAmJih5ZTw0MDk2P1orPXllKzYzPj42OnRlKz15ZSs1MTE+PjkpfX1mb3IodmFyIGVyPXNlLkZ1bGxQYXRocy5sZW5ndGgrMz4+MixxYT1aKzc+PjMsUWE9WisxMjc+PjcsZXQ9cWErdGUrZXIrUWEsbGE9ZXQrMTI3Pj43LGswPWxhPD0xMDk/MDpNYXRoLmNlaWwoKGxhLTEwOSkvMTI3KTtldCtsYStrMCsxMjc+Pjc+bGE7KWswPSsrbGE8PTEwOT8wOk1hdGguY2VpbCgobGEtMTA5KS8xMjcpO3ZhciBVcj1bMSxrMCxsYSxRYSxlcix0ZSxaLDBdO3JldHVybiBzZS5GaWxlSW5kZXhbMF0uc2l6ZT1aPDw2LFVyWzddPShzZS5GaWxlSW5kZXhbMF0uc3RhcnQ9VXJbMF0rVXJbMV0rVXJbMl0rVXJbM10rVXJbNF0rVXJbNV0pKyhVcls2XSs3Pj4zKSxVcn0ocCksaz1iZShFWzddPDw5KSx3PTAsTT0wO3tmb3Iodz0wO3c8ODsrK3cpay53cml0ZV9zaGlmdCgxLHJlW3ddKTtmb3Iodz0wO3c8ODsrK3cpay53cml0ZV9zaGlmdCgyLDApO2ZvcihrLndyaXRlX3NoaWZ0KDIsNjIpLGsud3JpdGVfc2hpZnQoMiwzKSxrLndyaXRlX3NoaWZ0KDIsNjU1MzQpLGsud3JpdGVfc2hpZnQoMiw5KSxrLndyaXRlX3NoaWZ0KDIsNiksdz0wO3c8MzsrK3cpay53cml0ZV9zaGlmdCgyLDApO2ZvcihrLndyaXRlX3NoaWZ0KDQsMCksay53cml0ZV9zaGlmdCg0LEVbMl0pLGsud3JpdGVfc2hpZnQoNCxFWzBdK0VbMV0rRVsyXStFWzNdLTEpLGsud3JpdGVfc2hpZnQoNCwwKSxrLndyaXRlX3NoaWZ0KDQsNDA5Niksay53cml0ZV9zaGlmdCg0LEVbM10/RVswXStFWzFdK0VbMl0tMTpKKSxrLndyaXRlX3NoaWZ0KDQsRVszXSksay53cml0ZV9zaGlmdCgtNCxFWzFdP0VbMF0tMTpKKSxrLndyaXRlX3NoaWZ0KDQsRVsxXSksdz0wO3c8MTA5OysrdylrLndyaXRlX3NoaWZ0KC00LHc8RVsyXT9FWzFdK3c6LTEpfWlmKEVbMV0pZm9yKE09MDtNPEVbMV07KytNKXtmb3IoO3c8MjM2K00qMTI3OysrdylrLndyaXRlX3NoaWZ0KC00LHc8RVsyXT9FWzFdK3c6LTEpO2sud3JpdGVfc2hpZnQoLTQsTT09PUVbMV0tMT9KOk0rMSl9dmFyIFg9ZnVuY3Rpb24oc2Upe2ZvcihNKz1zZTt3PE0tMTsrK3cpay53cml0ZV9zaGlmdCgtNCx3KzEpO3NlJiYoKyt3LGsud3JpdGVfc2hpZnQoLTQsSikpfTtmb3IoTT13PTAsTSs9RVsxXTt3PE07Kyt3KWsud3JpdGVfc2hpZnQoLTQsaWUuRElGU0VDVCk7Zm9yKE0rPUVbMl07dzxNOysrdylrLndyaXRlX3NoaWZ0KC00LGllLkZBVFNFQ1QpO1goRVszXSksWChFWzRdKTtmb3IodmFyIEw9MCxCPTAsSD1wLkZpbGVJbmRleFswXTtMPHAuRmlsZUluZGV4Lmxlbmd0aDsrK0wpSD1wLkZpbGVJbmRleFtMXSxILmNvbnRlbnQmJihCPUguY29udGVudC5sZW5ndGgsIShCPDQwOTYpJiYoSC5zdGFydD1NLFgoQis1MTE+PjkpKSk7Zm9yKFgoRVs2XSs3Pj4zKTtrLmwmNTExOylrLndyaXRlX3NoaWZ0KC00LGllLkVORE9GQ0hBSU4pO2ZvcihNPXc9MCxMPTA7TDxwLkZpbGVJbmRleC5sZW5ndGg7KytMKUg9cC5GaWxlSW5kZXhbTF0sSC5jb250ZW50JiYoQj1ILmNvbnRlbnQubGVuZ3RoLCEoIUJ8fEI+PTQwOTYpJiYoSC5zdGFydD1NLFgoQis2Mz4+NikpKTtmb3IoO2subCY1MTE7KWsud3JpdGVfc2hpZnQoLTQsaWUuRU5ET0ZDSEFJTik7Zm9yKHc9MDt3PEVbNF08PDI7Kyt3KXt2YXIgWT1wLkZ1bGxQYXRoc1t3XTtpZighWXx8WS5sZW5ndGg9PT0wKXtmb3IoTD0wO0w8MTc7KytMKWsud3JpdGVfc2hpZnQoNCwwKTtmb3IoTD0wO0w8MzsrK0wpay53cml0ZV9zaGlmdCg0LC0xKTtmb3IoTD0wO0w8MTI7KytMKWsud3JpdGVfc2hpZnQoNCwwKTtjb250aW51ZX1IPXAuRmlsZUluZGV4W3ddLHc9PT0wJiYoSC5zdGFydD1ILnNpemU/SC5zdGFydC0xOkopO3ZhciBRPXc9PT0wJiZtLnJvb3R8fEgubmFtZTtpZihCPTIqKFEubGVuZ3RoKzEpLGsud3JpdGVfc2hpZnQoNjQsUSwidXRmMTZsZSIpLGsud3JpdGVfc2hpZnQoMixCKSxrLndyaXRlX3NoaWZ0KDEsSC50eXBlKSxrLndyaXRlX3NoaWZ0KDEsSC5jb2xvciksay53cml0ZV9zaGlmdCgtNCxILkwpLGsud3JpdGVfc2hpZnQoLTQsSC5SKSxrLndyaXRlX3NoaWZ0KC00LEguQyksSC5jbHNpZClrLndyaXRlX3NoaWZ0KDE2LEguY2xzaWQsImhleCIpO2Vsc2UgZm9yKEw9MDtMPDQ7KytMKWsud3JpdGVfc2hpZnQoNCwwKTtrLndyaXRlX3NoaWZ0KDQsSC5zdGF0ZXx8MCksay53cml0ZV9zaGlmdCg0LDApLGsud3JpdGVfc2hpZnQoNCwwKSxrLndyaXRlX3NoaWZ0KDQsMCksay53cml0ZV9zaGlmdCg0LDApLGsud3JpdGVfc2hpZnQoNCxILnN0YXJ0KSxrLndyaXRlX3NoaWZ0KDQsSC5zaXplKSxrLndyaXRlX3NoaWZ0KDQsMCl9Zm9yKHc9MTt3PHAuRmlsZUluZGV4Lmxlbmd0aDsrK3cpaWYoSD1wLkZpbGVJbmRleFt3XSxILnNpemU+PTQwOTYpaWYoay5sPUguc3RhcnQrMTw8OSxnZSYmQnVmZmVyLmlzQnVmZmVyKEguY29udGVudCkpSC5jb250ZW50LmNvcHkoayxrLmwsMCxILnNpemUpLGsubCs9SC5zaXplKzUxMSYtNTEyO2Vsc2V7Zm9yKEw9MDtMPEguc2l6ZTsrK0wpay53cml0ZV9zaGlmdCgxLEguY29udGVudFtMXSk7Zm9yKDtMJjUxMTsrK0wpay53cml0ZV9zaGlmdCgxLDApfWZvcih3PTE7dzxwLkZpbGVJbmRleC5sZW5ndGg7Kyt3KWlmKEg9cC5GaWxlSW5kZXhbd10sSC5zaXplPjAmJkguc2l6ZTw0MDk2KWlmKGdlJiZCdWZmZXIuaXNCdWZmZXIoSC5jb250ZW50KSlILmNvbnRlbnQuY29weShrLGsubCwwLEguc2l6ZSksay5sKz1ILnNpemUrNjMmLTY0O2Vsc2V7Zm9yKEw9MDtMPEguc2l6ZTsrK0wpay53cml0ZV9zaGlmdCgxLEguY29udGVudFtMXSk7Zm9yKDtMJjYzOysrTClrLndyaXRlX3NoaWZ0KDEsMCl9aWYoZ2Upay5sPWsubGVuZ3RoO2Vsc2UgZm9yKDtrLmw8ay5sZW5ndGg7KWsud3JpdGVfc2hpZnQoMSwwKTtyZXR1cm4ga31mdW5jdGlvbiBHKHAsVCl7dmFyIG09cC5GdWxsUGF0aHMubWFwKGZ1bmN0aW9uKEwpe3JldHVybiBMLnRvVXBwZXJDYXNlKCl9KSxFPW0ubWFwKGZ1bmN0aW9uKEwpe3ZhciBCPUwuc3BsaXQoIi8iKTtyZXR1cm4gQltCLmxlbmd0aC0oTC5zbGljZSgtMSk9PSIvIj8yOjEpXX0pLGs9ITE7VC5jaGFyQ29kZUF0KDApPT09NDc/KGs9ITAsVD1tWzBdLnNsaWNlKDAsLTEpK1QpOms9VC5pbmRleE9mKCIvIikhPT0tMTt2YXIgdz1ULnRvVXBwZXJDYXNlKCksTT1rPT09ITA/bS5pbmRleE9mKHcpOkUuaW5kZXhPZih3KTtpZihNIT09LTEpcmV0dXJuIHAuRmlsZUluZGV4W01dO3ZhciBYPSF3Lm1hdGNoKEFhKTtmb3Iodz13LnJlcGxhY2UocnIsIiIpLFgmJih3PXcucmVwbGFjZShBYSwiISIpKSxNPTA7TTxtLmxlbmd0aDsrK00paWYoKFg/bVtNXS5yZXBsYWNlKEFhLCIhIik6bVtNXSkucmVwbGFjZShyciwiIik9PXd8fChYP0VbTV0ucmVwbGFjZShBYSwiISIpOkVbTV0pLnJlcGxhY2UocnIsIiIpPT13KXJldHVybiBwLkZpbGVJbmRleFtNXTtyZXR1cm4gbnVsbH12YXIgUD02NCxKPS0yLGZlPSJkMGNmMTFlMGExYjExYWUxIixyZT1bMjA4LDIwNywxNywyMjQsMTYxLDE3NywyNiwyMjVdLGNlPSIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsaWU9e01BWFJFR1NFQ1Q6LTYsRElGU0VDVDotNCxGQVRTRUNUOi0zLEVORE9GQ0hBSU46SixGUkVFU0VDVDotMSxIRUFERVJfU0lHTkFUVVJFOmZlLEhFQURFUl9NSU5PUl9WRVJTSU9OOiIzZTAwIixNQVhSRUdTSUQ6LTYsTk9TVFJFQU06LTEsSEVBREVSX0NMU0lEOmNlLEVudHJ5VHlwZXM6WyJ1bmtub3duIiwic3RvcmFnZSIsInN0cmVhbSIsImxvY2tieXRlcyIsInByb3BlcnR5Iiwicm9vdCJdfTtmdW5jdGlvbiBGZShwLFQsbSl7bygpO3ZhciBFPXoocCxtKTtmLndyaXRlRmlsZVN5bmMoVCxFKX1mdW5jdGlvbiBXKHApe2Zvcih2YXIgVD1uZXcgQXJyYXkocC5sZW5ndGgpLG09MDttPHAubGVuZ3RoOysrbSlUW21dPVN0cmluZy5mcm9tQ2hhckNvZGUocFttXSk7cmV0dXJuIFQuam9pbigiIil9ZnVuY3Rpb24gbGUocCxUKXt2YXIgbT16KHAsVCk7c3dpdGNoKFQmJlQudHlwZXx8ImJ1ZmZlciIpe2Nhc2UiZmlsZSI6cmV0dXJuIG8oKSxmLndyaXRlRmlsZVN5bmMoVC5maWxlbmFtZSxtKSxtO2Nhc2UiYmluYXJ5IjpyZXR1cm4gdHlwZW9mIG09PSJzdHJpbmciP206VyhtKTtjYXNlImJhc2U2NCI6cmV0dXJuIHkwKHR5cGVvZiBtPT0ic3RyaW5nIj9tOlcobSkpO2Nhc2UiYnVmZmVyIjppZihnZSlyZXR1cm4gQnVmZmVyLmlzQnVmZmVyKG0pP206SnIobSk7Y2FzZSJhcnJheSI6cmV0dXJuIHR5cGVvZiBtPT0ic3RyaW5nIj9FcihtKTptfXJldHVybiBtfXZhciBoZTtmdW5jdGlvbiBTKHApe3RyeXt2YXIgVD1wLkluZmxhdGVSYXcsbT1uZXcgVDtpZihtLl9wcm9jZXNzQ2h1bmsobmV3IFVpbnQ4QXJyYXkoWzMsMF0pLG0uX2ZpbmlzaEZsdXNoRmxhZyksbS5ieXRlc1JlYWQpaGU9cDtlbHNlIHRocm93IG5ldyBFcnJvcigiemxpYiBkb2VzIG5vdCBleHBvc2UgYnl0ZXNSZWFkIil9Y2F0Y2goRSl7Y29uc29sZS5lcnJvcigiY2Fubm90IHVzZSBuYXRpdmUgemxpYjogIisoRS5tZXNzYWdlfHxFKSl9fWZ1bmN0aW9uIFUocCxUKXtpZighaGUpcmV0dXJuIGZpKHAsVCk7dmFyIG09aGUuSW5mbGF0ZVJhdyxFPW5ldyBtLGs9RS5fcHJvY2Vzc0NodW5rKHAuc2xpY2UocC5sKSxFLl9maW5pc2hGbHVzaEZsYWcpO3JldHVybiBwLmwrPUUuYnl0ZXNSZWFkLGt9ZnVuY3Rpb24gUihwKXtyZXR1cm4gaGU/aGUuZGVmbGF0ZVJhd1N5bmMocCk6dmUocCl9dmFyIE89WzE2LDE3LDE4LDAsOCw3LDksNiwxMCw1LDExLDQsMTIsMywxMywyLDE0LDEsMTVdLEs9WzMsNCw1LDYsNyw4LDksMTAsMTEsMTMsMTUsMTcsMTksMjMsMjcsMzEsMzUsNDMsNTEsNTksNjcsODMsOTksMTE1LDEzMSwxNjMsMTk1LDIyNywyNThdLGVlPVsxLDIsMyw0LDUsNyw5LDEzLDE3LDI1LDMzLDQ5LDY1LDk3LDEyOSwxOTMsMjU3LDM4NSw1MTMsNzY5LDEwMjUsMTUzNywyMDQ5LDMwNzMsNDA5Nyw2MTQ1LDgxOTMsMTIyODksMTYzODUsMjQ1NzddO2Z1bmN0aW9uIG5lKHApe3ZhciBUPShwPDwxfHA8PDExKSYxMzk1MzZ8KHA8PDV8cDw8MTUpJjU1ODE0NDtyZXR1cm4oVD4+MTZ8VD4+OHxUKSYyNTV9Zm9yKHZhciBxPXR5cGVvZiBVaW50OEFycmF5PCJ1IixqPXE/bmV3IFVpbnQ4QXJyYXkoMjU2KTpbXSxUZT0wO1RlPDI1NjsrK1RlKWpbVGVdPW5lKFRlKTtmdW5jdGlvbiBDKHAsVCl7dmFyIG09altwJjI1NV07cmV0dXJuIFQ8PTg/bT4+PjgtVDoobT1tPDw4fGpbcD4+OCYyNTVdLFQ8PTE2P20+Pj4xNi1UOihtPW08PDh8altwPj4xNiYyNTVdLG0+Pj4yNC1UKSl9ZnVuY3Rpb24gSWUocCxUKXt2YXIgbT1UJjcsRT1UPj4+MztyZXR1cm4ocFtFXXwobTw9Nj8wOnBbRSsxXTw8OCkpPj4+bSYzfWZ1bmN0aW9uIGtlKHAsVCl7dmFyIG09VCY3LEU9VD4+PjM7cmV0dXJuKHBbRV18KG08PTU/MDpwW0UrMV08PDgpKT4+Pm0mN31mdW5jdGlvbiB3ZShwLFQpe3ZhciBtPVQmNyxFPVQ+Pj4zO3JldHVybihwW0VdfChtPD00PzA6cFtFKzFdPDw4KSk+Pj5tJjE1fWZ1bmN0aW9uIHBlKHAsVCl7dmFyIG09VCY3LEU9VD4+PjM7cmV0dXJuKHBbRV18KG08PTM/MDpwW0UrMV08PDgpKT4+Pm0mMzF9ZnVuY3Rpb24gYWUocCxUKXt2YXIgbT1UJjcsRT1UPj4+MztyZXR1cm4ocFtFXXwobTw9MT8wOnBbRSsxXTw8OCkpPj4+bSYxMjd9ZnVuY3Rpb24gTmUocCxULG0pe3ZhciBFPVQmNyxrPVQ+Pj4zLHc9KDE8PG0pLTEsTT1wW2tdPj4+RTtyZXR1cm4gbTw4LUV8fChNfD1wW2srMV08PDgtRSxtPDE2LUUpfHwoTXw9cFtrKzJdPDwxNi1FLG08MjQtRSl8fChNfD1wW2srM108PDI0LUUpLE0md31mdW5jdGlvbiBncihwLFQsbSl7dmFyIEU9VCY3LGs9VD4+PjM7cmV0dXJuIEU8PTU/cFtrXXw9KG0mNyk8PEU6KHBba118PW08PEUmMjU1LHBbaysxXT0obSY3KT4+OC1FKSxUKzN9ZnVuY3Rpb24gT3IocCxULG0pe3ZhciBFPVQmNyxrPVQ+Pj4zO3JldHVybiBtPShtJjEpPDxFLHBba118PW0sVCsxfWZ1bmN0aW9uIEJyKHAsVCxtKXt2YXIgRT1UJjcsaz1UPj4+MztyZXR1cm4gbTw8PUUscFtrXXw9bSYyNTUsbT4+Pj04LHBbaysxXT1tLFQrOH1mdW5jdGlvbiBKYShwLFQsbSl7dmFyIEU9VCY3LGs9VD4+PjM7cmV0dXJuIG08PD1FLHBba118PW0mMjU1LG0+Pj49OCxwW2srMV09bSYyNTUscFtrKzJdPW0+Pj44LFQrMTZ9ZnVuY3Rpb24gWXIocCxUKXt2YXIgbT1wLmxlbmd0aCxFPTIqbT5UPzIqbTpUKzUsaz0wO2lmKG0+PVQpcmV0dXJuIHA7aWYoZ2Upe3ZhciB3PUQwKEUpO2lmKHAuY29weSlwLmNvcHkodyk7ZWxzZSBmb3IoO2s8cC5sZW5ndGg7KytrKXdba109cFtrXTtyZXR1cm4gd31lbHNlIGlmKHEpe3ZhciBNPW5ldyBVaW50OEFycmF5KEUpO2lmKE0uc2V0KU0uc2V0KHApO2Vsc2UgZm9yKDtrPG07KytrKU1ba109cFtrXTtyZXR1cm4gTX1yZXR1cm4gcC5sZW5ndGg9RSxwfWZ1bmN0aW9uIGhyKHApe2Zvcih2YXIgVD1uZXcgQXJyYXkocCksbT0wO208cDsrK20pVFttXT0wO3JldHVybiBUfWZ1bmN0aW9uIGJyKHAsVCxtKXt2YXIgRT0xLGs9MCx3PTAsTT0wLFg9MCxMPXAubGVuZ3RoLEI9cT9uZXcgVWludDE2QXJyYXkoMzIpOmhyKDMyKTtmb3Iodz0wO3c8MzI7Kyt3KUJbd109MDtmb3Iodz1MO3c8bTsrK3cpcFt3XT0wO0w9cC5sZW5ndGg7dmFyIEg9cT9uZXcgVWludDE2QXJyYXkoTCk6aHIoTCk7Zm9yKHc9MDt3PEw7Kyt3KUJbaz1wW3ddXSsrLEU8ayYmKEU9ayksSFt3XT0wO2ZvcihCWzBdPTAsdz0xO3c8PUU7Kyt3KUJbdysxNl09WD1YK0Jbdy0xXTw8MTtmb3Iodz0wO3c8TDsrK3cpWD1wW3ddLFghPTAmJihIW3ddPUJbWCsxNl0rKyk7dmFyIFk9MDtmb3Iodz0wO3c8TDsrK3cpaWYoWT1wW3ddLFkhPTApZm9yKFg9QyhIW3ddLEUpPj5FLVksTT0oMTw8RSs0LVkpLTE7TT49MDstLU0pVFtYfE08PFldPVkmMTV8dzw8NDtyZXR1cm4gRX12YXIganI9cT9uZXcgVWludDE2QXJyYXkoNTEyKTpocig1MTIpLFphPXE/bmV3IFVpbnQxNkFycmF5KDMyKTpocigzMik7aWYoIXEpe2Zvcih2YXIgaXI9MDtpcjw1MTI7Kytpcilqcltpcl09MDtmb3IoaXI9MDtpcjwzMjsrK2lyKVphW2lyXT0wfShmdW5jdGlvbigpe2Zvcih2YXIgcD1bXSxUPTA7VDwzMjtUKyspcC5wdXNoKDUpO2JyKHAsWmEsMzIpO3ZhciBtPVtdO2ZvcihUPTA7VDw9MTQzO1QrKyltLnB1c2goOCk7Zm9yKDtUPD0yNTU7VCsrKW0ucHVzaCg5KTtmb3IoO1Q8PTI3OTtUKyspbS5wdXNoKDcpO2Zvcig7VDw9Mjg3O1QrKyltLnB1c2goOCk7YnIobSxqciwyODgpfSkoKTt2YXIgUnI9ZnVuY3Rpb24oKXtmb3IodmFyIFQ9cT9uZXcgVWludDhBcnJheSgzMjc2OCk6W10sbT0wLEU9MDttPGVlLmxlbmd0aC0xOysrbSlmb3IoO0U8ZWVbbSsxXTsrK0UpVFtFXT1tO2Zvcig7RTwzMjc2ODsrK0UpVFtFXT0yOTt2YXIgaz1xP25ldyBVaW50OEFycmF5KDI1OSk6W107Zm9yKG09MCxFPTA7bTxLLmxlbmd0aC0xOysrbSlmb3IoO0U8S1ttKzFdOysrRSlrW0VdPW07ZnVuY3Rpb24gdyhYLEwpe2Zvcih2YXIgQj0wO0I8WC5sZW5ndGg7KXt2YXIgSD1NYXRoLm1pbig2NTUzNSxYLmxlbmd0aC1CKSxZPUIrSD09WC5sZW5ndGg7Zm9yKEwud3JpdGVfc2hpZnQoMSwrWSksTC53cml0ZV9zaGlmdCgyLEgpLEwud3JpdGVfc2hpZnQoMix+SCY2NTUzNSk7SC0tID4wOylMW0wubCsrXT1YW0IrK119cmV0dXJuIEwubH1mdW5jdGlvbiBNKFgsTCl7Zm9yKHZhciBCPTAsSD0wLFk9cT9uZXcgVWludDE2QXJyYXkoMzI3NjgpOltdO0g8WC5sZW5ndGg7KXt2YXIgUT1NYXRoLm1pbig2NTUzNSxYLmxlbmd0aC1IKTtpZihRPDEwKXtmb3IoQj1ncihMLEIsKyhIK1E9PVgubGVuZ3RoKSksQiY3JiYoQis9OC0oQiY3KSksTC5sPUIvOHwwLEwud3JpdGVfc2hpZnQoMixRKSxMLndyaXRlX3NoaWZ0KDIsflEmNjU1MzUpO1EtLSA+MDspTFtMLmwrK109WFtIKytdO0I9TC5sKjg7Y29udGludWV9Qj1ncihMLEIsKyhIK1E9PVgubGVuZ3RoKSsyKTtmb3IodmFyIHNlPTA7US0tID4wOyl7dmFyIFo9WFtIXTtzZT0oc2U8PDVeWikmMzI3Njc7dmFyIHRlPS0xLHhlPTA7aWYoKHRlPVlbc2VdKSYmKHRlfD1IJi0zMjc2OCx0ZT5IJiYodGUtPTMyNzY4KSx0ZTxIKSlmb3IoO1hbdGUreGVdPT1YW0greGVdJiZ4ZTwyNTA7KSsreGU7aWYoeGU+Mil7Wj1rW3hlXSxaPD0yMj9CPUJyKEwsQixqW1orMV0+PjEpLTE6KEJyKEwsQiwzKSxCKz01LEJyKEwsQixqW1otMjNdPj41KSxCKz0zKTt2YXIgQ2U9Wjw4PzA6Wi00Pj4yO0NlPjAmJihKYShMLEIseGUtS1taXSksQis9Q2UpLFo9VFtILXRlXSxCPUJyKEwsQixqW1pdPj4zKSxCLT0zO3ZhciB5ZT1aPDQ/MDpaLTI+PjE7eWU+MCYmKEphKEwsQixILXRlLWVlW1pdKSxCKz15ZSk7Zm9yKHZhciBlcj0wO2VyPHhlOysrZXIpWVtzZV09SCYzMjc2NyxzZT0oc2U8PDVeWFtIXSkmMzI3NjcsKytIO1EtPXhlLTF9ZWxzZSBaPD0xNDM/Wj1aKzQ4OkI9T3IoTCxCLDEpLEI9QnIoTCxCLGpbWl0pLFlbc2VdPUgmMzI3NjcsKytIfUI9QnIoTCxCLDApLTF9cmV0dXJuIEwubD0oQis3KS84fDAsTC5sfXJldHVybiBmdW5jdGlvbihMLEIpe3JldHVybiBMLmxlbmd0aDw4P3coTCxCKTpNKEwsQil9fSgpO2Z1bmN0aW9uIHZlKHApe3ZhciBUPWJlKDUwK01hdGguZmxvb3IocC5sZW5ndGgqMS4xKSksbT1ScihwLFQpO3JldHVybiBULnNsaWNlKDAsbSl9dmFyIFBlPXE/bmV3IFVpbnQxNkFycmF5KDMyNzY4KTpocigzMjc2OCksbXI9cT9uZXcgVWludDE2QXJyYXkoMzI3NjgpOmhyKDMyNzY4KSxWZT1xP25ldyBVaW50MTZBcnJheSgxMjgpOmhyKDEyOCksb2E9MSxjaT0xO2Z1bmN0aW9uIHZkKHAsVCl7dmFyIG09cGUocCxUKSsyNTc7VCs9NTt2YXIgRT1wZShwLFQpKzE7VCs9NTt2YXIgaz13ZShwLFQpKzQ7VCs9NDtmb3IodmFyIHc9MCxNPXE/bmV3IFVpbnQ4QXJyYXkoMTkpOmhyKDE5KSxYPVswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXSxMPTEsQj1xP25ldyBVaW50OEFycmF5KDgpOmhyKDgpLEg9cT9uZXcgVWludDhBcnJheSg4KTpocig4KSxZPU0ubGVuZ3RoLFE9MDtRPGs7KytRKU1bT1tRXV09dz1rZShwLFQpLEw8dyYmKEw9dyksQlt3XSsrLFQrPTM7dmFyIHNlPTA7Zm9yKEJbMF09MCxRPTE7UTw9TDsrK1EpSFtRXT1zZT1zZStCW1EtMV08PDE7Zm9yKFE9MDtRPFk7KytRKShzZT1NW1FdKSE9MCYmKFhbUV09SFtzZV0rKyk7dmFyIFo9MDtmb3IoUT0wO1E8WTsrK1EpaWYoWj1NW1FdLFohPTApe3NlPWpbWFtRXV0+PjgtWjtmb3IodmFyIHRlPSgxPDw3LVopLTE7dGU+PTA7LS10ZSlWZVtzZXx0ZTw8Wl09WiY3fFE8PDN9dmFyIHhlPVtdO2ZvcihMPTE7eGUubGVuZ3RoPG0rRTspc3dpdGNoKHNlPVZlW2FlKHAsVCldLFQrPXNlJjcsc2U+Pj49Myl7Y2FzZSAxNjpmb3Iodz0zK0llKHAsVCksVCs9MixzZT14ZVt4ZS5sZW5ndGgtMV07dy0tID4wOyl4ZS5wdXNoKHNlKTticmVhaztjYXNlIDE3OmZvcih3PTMra2UocCxUKSxUKz0zO3ctLSA+MDspeGUucHVzaCgwKTticmVhaztjYXNlIDE4OmZvcih3PTExK2FlKHAsVCksVCs9Nzt3LS0gPjA7KXhlLnB1c2goMCk7YnJlYWs7ZGVmYXVsdDp4ZS5wdXNoKHNlKSxMPHNlJiYoTD1zZSk7YnJlYWt9dmFyIENlPXhlLnNsaWNlKDAsbSkseWU9eGUuc2xpY2UobSk7Zm9yKFE9bTtRPDI4NjsrK1EpQ2VbUV09MDtmb3IoUT1FO1E8MzA7KytRKXllW1FdPTA7cmV0dXJuIG9hPWJyKENlLFBlLDI4NiksY2k9YnIoeWUsbXIsMzApLFR9ZnVuY3Rpb24gcGQocCxUKXtpZihwWzBdPT0zJiYhKHBbMV0mMykpcmV0dXJuW1ZyKFQpLDJdO2Zvcih2YXIgbT0wLEU9MCxrPUQwKFR8fDE8PDE4KSx3PTAsTT1rLmxlbmd0aD4+PjAsWD0wLEw9MDshKEUmMSk7KXtpZihFPWtlKHAsbSksbSs9MyxFPj4+MSlFPj4xPT0xPyhYPTksTD01KToobT12ZChwLG0pLFg9b2EsTD1jaSk7ZWxzZXttJjcmJihtKz04LShtJjcpKTt2YXIgQj1wW20+Pj4zXXxwWyhtPj4+MykrMV08PDg7aWYobSs9MzIsQj4wKWZvcighVCYmTTx3K0ImJihrPVlyKGssdytCKSxNPWsubGVuZ3RoKTtCLS0gPjA7KWtbdysrXT1wW20+Pj4zXSxtKz04O2NvbnRpbnVlfWZvcig7Oyl7IVQmJk08dyszMjc2NyYmKGs9WXIoayx3KzMyNzY3KSxNPWsubGVuZ3RoKTt2YXIgSD1OZShwLG0sWCksWT1FPj4+MT09MT9qcltIXTpQZVtIXTtpZihtKz1ZJjE1LFk+Pj49NCwhKFk+Pj44JjI1NSkpa1t3KytdPVk7ZWxzZXtpZihZPT0yNTYpYnJlYWs7WS09MjU3O3ZhciBRPVk8OD8wOlktND4+MjtRPjUmJihRPTApO3ZhciBzZT13K0tbWV07UT4wJiYoc2UrPU5lKHAsbSxRKSxtKz1RKSxIPU5lKHAsbSxMKSxZPUU+Pj4xPT0xP1phW0hdOm1yW0hdLG0rPVkmMTUsWT4+Pj00O3ZhciBaPVk8ND8wOlktMj4+MSx0ZT1lZVtZXTtmb3IoWj4wJiYodGUrPU5lKHAsbSxaKSxtKz1aKSwhVCYmTTxzZSYmKGs9WXIoayxzZSsxMDApLE09ay5sZW5ndGgpO3c8c2U7KWtbd109a1t3LXRlXSwrK3d9fX1yZXR1cm4gVD9bayxtKzc+Pj4zXTpbay5zbGljZSgwLHcpLG0rNz4+PjNdfWZ1bmN0aW9uIGZpKHAsVCl7dmFyIG09cC5zbGljZShwLmx8fDApLEU9cGQobSxUKTtyZXR1cm4gcC5sKz1FWzFdLEVbMF19ZnVuY3Rpb24gb2kocCxUKXtpZihwKXR5cGVvZiBjb25zb2xlPCJ1IiYmY29uc29sZS5lcnJvcihUKTtlbHNlIHRocm93IG5ldyBFcnJvcihUKX1mdW5jdGlvbiBsaShwLFQpe3ZhciBtPXA7JGUobSwwKTt2YXIgRT1bXSxrPVtdLHc9e0ZpbGVJbmRleDpFLEZ1bGxQYXRoczprfTtBKHcse3Jvb3Q6VC5yb290fSk7Zm9yKHZhciBNPW0ubGVuZ3RoLTQ7KG1bTV0hPTgwfHxtW00rMV0hPTc1fHxtW00rMl0hPTV8fG1bTSszXSE9NikmJk0+PTA7KS0tTTttLmw9TSs0LG0ubCs9NDt2YXIgWD1tLnJlYWRfc2hpZnQoMik7bS5sKz02O3ZhciBMPW0ucmVhZF9zaGlmdCg0KTtmb3IobS5sPUwsTT0wO008WDsrK00pe20ubCs9MjA7dmFyIEI9bS5yZWFkX3NoaWZ0KDQpLEg9bS5yZWFkX3NoaWZ0KDQpLFk9bS5yZWFkX3NoaWZ0KDIpLFE9bS5yZWFkX3NoaWZ0KDIpLHNlPW0ucmVhZF9zaGlmdCgyKTttLmwrPTg7dmFyIFo9bS5yZWFkX3NoaWZ0KDQpLHRlPWMobS5zbGljZShtLmwrWSxtLmwrWStRKSk7bS5sKz1ZK1Erc2U7dmFyIHhlPW0ubDttLmw9Wis0LGdkKG0sQixILHcsdGUpLG0ubD14ZX1yZXR1cm4gd31mdW5jdGlvbiBnZChwLFQsbSxFLGspe3AubCs9Mjt2YXIgdz1wLnJlYWRfc2hpZnQoMiksTT1wLnJlYWRfc2hpZnQoMiksWD1pKHApO2lmKHcmODI1Nyl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIFpJUCBlbmNyeXB0aW9uIik7Zm9yKHZhciBMPXAucmVhZF9zaGlmdCg0KSxCPXAucmVhZF9zaGlmdCg0KSxIPXAucmVhZF9zaGlmdCg0KSxZPXAucmVhZF9zaGlmdCgyKSxRPXAucmVhZF9zaGlmdCgyKSxzZT0iIixaPTA7WjxZOysrWilzZSs9U3RyaW5nLmZyb21DaGFyQ29kZShwW3AubCsrXSk7aWYoUSl7dmFyIHRlPWMocC5zbGljZShwLmwscC5sK1EpKTsodGVbMjE1ODldfHx7fSkubXQmJihYPXRlWzIxNTg5XS5tdCksKChrfHx7fSlbMjE1ODldfHx7fSkubXQmJihYPWtbMjE1ODldLm10KX1wLmwrPVE7dmFyIHhlPXAuc2xpY2UocC5sLHAubCtCKTtzd2l0Y2goTSl7Y2FzZSA4OnhlPVUocCxIKTticmVhaztjYXNlIDA6YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIFpJUCBDb21wcmVzc2lvbiBtZXRob2QgIitNKX12YXIgQ2U9ITE7dyY4JiYoTD1wLnJlYWRfc2hpZnQoNCksTD09MTM0Njk1NzYwJiYoTD1wLnJlYWRfc2hpZnQoNCksQ2U9ITApLEI9cC5yZWFkX3NoaWZ0KDQpLEg9cC5yZWFkX3NoaWZ0KDQpKSxCIT1UJiZvaShDZSwiQmFkIGNvbXByZXNzZWQgc2l6ZTogIitUKyIgIT0gIitCKSxIIT1tJiZvaShDZSwiQmFkIHVuY29tcHJlc3NlZCBzaXplOiAiK20rIiAhPSAiK0gpLFQwKEUsc2UseGUse3Vuc2FmZTohMCxtdDpYfSl9ZnVuY3Rpb24gbWQocCxUKXt2YXIgbT1UfHx7fSxFPVtdLGs9W10sdz1iZSgxKSxNPW0uY29tcHJlc3Npb24/ODowLFg9MCxMPTAsQj0wLEg9MCxZPTAsUT1wLkZ1bGxQYXRoc1swXSxzZT1RLFo9cC5GaWxlSW5kZXhbMF0sdGU9W10seGU9MDtmb3IoTD0xO0w8cC5GdWxsUGF0aHMubGVuZ3RoOysrTClpZihzZT1wLkZ1bGxQYXRoc1tMXS5zbGljZShRLmxlbmd0aCksWj1wLkZpbGVJbmRleFtMXSwhKCFaLnNpemV8fCFaLmNvbnRlbnR8fHNlPT0iAVNoMzN0SjUiKSl7dmFyIENlPUgseWU9YmUoc2UubGVuZ3RoKTtmb3IoQj0wO0I8c2UubGVuZ3RoOysrQil5ZS53cml0ZV9zaGlmdCgxLHNlLmNoYXJDb2RlQXQoQikmMTI3KTt5ZT15ZS5zbGljZSgwLHllLmwpLHRlW1ldPUhpLmJ1ZihaLmNvbnRlbnQsMCk7dmFyIGVyPVouY29udGVudDtNPT04JiYoZXI9UihlcikpLHc9YmUoMzApLHcud3JpdGVfc2hpZnQoNCw2NzMyNDc1Miksdy53cml0ZV9zaGlmdCgyLDIwKSx3LndyaXRlX3NoaWZ0KDIsWCksdy53cml0ZV9zaGlmdCgyLE0pLFoubXQ/cyh3LFoubXQpOncud3JpdGVfc2hpZnQoNCwwKSx3LndyaXRlX3NoaWZ0KC00LHRlW1ldKSx3LndyaXRlX3NoaWZ0KDQsZXIubGVuZ3RoKSx3LndyaXRlX3NoaWZ0KDQsWi5jb250ZW50Lmxlbmd0aCksdy53cml0ZV9zaGlmdCgyLHllLmxlbmd0aCksdy53cml0ZV9zaGlmdCgyLDApLEgrPXcubGVuZ3RoLEUucHVzaCh3KSxIKz15ZS5sZW5ndGgsRS5wdXNoKHllKSxIKz1lci5sZW5ndGgsRS5wdXNoKGVyKSx3PWJlKDQ2KSx3LndyaXRlX3NoaWZ0KDQsMzM2MzkyNDgpLHcud3JpdGVfc2hpZnQoMiwwKSx3LndyaXRlX3NoaWZ0KDIsMjApLHcud3JpdGVfc2hpZnQoMixYKSx3LndyaXRlX3NoaWZ0KDIsTSksdy53cml0ZV9zaGlmdCg0LDApLHcud3JpdGVfc2hpZnQoLTQsdGVbWV0pLHcud3JpdGVfc2hpZnQoNCxlci5sZW5ndGgpLHcud3JpdGVfc2hpZnQoNCxaLmNvbnRlbnQubGVuZ3RoKSx3LndyaXRlX3NoaWZ0KDIseWUubGVuZ3RoKSx3LndyaXRlX3NoaWZ0KDIsMCksdy53cml0ZV9zaGlmdCgyLDApLHcud3JpdGVfc2hpZnQoMiwwKSx3LndyaXRlX3NoaWZ0KDIsMCksdy53cml0ZV9zaGlmdCg0LDApLHcud3JpdGVfc2hpZnQoNCxDZSkseGUrPXcubCxrLnB1c2godykseGUrPXllLmxlbmd0aCxrLnB1c2goeWUpLCsrWX1yZXR1cm4gdz1iZSgyMiksdy53cml0ZV9zaGlmdCg0LDEwMTAxMDI1Niksdy53cml0ZV9zaGlmdCgyLDApLHcud3JpdGVfc2hpZnQoMiwwKSx3LndyaXRlX3NoaWZ0KDIsWSksdy53cml0ZV9zaGlmdCgyLFkpLHcud3JpdGVfc2hpZnQoNCx4ZSksdy53cml0ZV9zaGlmdCg0LEgpLHcud3JpdGVfc2hpZnQoMiwwKSxXcihbV3IoRSksV3Ioayksd10pfXZhciBGdD17aHRtOiJ0ZXh0L2h0bWwiLHhtbDoidGV4dC94bWwiLGdpZjoiaW1hZ2UvZ2lmIixqcGc6ImltYWdlL2pwZWciLHBuZzoiaW1hZ2UvcG5nIixtc286ImFwcGxpY2F0aW9uL3gtbXNvIix0aG14OiJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNldGhlbWUiLHNoMzN0ajU6ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSJ9O2Z1bmN0aW9uIF9kKHAsVCl7aWYocC5jdHlwZSlyZXR1cm4gcC5jdHlwZTt2YXIgbT1wLm5hbWV8fCIiLEU9bS5tYXRjaCgvXC4oW15cLl0rKSQvKTtyZXR1cm4gRSYmRnRbRVsxXV18fFQmJihFPShtPVQpLm1hdGNoKC9bXC5cXF0oW15cLlxcXSkrJC8pLEUmJkZ0W0VbMV1dKT9GdFtFWzFdXToiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIn1mdW5jdGlvbiBFZChwKXtmb3IodmFyIFQ9eTAocCksbT1bXSxFPTA7RTxULmxlbmd0aDtFKz03NiltLnB1c2goVC5zbGljZShFLEUrNzYpKTtyZXR1cm4gbS5qb2luKGBccgpgKStgXHIKYH1mdW5jdGlvbiBUZChwKXt2YXIgVD1wLnJlcGxhY2UoL1tceDAwLVx4MDhceDBCXHgwQ1x4MEUtXHgxRlx4N0UtXHhGRj1dL2csZnVuY3Rpb24oQil7dmFyIEg9Qi5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO3JldHVybiI9IisoSC5sZW5ndGg9PTE/IjAiK0g6SCl9KTtUPVQucmVwbGFjZSgvICQvbWcsIj0yMCIpLnJlcGxhY2UoL1x0JC9tZywiPTA5IiksVC5jaGFyQXQoMCk9PWAKYCYmKFQ9Ij0wRCIrVC5zbGljZSgxKSksVD1ULnJlcGxhY2UoL1xyKD8hXG4pL21nLCI9MEQiKS5yZXBsYWNlKC9cblxuL21nLGAKPTBBYCkucmVwbGFjZSgvKFteXHJcbl0pXG4vbWcsIiQxPTBBIik7Zm9yKHZhciBtPVtdLEU9VC5zcGxpdChgXHIKYCksaz0wO2s8RS5sZW5ndGg7KytrKXt2YXIgdz1FW2tdO2lmKHcubGVuZ3RoPT0wKXttLnB1c2goIiIpO2NvbnRpbnVlfWZvcih2YXIgTT0wO008dy5sZW5ndGg7KXt2YXIgWD03NixMPXcuc2xpY2UoTSxNK1gpO0wuY2hhckF0KFgtMSk9PSI9Ij9YLS06TC5jaGFyQXQoWC0yKT09Ij0iP1gtPTI6TC5jaGFyQXQoWC0zKT09Ij0iJiYoWC09MyksTD13LnNsaWNlKE0sTStYKSxNKz1YLE08dy5sZW5ndGgmJihMKz0iPSIpLG0ucHVzaChMKX19cmV0dXJuIG0uam9pbihgXHIKYCl9ZnVuY3Rpb24ga2QocCl7Zm9yKHZhciBUPVtdLG09MDttPHAubGVuZ3RoOysrbSl7Zm9yKHZhciBFPXBbbV07bTw9cC5sZW5ndGgmJkUuY2hhckF0KEUubGVuZ3RoLTEpPT0iPSI7KUU9RS5zbGljZSgwLEUubGVuZ3RoLTEpK3BbKyttXTtULnB1c2goRSl9Zm9yKHZhciBrPTA7azxULmxlbmd0aDsrK2spVFtrXT1UW2tdLnJlcGxhY2UoL1s9XVswLTlBLUZhLWZdezJ9L2csZnVuY3Rpb24odyl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQody5zbGljZSgxKSwxNikpfSk7cmV0dXJuIEVyKFQuam9pbihgXHIKYCkpfWZ1bmN0aW9uIHdkKHAsVCxtKXtmb3IodmFyIEU9IiIsaz0iIix3PSIiLE0sWD0wO1g8MTA7KytYKXt2YXIgTD1UW1hdO2lmKCFMfHxMLm1hdGNoKC9eXHMqJC8pKWJyZWFrO3ZhciBCPUwubWF0Y2goL14oLio/KTpccyooW15cc10uKikkLyk7aWYoQilzd2l0Y2goQlsxXS50b0xvd2VyQ2FzZSgpKXtjYXNlImNvbnRlbnQtbG9jYXRpb24iOkU9QlsyXS50cmltKCk7YnJlYWs7Y2FzZSJjb250ZW50LXR5cGUiOnc9QlsyXS50cmltKCk7YnJlYWs7Y2FzZSJjb250ZW50LXRyYW5zZmVyLWVuY29kaW5nIjprPUJbMl0udHJpbSgpO2JyZWFrfX1zd2l0Y2goKytYLGsudG9Mb3dlckNhc2UoKSl7Y2FzZSJiYXNlNjQiOk09RXIoZnIoVC5zbGljZShYKS5qb2luKCIiKSkpO2JyZWFrO2Nhc2UicXVvdGVkLXByaW50YWJsZSI6TT1rZChULnNsaWNlKFgpKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZyAiK2spfXZhciBIPVQwKHAsRS5zbGljZShtLmxlbmd0aCksTSx7dW5zYWZlOiEwfSk7dyYmKEguY3R5cGU9dyl9ZnVuY3Rpb24gQWQocCxUKXtpZihXKHAuc2xpY2UoMCwxMykpLnRvTG93ZXJDYXNlKCkhPSJtaW1lLXZlcnNpb246Iil0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIE1BRCBoZWFkZXIiKTt2YXIgbT1UJiZULnJvb3R8fCIiLEU9KGdlJiZCdWZmZXIuaXNCdWZmZXIocCk/cC50b1N0cmluZygiYmluYXJ5Iik6VyhwKSkuc3BsaXQoYFxyCmApLGs9MCx3PSIiO2ZvcihrPTA7azxFLmxlbmd0aDsrK2spaWYodz1FW2tdLCEhL15Db250ZW50LUxvY2F0aW9uOi9pLnRlc3QodykmJih3PXcuc2xpY2Uody5pbmRleE9mKCJmaWxlIikpLG18fChtPXcuc2xpY2UoMCx3Lmxhc3RJbmRleE9mKCIvIikrMSkpLHcuc2xpY2UoMCxtLmxlbmd0aCkhPW0pKWZvcig7bS5sZW5ndGg+MCYmKG09bS5zbGljZSgwLG0ubGVuZ3RoLTEpLG09bS5zbGljZSgwLG0ubGFzdEluZGV4T2YoIi8iKSsxKSx3LnNsaWNlKDAsbS5sZW5ndGgpIT1tKTspO3ZhciBNPShFWzFdfHwiIikubWF0Y2goL2JvdW5kYXJ5PSIoLio/KSIvKTtpZighTSl0aHJvdyBuZXcgRXJyb3IoIk1BRCBjYW5ub3QgZmluZCBib3VuZGFyeSIpO3ZhciBYPSItLSIrKE1bMV18fCIiKSxMPVtdLEI9W10sSD17RmlsZUluZGV4OkwsRnVsbFBhdGhzOkJ9O0EoSCk7dmFyIFksUT0wO2ZvcihrPTA7azxFLmxlbmd0aDsrK2spe3ZhciBzZT1FW2tdO3NlIT09WCYmc2UhPT1YKyItLSJ8fChRKysmJndkKEgsRS5zbGljZShZLGspLG0pLFk9ayl9cmV0dXJuIEh9ZnVuY3Rpb24gRmQocCxUKXt2YXIgbT1UfHx7fSxFPW0uYm91bmRhcnl8fCJTaGVldEpTIjtFPSItLS0tLS09IitFO2Zvcih2YXIgaz1bIk1JTUUtVmVyc2lvbjogMS4wIiwnQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvcmVsYXRlZDsgYm91bmRhcnk9IicrRS5zbGljZSgyKSsnIicsIiIsIiIsIiJdLHc9cC5GdWxsUGF0aHNbMF0sTT13LFg9cC5GaWxlSW5kZXhbMF0sTD0xO0w8cC5GdWxsUGF0aHMubGVuZ3RoOysrTClpZihNPXAuRnVsbFBhdGhzW0xdLnNsaWNlKHcubGVuZ3RoKSxYPXAuRmlsZUluZGV4W0xdLCEoIVguc2l6ZXx8IVguY29udGVudHx8TT09IgFTaDMzdEo1Iikpe009TS5yZXBsYWNlKC9bXHgwMC1ceDA4XHgwQlx4MENceDBFLVx4MUZceDdFLVx4RkZdL2csZnVuY3Rpb24oeGUpe3JldHVybiJfeCIreGUuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikrIl8ifSkucmVwbGFjZSgvW1x1MDA4MC1cdUZGRkZdL2csZnVuY3Rpb24oeGUpe3JldHVybiJfdSIreGUuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikrIl8ifSk7Zm9yKHZhciBCPVguY29udGVudCxIPWdlJiZCdWZmZXIuaXNCdWZmZXIoQik/Qi50b1N0cmluZygiYmluYXJ5Iik6VyhCKSxZPTAsUT1NYXRoLm1pbigxMDI0LEgubGVuZ3RoKSxzZT0wLFo9MDtaPD1ROysrWikoc2U9SC5jaGFyQ29kZUF0KFopKT49MzImJnNlPDEyOCYmKytZO3ZhciB0ZT1ZPj1RKjQvNTtrLnB1c2goRSksay5wdXNoKCJDb250ZW50LUxvY2F0aW9uOiAiKyhtLnJvb3R8fCJmaWxlOi8vL0M6L1NoZWV0SlMvIikrTSksay5wdXNoKCJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiAiKyh0ZT8icXVvdGVkLXByaW50YWJsZSI6ImJhc2U2NCIpKSxrLnB1c2goIkNvbnRlbnQtVHlwZTogIitfZChYLE0pKSxrLnB1c2goIiIpLGsucHVzaCh0ZT9UZChIKTpFZChIKSl9cmV0dXJuIGsucHVzaChFK2AtLVxyCmApLGsuam9pbihgXHIKYCl9ZnVuY3Rpb24gU2QocCl7dmFyIFQ9e307cmV0dXJuIEEoVCxwKSxUfWZ1bmN0aW9uIFQwKHAsVCxtLEUpe3ZhciBrPUUmJkUudW5zYWZlO2t8fEEocCk7dmFyIHc9IWsmJm1lLmZpbmQocCxUKTtpZighdyl7dmFyIE09cC5GdWxsUGF0aHNbMF07VC5zbGljZSgwLE0ubGVuZ3RoKT09TT9NPVQ6KE0uc2xpY2UoLTEpIT0iLyImJihNKz0iLyIpLE09KE0rVCkucmVwbGFjZSgiLy8iLCIvIikpLHc9e25hbWU6dChUKSx0eXBlOjJ9LHAuRmlsZUluZGV4LnB1c2godykscC5GdWxsUGF0aHMucHVzaChNKSxrfHxtZS51dGlscy5jZmJfZ2MocCl9cmV0dXJuIHcuY29udGVudD1tLHcuc2l6ZT1tP20ubGVuZ3RoOjAsRSYmKEUuQ0xTSUQmJih3LmNsc2lkPUUuQ0xTSUQpLEUubXQmJih3Lm10PUUubXQpLEUuY3QmJih3LmN0PUUuY3QpKSx3fWZ1bmN0aW9uIENkKHAsVCl7QShwKTt2YXIgbT1tZS5maW5kKHAsVCk7aWYobSl7Zm9yKHZhciBFPTA7RTxwLkZpbGVJbmRleC5sZW5ndGg7KytFKWlmKHAuRmlsZUluZGV4W0VdPT1tKXJldHVybiBwLkZpbGVJbmRleC5zcGxpY2UoRSwxKSxwLkZ1bGxQYXRocy5zcGxpY2UoRSwxKSwhMH1yZXR1cm4hMX1mdW5jdGlvbiB5ZChwLFQsbSl7QShwKTt2YXIgRT1tZS5maW5kKHAsVCk7aWYoRSl7Zm9yKHZhciBrPTA7azxwLkZpbGVJbmRleC5sZW5ndGg7KytrKWlmKHAuRmlsZUluZGV4W2tdPT1FKXJldHVybiBwLkZpbGVJbmRleFtrXS5uYW1lPXQobSkscC5GdWxsUGF0aHNba109bSwhMH1yZXR1cm4hMX1mdW5jdGlvbiBEZChwKXtEKHAsITApfXJldHVybiBhLmZpbmQ9RyxhLnJlYWQ9SSxhLnBhcnNlPWwsYS53cml0ZT1sZSxhLndyaXRlRmlsZT1GZSxhLnV0aWxzPXtjZmJfbmV3OlNkLGNmYl9hZGQ6VDAsY2ZiX2RlbDpDZCxjZmJfbW92OnlkLGNmYl9nYzpEZCxSZWFkU2hpZnQ6UmEsQ2hlY2tGaWVsZDpPbixwcmVwX2Jsb2I6JGUsYmNvbmNhdDpXcix1c2VfemxpYjpTLF9kZWZsYXRlUmF3OnZlLF9pbmZsYXRlUmF3OmZpLGNvbnN0czppZX0sYX0oKTtmdW5jdGlvbiBWaShlKXtpZih0eXBlb2YgRGVubzwidSIpcmV0dXJuIERlbm8ucmVhZEZpbGVTeW5jKGUpO2lmKHR5cGVvZiAkPCJ1IiYmdHlwZW9mIEZpbGU8InUiJiZ0eXBlb2YgRm9sZGVyPCJ1Iil0cnl7dmFyIGE9RmlsZShlKTthLm9wZW4oInIiKSxhLmVuY29kaW5nPSJiaW5hcnkiO3ZhciByPWEucmVhZCgpO3JldHVybiBhLmNsb3NlKCkscn1jYXRjaChuKXtpZighbi5tZXNzYWdlfHwhbi5tZXNzYWdlLm1hdGNoKC9vbnN0cnVjdC8pKXRocm93IG59dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgYWNjZXNzIGZpbGUgIitlKX1mdW5jdGlvbiBTcihlKXtmb3IodmFyIGE9T2JqZWN0LmtleXMoZSkscj1bXSxuPTA7bjxhLmxlbmd0aDsrK24pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsYVtuXSkmJnIucHVzaChhW25dKTtyZXR1cm4gcn1mdW5jdGlvbiBJdChlKXtmb3IodmFyIGE9W10scj1TcihlKSxuPTA7biE9PXIubGVuZ3RoOysrbilhW2VbcltuXV1dPXJbbl07cmV0dXJuIGF9dmFyIHN0PW5ldyBEYXRlKDE4OTksMTEsMzAsMCwwLDApO2Z1bmN0aW9uIHRyKGUsYSl7dmFyIHI9ZS5nZXRUaW1lKCksbj1zdC5nZXRUaW1lKCkrKGUuZ2V0VGltZXpvbmVPZmZzZXQoKS1zdC5nZXRUaW1lem9uZU9mZnNldCgpKSo2ZTQ7cmV0dXJuKHItbikvKDI0KjYwKjYwKjFlMyl9dmFyIGowPW5ldyBEYXRlLFdpPXN0LmdldFRpbWUoKSsoajAuZ2V0VGltZXpvbmVPZmZzZXQoKS1zdC5nZXRUaW1lem9uZU9mZnNldCgpKSo2ZTQsSjA9ajAuZ2V0VGltZXpvbmVPZmZzZXQoKTtmdW5jdGlvbiBpdChlKXt2YXIgYT1uZXcgRGF0ZTtyZXR1cm4gYS5zZXRUaW1lKGUqMjQqNjAqNjAqMWUzK1dpKSxhLmdldFRpbWV6b25lT2Zmc2V0KCkhPT1KMCYmYS5zZXRUaW1lKGEuZ2V0VGltZSgpKyhhLmdldFRpbWV6b25lT2Zmc2V0KCktSjApKjZlNCksYX1mdW5jdGlvbiBHaShlKXt2YXIgYT0wLHI9MCxuPSExLHQ9ZS5tYXRjaCgvUChbMC05XC5dK1kpPyhbMC05XC5dK00pPyhbMC05XC5dK0QpP1QoWzAtOVwuXStIKT8oWzAtOVwuXStNKT8oWzAtOVwuXStTKT8vKTtpZighdCl0aHJvdyBuZXcgRXJyb3IoInwiK2UrInwgaXMgbm90IGFuIElTTzg2MDEgRHVyYXRpb24iKTtmb3IodmFyIHM9MTtzIT10Lmxlbmd0aDsrK3MpaWYodFtzXSl7c3dpdGNoKHI9MSxzPjMmJihuPSEwKSx0W3NdLnNsaWNlKHRbc10ubGVuZ3RoLTEpKXtjYXNlIlkiOnRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgSVNPIER1cmF0aW9uIEZpZWxkOiAiK3Rbc10uc2xpY2UodFtzXS5sZW5ndGgtMSkpO2Nhc2UiRCI6cio9MjQ7Y2FzZSJIIjpyKj02MDtjYXNlIk0iOmlmKG4pcio9NjA7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIElTTyBEdXJhdGlvbiBGaWVsZDogTSIpfWErPXIqcGFyc2VJbnQodFtzXSwxMCl9cmV0dXJuIGF9dmFyIFowPW5ldyBEYXRlKCIyMDE3LTAyLTE5VDE5OjA2OjA5LjAwMFoiKSxxMD1pc05hTihaMC5nZXRGdWxsWWVhcigpKT9uZXcgRGF0ZSgiMi8xOS8xNyIpOlowLFhpPXEwLmdldEZ1bGxZZWFyKCk9PTIwMTc7ZnVuY3Rpb24gV2UoZSxhKXt2YXIgcj1uZXcgRGF0ZShlKTtpZihYaSlyZXR1cm4gYT4wP3Iuc2V0VGltZShyLmdldFRpbWUoKStyLmdldFRpbWV6b25lT2Zmc2V0KCkqNjAqMWUzKTphPDAmJnIuc2V0VGltZShyLmdldFRpbWUoKS1yLmdldFRpbWV6b25lT2Zmc2V0KCkqNjAqMWUzKSxyO2lmKGUgaW5zdGFuY2VvZiBEYXRlKXJldHVybiBlO2lmKHEwLmdldEZ1bGxZZWFyKCk9PTE5MTcmJiFpc05hTihyLmdldEZ1bGxZZWFyKCkpKXt2YXIgbj1yLmdldEZ1bGxZZWFyKCk7cmV0dXJuIGUuaW5kZXhPZigiIituKT4tMXx8ci5zZXRGdWxsWWVhcihyLmdldEZ1bGxZZWFyKCkrMTAwKSxyfXZhciB0PWUubWF0Y2goL1xkKy9nKXx8WyIyMDE3IiwiMiIsIjE5IiwiMCIsIjAiLCIwIl0scz1uZXcgRGF0ZSgrdFswXSwrdFsxXS0xLCt0WzJdLCt0WzNdfHwwLCt0WzRdfHwwLCt0WzVdfHwwKTtyZXR1cm4gZS5pbmRleE9mKCJaIik+LTEmJihzPW5ldyBEYXRlKHMuZ2V0VGltZSgpLXMuZ2V0VGltZXpvbmVPZmZzZXQoKSo2MCoxZTMpKSxzfWZ1bmN0aW9uIHJhKGUsYSl7aWYoZ2UmJkJ1ZmZlci5pc0J1ZmZlcihlKSl7aWYoYSl7aWYoZVswXT09MjU1JiZlWzFdPT0yNTQpcmV0dXJuIENhKGUuc2xpY2UoMikudG9TdHJpbmcoInV0ZjE2bGUiKSk7aWYoZVsxXT09MjU0JiZlWzJdPT0yNTUpcmV0dXJuIENhKFMwKGUuc2xpY2UoMikudG9TdHJpbmcoImJpbmFyeSIpKSl9cmV0dXJuIGUudG9TdHJpbmcoImJpbmFyeSIpfWlmKHR5cGVvZiBUZXh0RGVjb2RlcjwidSIpdHJ5e2lmKGEpe2lmKGVbMF09PTI1NSYmZVsxXT09MjU0KXJldHVybiBDYShuZXcgVGV4dERlY29kZXIoInV0Zi0xNmxlIikuZGVjb2RlKGUuc2xpY2UoMikpKTtpZihlWzBdPT0yNTQmJmVbMV09PTI1NSlyZXR1cm4gQ2EobmV3IFRleHREZWNvZGVyKCJ1dGYtMTZiZSIpLmRlY29kZShlLnNsaWNlKDIpKSl9dmFyIHI9eyLigqwiOiLCgCIsIuKAmiI6IsKCIizGkjoiwoMiLCLigJ4iOiLChCIsIuKApiI6IsKFIiwi4oCgIjoiwoYiLCLigKEiOiLChyIsIsuGIjoiwogiLCLigLAiOiLCiSIsxaA6IsKKIiwi4oC5IjoiwosiLMWSOiLCjCIsxb06IsKOIiwi4oCYIjoiwpEiLCLigJkiOiLCkiIsIuKAnCI6IsKTIiwi4oCdIjoiwpQiLCLigKIiOiLClSIsIuKAkyI6IsKWIiwi4oCUIjoiwpciLCLLnCI6IsKYIiwi4oSiIjoiwpkiLMWhOiLCmiIsIuKAuiI6IsKbIizFkzoiwpwiLMW+OiLCniIsxbg6IsKfIn07cmV0dXJuIEFycmF5LmlzQXJyYXkoZSkmJihlPW5ldyBVaW50OEFycmF5KGUpKSxuZXcgVGV4dERlY29kZXIoImxhdGluMSIpLmRlY29kZShlKS5yZXBsYWNlKC9b4oKs4oCaxpLigJ7igKbigKDigKHLhuKAsMWg4oC5xZLFveKAmOKAmeKAnOKAneKAouKAk+KAlMuc4oSixaHigLrFk8W+xbhdL2csZnVuY3Rpb24ocyl7cmV0dXJuIHJbc118fHN9KX1jYXRjaHt9Zm9yKHZhciBuPVtdLHQ9MDt0IT1lLmxlbmd0aDsrK3Qpbi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoZVt0XSkpO3JldHVybiBuLmpvaW4oIiIpfWZ1bmN0aW9uIFhlKGUpe2lmKHR5cGVvZiBKU09OPCJ1IiYmIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZSkpO2lmKHR5cGVvZiBlIT0ib2JqZWN0Inx8ZT09bnVsbClyZXR1cm4gZTtpZihlIGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gbmV3IERhdGUoZS5nZXRUaW1lKCkpO3ZhciBhPXt9O2Zvcih2YXIgciBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYoYVtyXT1YZShlW3JdKSk7cmV0dXJuIGF9ZnVuY3Rpb24gRGUoZSxhKXtmb3IodmFyIHI9IiI7ci5sZW5ndGg8YTspcis9ZTtyZXR1cm4gcn1mdW5jdGlvbiBrcihlKXt2YXIgYT1OdW1iZXIoZSk7aWYoIWlzTmFOKGEpKXJldHVybiBpc0Zpbml0ZShhKT9hOk5hTjtpZighL1xkLy50ZXN0KGUpKXJldHVybiBhO3ZhciByPTEsbj1lLnJlcGxhY2UoLyhbXGRdKSwoW1xkXSkvZywiJDEkMiIpLnJlcGxhY2UoL1skXS9nLCIiKS5yZXBsYWNlKC9bJV0vZyxmdW5jdGlvbigpe3JldHVybiByKj0xMDAsIiJ9KTtyZXR1cm4haXNOYU4oYT1OdW1iZXIobikpfHwobj1uLnJlcGxhY2UoL1soXSguKilbKV0vLGZ1bmN0aW9uKHQscyl7cmV0dXJuIHI9LXIsc30pLCFpc05hTihhPU51bWJlcihuKSkpP2EvcjphfXZhciAkaT1bImphbnVhcnkiLCJmZWJydWFyeSIsIm1hcmNoIiwiYXByaWwiLCJtYXkiLCJqdW5lIiwianVseSIsImF1Z3VzdCIsInNlcHRlbWJlciIsIm9jdG9iZXIiLCJub3ZlbWJlciIsImRlY2VtYmVyIl07ZnVuY3Rpb24gZGEoZSl7dmFyIGE9bmV3IERhdGUoZSkscj1uZXcgRGF0ZShOYU4pLG49YS5nZXRZZWFyKCksdD1hLmdldE1vbnRoKCkscz1hLmdldERhdGUoKTtpZihpc05hTihzKSlyZXR1cm4gcjt2YXIgaT1lLnRvTG93ZXJDYXNlKCk7aWYoaS5tYXRjaCgvamFufGZlYnxtYXJ8YXByfG1heXxqdW58anVsfGF1Z3xzZXB8b2N0fG5vdnxkZWMvKSl7aWYoaT1pLnJlcGxhY2UoL1teYS16XS9nLCIiKS5yZXBsYWNlKC8oW15hLXpdfF4pW2FwXW0/KFteYS16XXwkKS8sIiIpLGkubGVuZ3RoPjMmJiRpLmluZGV4T2YoaSk9PS0xKXJldHVybiByfWVsc2UgaWYoaS5tYXRjaCgvW2Etel0vKSlyZXR1cm4gcjtyZXR1cm4gbjwwfHxuPjgwOTk/cjoodD4wfHxzPjEpJiZuIT0xMDE/YTplLm1hdGNoKC9bXi0wLTk6LFwvXFxdLyk/cjphfXZhciB6aT1mdW5jdGlvbigpe3ZhciBlPSJhYmFjYWJhIi5zcGxpdCgvKDo/YikvaSkubGVuZ3RoPT01O3JldHVybiBmdW5jdGlvbihyLG4sdCl7aWYoZXx8dHlwZW9mIG49PSJzdHJpbmciKXJldHVybiByLnNwbGl0KG4pO2Zvcih2YXIgcz1yLnNwbGl0KG4pLGk9W3NbMF1dLGM9MTtjPHMubGVuZ3RoOysrYylpLnB1c2godCksaS5wdXNoKHNbY10pO3JldHVybiBpfX0oKTtmdW5jdGlvbiBRMChlKXtyZXR1cm4gZT9lLmNvbnRlbnQmJmUudHlwZT9yYShlLmNvbnRlbnQsITApOmUuZGF0YT9rYShlLmRhdGEpOmUuYXNOb2RlQnVmZmVyJiZnZT9rYShlLmFzTm9kZUJ1ZmZlcigpLnRvU3RyaW5nKCJiaW5hcnkiKSk6ZS5hc0JpbmFyeT9rYShlLmFzQmluYXJ5KCkpOmUuX2RhdGEmJmUuX2RhdGEuZ2V0Q29udGVudD9rYShyYShBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLl9kYXRhLmdldENvbnRlbnQoKSwwKSkpOm51bGw6bnVsbH1mdW5jdGlvbiBlbihlKXtpZighZSlyZXR1cm4gbnVsbDtpZihlLmRhdGEpcmV0dXJuIEYwKGUuZGF0YSk7aWYoZS5hc05vZGVCdWZmZXImJmdlKXJldHVybiBlLmFzTm9kZUJ1ZmZlcigpO2lmKGUuX2RhdGEmJmUuX2RhdGEuZ2V0Q29udGVudCl7dmFyIGE9ZS5fZGF0YS5nZXRDb250ZW50KCk7cmV0dXJuIHR5cGVvZiBhPT0ic3RyaW5nIj9GMChhKTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhKX1yZXR1cm4gZS5jb250ZW50JiZlLnR5cGU/ZS5jb250ZW50Om51bGx9ZnVuY3Rpb24gS2koZSl7cmV0dXJuIGUmJmUubmFtZS5zbGljZSgtNCk9PT0iLmJpbiI/ZW4oZSk6UTAoZSl9ZnVuY3Rpb24gZHIoZSxhKXtmb3IodmFyIHI9ZS5GdWxsUGF0aHN8fFNyKGUuZmlsZXMpLG49YS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1tcL10vZywiXFwiKSx0PW4ucmVwbGFjZSgvXFwvZywiLyIpLHM9MDtzPHIubGVuZ3RoOysrcyl7dmFyIGk9cltzXS5yZXBsYWNlKC9eUm9vdCBFbnRyeVtcL10vLCIiKS50b0xvd2VyQ2FzZSgpO2lmKG49PWl8fHQ9PWkpcmV0dXJuIGUuZmlsZXM/ZS5maWxlc1tyW3NdXTplLkZpbGVJbmRleFtzXX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBOdChlLGEpe3ZhciByPWRyKGUsYSk7aWYocj09bnVsbCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIGZpbGUgIithKyIgaW4gemlwIik7cmV0dXJuIHJ9ZnVuY3Rpb24gTGUoZSxhLHIpe2lmKCFyKXJldHVybiBLaShOdChlLGEpKTtpZighYSlyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIExlKGUsYSl9Y2F0Y2h7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIG9yKGUsYSxyKXtpZighcilyZXR1cm4gUTAoTnQoZSxhKSk7aWYoIWEpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBvcihlLGEpfWNhdGNoe3JldHVybiBudWxsfX1mdW5jdGlvbiBZaShlLGEscil7cmV0dXJuIGVuKE50KGUsYSkpfWZ1bmN0aW9uIHJuKGUpe2Zvcih2YXIgYT1lLkZ1bGxQYXRoc3x8U3IoZS5maWxlcykscj1bXSxuPTA7bjxhLmxlbmd0aDsrK24pYVtuXS5zbGljZSgtMSkhPSIvIiYmci5wdXNoKGFbbl0ucmVwbGFjZSgvXlJvb3QgRW50cnlbXC9dLywiIikpO3JldHVybiByLnNvcnQoKX1mdW5jdGlvbiBqaShlLGEscil7aWYoZS5GdWxsUGF0aHMpe2lmKHR5cGVvZiByPT0ic3RyaW5nIil7dmFyIG47cmV0dXJuIGdlP249SnIocik6bj1kaShyKSxtZS51dGlscy5jZmJfYWRkKGUsYSxuKX1tZS51dGlscy5jZmJfYWRkKGUsYSxyKX1lbHNlIGUuZmlsZShhLHIpfWZ1bmN0aW9uIGFuKGUsYSl7c3dpdGNoKGEudHlwZSl7Y2FzZSJiYXNlNjQiOnJldHVybiBtZS5yZWFkKGUse3R5cGU6ImJhc2U2NCJ9KTtjYXNlImJpbmFyeSI6cmV0dXJuIG1lLnJlYWQoZSx7dHlwZToiYmluYXJ5In0pO2Nhc2UiYnVmZmVyIjpjYXNlImFycmF5IjpyZXR1cm4gbWUucmVhZChlLHt0eXBlOiJidWZmZXIifSl9dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiK2EudHlwZSl9ZnVuY3Rpb24gU2EoZSxhKXtpZihlLmNoYXJBdCgwKT09Ii8iKXJldHVybiBlLnNsaWNlKDEpO3ZhciByPWEuc3BsaXQoIi8iKTthLnNsaWNlKC0xKSE9Ii8iJiZyLnBvcCgpO2Zvcih2YXIgbj1lLnNwbGl0KCIvIik7bi5sZW5ndGghPT0wOyl7dmFyIHQ9bi5zaGlmdCgpO3Q9PT0iLi4iP3IucG9wKCk6dCE9PSIuIiYmci5wdXNoKHQpfXJldHVybiByLmpvaW4oIi8iKX12YXIgdG49YDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz5ccgpgLEppPS8oW14iXHM/PlwvXSspXHMqPVxzKigoPzoiKShbXiJdKikoPzoiKXwoPzonKShbXiddKikoPzonKXwoW14nIj5cc10rKSkvZyxubj0vPFtcL1w/XT9bYS16QS1aMC05Ol8tXSsoPzpccytbXiJccz8+XC9dK1xzKj1ccyooPzoiW14iXSoifCdbXiddKid8W14nIj5ccz1dKykpKlxzKltcL1w/XT8+L21nLFppPS88W14+XSo+L2csS2U9dG4ubWF0Y2gobm4pP25uOlppLHFpPS88XHcqOi8sUWk9LzwoXC8/KVx3KzovO2Z1bmN0aW9uIG9lKGUsYSxyKXtmb3IodmFyIG49e30sdD0wLHM9MDt0IT09ZS5sZW5ndGgmJiEoKHM9ZS5jaGFyQ29kZUF0KHQpKT09PTMyfHxzPT09MTB8fHM9PT0xMyk7Kyt0KTtpZihhfHwoblswXT1lLnNsaWNlKDAsdCkpLHQ9PT1lLmxlbmd0aClyZXR1cm4gbjt2YXIgaT1lLm1hdGNoKEppKSxjPTAsZj0iIixvPTAsbD0iIixoPSIiLHg9MTtpZihpKWZvcihvPTA7byE9aS5sZW5ndGg7KytvKXtmb3IoaD1pW29dLHM9MDtzIT1oLmxlbmd0aCYmaC5jaGFyQ29kZUF0KHMpIT09NjE7KytzKTtmb3IobD1oLnNsaWNlKDAscykudHJpbSgpO2guY2hhckNvZGVBdChzKzEpPT0zMjspKytzO2Zvcih4PSh0PWguY2hhckNvZGVBdChzKzEpKT09MzR8fHQ9PTM5PzE6MCxmPWguc2xpY2UocysxK3gsaC5sZW5ndGgteCksYz0wO2MhPWwubGVuZ3RoJiZsLmNoYXJDb2RlQXQoYykhPT01ODsrK2MpO2lmKGM9PT1sLmxlbmd0aClsLmluZGV4T2YoIl8iKT4wJiYobD1sLnNsaWNlKDAsbC5pbmRleE9mKCJfIikpKSxuW2xdPWYsbltsLnRvTG93ZXJDYXNlKCldPWY7ZWxzZXt2YXIgZD0oYz09PTUmJmwuc2xpY2UoMCw1KT09PSJ4bWxucyI/InhtbG5zIjoiIikrbC5zbGljZShjKzEpO2lmKG5bZF0mJmwuc2xpY2UoYy0zLGMpPT0iZXh0Iiljb250aW51ZTtuW2RdPWYsbltkLnRvTG93ZXJDYXNlKCldPWZ9fXJldHVybiBufWZ1bmN0aW9uIENyKGUpe3JldHVybiBlLnJlcGxhY2UoUWksIjwkMSIpfXZhciBzbj17IiZxdW90OyI6JyInLCImYXBvczsiOiInIiwiJmd0OyI6Ij4iLCImbHQ7IjoiPCIsIiZhbXA7IjoiJiJ9LGVjPUl0KHNuKSxFZT1mdW5jdGlvbigpe3ZhciBlPS8mKD86cXVvdHxhcG9zfGd0fGx0fGFtcHwjeD8oW1xkYS1mQS1GXSspKTsvaWcsYT0vX3goW1xkYS1mQS1GXXs0fSlfL2lnO3JldHVybiBmdW5jdGlvbiByKG4pe3ZhciB0PW4rIiIscz10LmluZGV4T2YoIjwhW0NEQVRBWyIpO2lmKHM9PS0xKXJldHVybiB0LnJlcGxhY2UoZSxmdW5jdGlvbihjLGYpe3JldHVybiBzbltjXXx8U3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChmLGMuaW5kZXhPZigieCIpPi0xPzE2OjEwKSl8fGN9KS5yZXBsYWNlKGEsZnVuY3Rpb24oYyxmKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChmLDE2KSl9KTt2YXIgaT10LmluZGV4T2YoIl1dPiIpO3JldHVybiByKHQuc2xpY2UoMCxzKSkrdC5zbGljZShzKzksaSkrcih0LnNsaWNlKGkrMykpfX0oKSxyYz0vWyY8PiciXS9nLGFjPS9bXHUwMDAwLVx1MDAxZl0vZztmdW5jdGlvbiBQdChlKXt2YXIgYT1lKyIiO3JldHVybiBhLnJlcGxhY2UocmMsZnVuY3Rpb24ocil7cmV0dXJuIGVjW3JdfSkucmVwbGFjZSgvXG4vZywiPGJyLz4iKS5yZXBsYWNlKGFjLGZ1bmN0aW9uKHIpe3JldHVybiImI3giKygiMDAwIityLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtNCkrIjsifSl9dmFyIGNuPWZ1bmN0aW9uKCl7dmFyIGU9LyYjKFxkKyk7L2c7ZnVuY3Rpb24gYShyLG4pe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KG4sMTApKX1yZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG4ucmVwbGFjZShlLGEpfX0oKTtmdW5jdGlvbiBTZShlKXtzd2l0Y2goZSl7Y2FzZSAxOmNhc2UhMDpjYXNlIjEiOmNhc2UidHJ1ZSI6Y2FzZSJUUlVFIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBMdChlKXtmb3IodmFyIGE9IiIscj0wLG49MCx0PTAscz0wLGk9MCxjPTA7cjxlLmxlbmd0aDspe2lmKG49ZS5jaGFyQ29kZUF0KHIrKyksbjwxMjgpe2ErPVN0cmluZy5mcm9tQ2hhckNvZGUobik7Y29udGludWV9aWYodD1lLmNoYXJDb2RlQXQocisrKSxuPjE5MSYmbjwyMjQpe2k9KG4mMzEpPDw2LGl8PXQmNjMsYSs9U3RyaW5nLmZyb21DaGFyQ29kZShpKTtjb250aW51ZX1pZihzPWUuY2hhckNvZGVBdChyKyspLG48MjQwKXthKz1TdHJpbmcuZnJvbUNoYXJDb2RlKChuJjE1KTw8MTJ8KHQmNjMpPDw2fHMmNjMpO2NvbnRpbnVlfWk9ZS5jaGFyQ29kZUF0KHIrKyksYz0oKG4mNyk8PDE4fCh0JjYzKTw8MTJ8KHMmNjMpPDw2fGkmNjMpLTY1NTM2LGErPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTYrKGM+Pj4xMCYxMDIzKSksYSs9U3RyaW5nLmZyb21DaGFyQ29kZSg1NjMyMCsoYyYxMDIzKSl9cmV0dXJuIGF9ZnVuY3Rpb24gZm4oZSl7dmFyIGE9VnIoMiplLmxlbmd0aCkscixuLHQ9MSxzPTAsaT0wLGM7Zm9yKG49MDtuPGUubGVuZ3RoO24rPXQpdD0xLChjPWUuY2hhckNvZGVBdChuKSk8MTI4P3I9YzpjPDIyND8ocj0oYyYzMSkqNjQrKGUuY2hhckNvZGVBdChuKzEpJjYzKSx0PTIpOmM8MjQwPyhyPShjJjE1KSo0MDk2KyhlLmNoYXJDb2RlQXQobisxKSY2MykqNjQrKGUuY2hhckNvZGVBdChuKzIpJjYzKSx0PTMpOih0PTQscj0oYyY3KSoyNjIxNDQrKGUuY2hhckNvZGVBdChuKzEpJjYzKSo0MDk2KyhlLmNoYXJDb2RlQXQobisyKSY2MykqNjQrKGUuY2hhckNvZGVBdChuKzMpJjYzKSxyLT02NTUzNixpPTU1Mjk2KyhyPj4+MTAmMTAyMykscj01NjMyMCsociYxMDIzKSksaSE9PTAmJihhW3MrK109aSYyNTUsYVtzKytdPWk+Pj44LGk9MCksYVtzKytdPXIlMjU2LGFbcysrXT1yPj4+ODtyZXR1cm4gYS5zbGljZSgwLHMpLnRvU3RyaW5nKCJ1Y3MyIil9ZnVuY3Rpb24gb24oZSl7cmV0dXJuIEpyKGUsImJpbmFyeSIpLnRvU3RyaW5nKCJ1dGY4Iil9dmFyIGN0PSJmb28gYmFyIGJhesOiwpjCg8Owwp/CjcKjIixBZT1nZSYmKG9uKGN0KT09THQoY3QpJiZvbnx8Zm4oY3QpPT1MdChjdCkmJmZuKXx8THQsQ2E9Z2U/ZnVuY3Rpb24oZSl7cmV0dXJuIEpyKGUsInV0ZjgiKS50b1N0cmluZygiYmluYXJ5Iil9OmZ1bmN0aW9uKGUpe2Zvcih2YXIgYT1bXSxyPTAsbj0wLHQ9MDtyPGUubGVuZ3RoOylzd2l0Y2gobj1lLmNoYXJDb2RlQXQocisrKSwhMCl7Y2FzZSBuPDEyODphLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShuKSk7YnJlYWs7Y2FzZSBuPDIwNDg6YS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMTkyKyhuPj42KSkpLGEucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDEyOCsobiY2MykpKTticmVhaztjYXNlKG4+PTU1Mjk2JiZuPDU3MzQ0KTpuLT01NTI5Nix0PWUuY2hhckNvZGVBdChyKyspLTU2MzIwKyhuPDwxMCksYS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMjQwKyh0Pj4xOCY3KSkpLGEucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDE0NCsodD4+MTImNjMpKSksYS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMTI4Kyh0Pj42JjYzKSkpLGEucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDEyOCsodCY2MykpKTticmVhaztkZWZhdWx0OmEucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDIyNCsobj4+MTIpKSksYS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMTI4KyhuPj42JjYzKSkpLGEucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDEyOCsobiY2MykpKX1yZXR1cm4gYS5qb2luKCIiKX0seWE9ZnVuY3Rpb24oKXt2YXIgZT17fTtyZXR1cm4gZnVuY3Rpb24ocixuKXt2YXIgdD1yKyJ8Iisobnx8IiIpO3JldHVybiBlW3RdP2VbdF06ZVt0XT1uZXcgUmVnRXhwKCI8KD86XFx3KzopPyIrcisnKD86IHhtbDpzcGFjZT0icHJlc2VydmUiKT8oPzpbXj5dKik+KFtcXHNcXFNdKj8pPC8oPzpcXHcrOik/JytyKyI+IixufHwiIil9fSgpLGxuPWZ1bmN0aW9uKCl7dmFyIGU9W1sibmJzcCIsIiAiXSxbIm1pZGRvdCIsIsK3Il0sWyJxdW90IiwnIiddLFsiYXBvcyIsIiciXSxbImd0IiwiPiJdLFsibHQiLCI8Il0sWyJhbXAiLCImIl1dLm1hcChmdW5jdGlvbihhKXtyZXR1cm5bbmV3IFJlZ0V4cCgiJiIrYVswXSsiOyIsImlnIiksYVsxXV19KTtyZXR1cm4gZnVuY3Rpb24ocil7Zm9yKHZhciBuPXIucmVwbGFjZSgvXltcdFxuXHIgXSsvLCIiKS5yZXBsYWNlKC9bXHRcblxyIF0rJC8sIiIpLnJlcGxhY2UoLz5ccysvZywiPiIpLnJlcGxhY2UoL1xzKzwvZywiPCIpLnJlcGxhY2UoL1tcdFxuXHIgXSsvZywiICIpLnJlcGxhY2UoLzxccypbYkJdW3JSXVxzKlwvPz4vZyxgCmApLnJlcGxhY2UoLzxbXj5dKj4vZywiIiksdD0wO3Q8ZS5sZW5ndGg7Kyt0KW49bi5yZXBsYWNlKGVbdF1bMF0sZVt0XVsxXSk7cmV0dXJuIG59fSgpLHRjPWZ1bmN0aW9uKCl7dmFyIGU9e307cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiBlW3JdIT09dm9pZCAwP2Vbcl06ZVtyXT1uZXcgUmVnRXhwKCI8KD86dnQ6KT8iK3IrIj4oW1xcc1xcU10qPyk8Lyg/OnZ0Oik/IityKyI+IiwiZyIpfX0oKSxuYz0vPFwvPyg/OnZ0Oik/dmFyaWFudD4vZyxzYz0vPCg/OnZ0OikoW14+XSopPihbXHNcU10qKTwvO2Z1bmN0aW9uIGhuKGUsYSl7dmFyIHI9b2UoZSksbj1lLm1hdGNoKHRjKHIuYmFzZVR5cGUpKXx8W10sdD1bXTtpZihuLmxlbmd0aCE9ci5zaXplKXtpZihhLldURil0aHJvdyBuZXcgRXJyb3IoInVuZXhwZWN0ZWQgdmVjdG9yIGxlbmd0aCAiK24ubGVuZ3RoKyIgIT0gIityLnNpemUpO3JldHVybiB0fXJldHVybiBuLmZvckVhY2goZnVuY3Rpb24ocyl7dmFyIGk9cy5yZXBsYWNlKG5jLCIiKS5tYXRjaChzYyk7aSYmdC5wdXNoKHt2OkFlKGlbMl0pLHQ6aVsxXX0pfSksdH12YXIgaWM9LyheXHN8XHMkfFxuKS87ZnVuY3Rpb24gY2MoZSl7cmV0dXJuIFNyKGUpLm1hcChmdW5jdGlvbihhKXtyZXR1cm4iICIrYSsnPSInK2VbYV0rJyInfSkuam9pbigiIil9ZnVuY3Rpb24gZmMoZSxhLHIpe3JldHVybiI8IitlKyhyIT1udWxsP2NjKHIpOiIiKSsoYSE9bnVsbD8oYS5tYXRjaChpYyk/JyB4bWw6c3BhY2U9InByZXNlcnZlIic6IiIpKyI+IithKyI8LyIrZToiLyIpKyI+In1mdW5jdGlvbiBNdChlKXtpZihnZSYmQnVmZmVyLmlzQnVmZmVyKGUpKXJldHVybiBlLnRvU3RyaW5nKCJ1dGY4Iik7aWYodHlwZW9mIGU9PSJzdHJpbmciKXJldHVybiBlO2lmKHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcmV0dXJuIEFlKFpyKHl0KGUpKSk7dGhyb3cgbmV3IEVycm9yKCJCYWQgaW5wdXQgZm9ybWF0OiBleHBlY3RlZCBCdWZmZXIgb3Igc3RyaW5nIil9dmFyIERhPS88KFwvPykoW15ccz8+PCFcLzpdKjp8KShbXlxzPzw+OlwvXSspKD86W1xzPzpcL11bXj5dKik/Pi9tZyxvYz17Q1Q6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvY29udGVudC10eXBlcyJ9LGxjPVsiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIiwiaHR0cDovL3B1cmwub2NsYy5vcmcvb294bWwvc3ByZWFkc2hlZXRtbC9tYWluIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvZXhjZWwvMjAwNi9tYWluIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvZXhjZWwvMjAwNi8yIl07ZnVuY3Rpb24gaGMoZSxhKXtmb3IodmFyIHI9MS0yKihlW2ErN10+Pj43KSxuPSgoZVthKzddJjEyNyk8PDQpKyhlW2ErNl0+Pj40JjE1KSx0PWVbYSs2XSYxNSxzPTU7cz49MDstLXMpdD10KjI1NitlW2Erc107cmV0dXJuIG49PTIwNDc/dD09MD9yKigxLzApOk5hTjoobj09MD9uPS0xMDIyOihuLT0xMDIzLHQrPU1hdGgucG93KDIsNTIpKSxyKk1hdGgucG93KDIsbi01MikqdCl9ZnVuY3Rpb24gdWMoZSxhLHIpe3ZhciBuPShhPDB8fDEvYT09LTEvMD8xOjApPDw3LHQ9MCxzPTAsaT1uPy1hOmE7aXNGaW5pdGUoaSk/aT09MD90PXM9MDoodD1NYXRoLmZsb29yKE1hdGgubG9nKGkpL01hdGguTE4yKSxzPWkqTWF0aC5wb3coMiw1Mi10KSx0PD0tMTAyMyYmKCFpc0Zpbml0ZShzKXx8czxNYXRoLnBvdygyLDUyKSk/dD0tMTAyMjoocy09TWF0aC5wb3coMiw1MiksdCs9MTAyMykpOih0PTIwNDcscz1pc05hTihhKT8yNjk4NTowKTtmb3IodmFyIGM9MDtjPD01OysrYyxzLz0yNTYpZVtyK2NdPXMmMjU1O2Vbcis2XT0odCYxNSk8PDR8cyYxNSxlW3IrN109dD4+NHxufXZhciB1bj1mdW5jdGlvbihlKXtmb3IodmFyIGE9W10scj0xMDI0MCxuPTA7bjxlWzBdLmxlbmd0aDsrK24paWYoZVswXVtuXSlmb3IodmFyIHQ9MCxzPWVbMF1bbl0ubGVuZ3RoO3Q8czt0Kz1yKWEucHVzaC5hcHBseShhLGVbMF1bbl0uc2xpY2UodCx0K3IpKTtyZXR1cm4gYX0seG49Z2U/ZnVuY3Rpb24oZSl7cmV0dXJuIGVbMF0ubGVuZ3RoPjAmJkJ1ZmZlci5pc0J1ZmZlcihlWzBdWzBdKT9CdWZmZXIuY29uY2F0KGVbMF0ubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBCdWZmZXIuaXNCdWZmZXIoYSk/YTpKcihhKX0pKTp1bihlKX06dW4sZG49ZnVuY3Rpb24oZSxhLHIpe2Zvcih2YXIgbj1bXSx0PWE7dDxyO3QrPTIpbi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoTnIoZSx0KSkpO3JldHVybiBuLmpvaW4oIiIpLnJlcGxhY2UocnIsIiIpfSxCdD1nZT9mdW5jdGlvbihlLGEscil7cmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcihlKT9lLnRvU3RyaW5nKCJ1dGYxNmxlIixhLHIpLnJlcGxhY2UocnIsIiIpOmRuKGUsYSxyKX06ZG4sdm49ZnVuY3Rpb24oZSxhLHIpe2Zvcih2YXIgbj1bXSx0PWE7dDxhK3I7Kyt0KW4ucHVzaCgoIjAiK2VbdF0udG9TdHJpbmcoMTYpKS5zbGljZSgtMikpO3JldHVybiBuLmpvaW4oIiIpfSxwbj1nZT9mdW5jdGlvbihlLGEscil7cmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcihlKT9lLnRvU3RyaW5nKCJoZXgiLGEsYStyKTp2bihlLGEscil9OnZuLGduPWZ1bmN0aW9uKGUsYSxyKXtmb3IodmFyIG49W10sdD1hO3Q8cjt0Kyspbi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUodmEoZSx0KSkpO3JldHVybiBuLmpvaW4oIiIpfSxPYT1nZT9mdW5jdGlvbihhLHIsbil7cmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcihhKT9hLnRvU3RyaW5nKCJ1dGY4IixyLG4pOmduKGEscixuKX06Z24sbW49ZnVuY3Rpb24oZSxhKXt2YXIgcj1scihlLGEpO3JldHVybiByPjA/T2EoZSxhKzQsYSs0K3ItMSk6IiJ9LF9uPW1uLEVuPWZ1bmN0aW9uKGUsYSl7dmFyIHI9bHIoZSxhKTtyZXR1cm4gcj4wP09hKGUsYSs0LGErNCtyLTEpOiIifSxUbj1Fbixrbj1mdW5jdGlvbihlLGEpe3ZhciByPTIqbHIoZSxhKTtyZXR1cm4gcj4wP09hKGUsYSs0LGErNCtyLTEpOiIifSx3bj1rbixBbj1mdW5jdGlvbihhLHIpe3ZhciBuPWxyKGEscik7cmV0dXJuIG4+MD9CdChhLHIrNCxyKzQrbik6IiJ9LEZuPUFuLFNuPWZ1bmN0aW9uKGUsYSl7dmFyIHI9bHIoZSxhKTtyZXR1cm4gcj4wP09hKGUsYSs0LGErNCtyKToiIn0sQ249U24seW49ZnVuY3Rpb24oZSxhKXtyZXR1cm4gaGMoZSxhKX0sZnQ9eW4sRG49ZnVuY3Rpb24oYSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoYSl8fHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmYSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl9O2dlJiYoX249ZnVuY3Rpb24oYSxyKXtpZighQnVmZmVyLmlzQnVmZmVyKGEpKXJldHVybiBtbihhLHIpO3ZhciBuPWEucmVhZFVJbnQzMkxFKHIpO3JldHVybiBuPjA/YS50b1N0cmluZygidXRmOCIscis0LHIrNCtuLTEpOiIifSxUbj1mdW5jdGlvbihhLHIpe2lmKCFCdWZmZXIuaXNCdWZmZXIoYSkpcmV0dXJuIEVuKGEscik7dmFyIG49YS5yZWFkVUludDMyTEUocik7cmV0dXJuIG4+MD9hLnRvU3RyaW5nKCJ1dGY4IixyKzQscis0K24tMSk6IiJ9LHduPWZ1bmN0aW9uKGEscil7aWYoIUJ1ZmZlci5pc0J1ZmZlcihhKSlyZXR1cm4ga24oYSxyKTt2YXIgbj0yKmEucmVhZFVJbnQzMkxFKHIpO3JldHVybiBhLnRvU3RyaW5nKCJ1dGYxNmxlIixyKzQscis0K24tMSl9LEZuPWZ1bmN0aW9uKGEscil7aWYoIUJ1ZmZlci5pc0J1ZmZlcihhKSlyZXR1cm4gQW4oYSxyKTt2YXIgbj1hLnJlYWRVSW50MzJMRShyKTtyZXR1cm4gYS50b1N0cmluZygidXRmMTZsZSIscis0LHIrNCtuKX0sQ249ZnVuY3Rpb24oYSxyKXtpZighQnVmZmVyLmlzQnVmZmVyKGEpKXJldHVybiBTbihhLHIpO3ZhciBuPWEucmVhZFVJbnQzMkxFKHIpO3JldHVybiBhLnRvU3RyaW5nKCJ1dGY4IixyKzQscis0K24pfSxmdD1mdW5jdGlvbihhLHIpe3JldHVybiBCdWZmZXIuaXNCdWZmZXIoYSk/YS5yZWFkRG91YmxlTEUocik6eW4oYSxyKX0sRG49ZnVuY3Rpb24oYSl7cmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcihhKXx8QXJyYXkuaXNBcnJheShhKXx8dHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZhIGluc3RhbmNlb2YgVWludDhBcnJheX0pO3ZhciB2YT1mdW5jdGlvbihlLGEpe3JldHVybiBlW2FdfSxOcj1mdW5jdGlvbihlLGEpe3JldHVybiBlW2ErMV0qMjU2K2VbYV19LHhjPWZ1bmN0aW9uKGUsYSl7dmFyIHI9ZVthKzFdKjI1NitlW2FdO3JldHVybiByPDMyNzY4P3I6KDY1NTM1LXIrMSkqLTF9LGxyPWZ1bmN0aW9uKGUsYSl7cmV0dXJuIGVbYSszXSooMTw8MjQpKyhlW2ErMl08PDE2KSsoZVthKzFdPDw4KStlW2FdfSxhYT1mdW5jdGlvbihlLGEpe3JldHVybiBlW2ErM108PDI0fGVbYSsyXTw8MTZ8ZVthKzFdPDw4fGVbYV19LGRjPWZ1bmN0aW9uKGUsYSl7cmV0dXJuIGVbYV08PDI0fGVbYSsxXTw8MTZ8ZVthKzJdPDw4fGVbYSszXX07ZnVuY3Rpb24gUmEoZSxhKXt2YXIgcj0iIixuLHQscz1bXSxpLGMsZixvO3N3aXRjaChhKXtjYXNlImRiY3MiOmlmKG89dGhpcy5sLGdlJiZCdWZmZXIuaXNCdWZmZXIodGhpcykpcj10aGlzLnNsaWNlKHRoaXMubCx0aGlzLmwrMiplKS50b1N0cmluZygidXRmMTZsZSIpO2Vsc2UgZm9yKGY9MDtmPGU7KytmKXIrPVN0cmluZy5mcm9tQ2hhckNvZGUoTnIodGhpcyxvKSksbys9MjtlKj0yO2JyZWFrO2Nhc2UidXRmOCI6cj1PYSh0aGlzLHRoaXMubCx0aGlzLmwrZSk7YnJlYWs7Y2FzZSJ1dGYxNmxlIjplKj0yLHI9QnQodGhpcyx0aGlzLmwsdGhpcy5sK2UpO2JyZWFrO2Nhc2Uid3N0ciI6cmV0dXJuIFJhLmNhbGwodGhpcyxlLCJkYmNzIik7Y2FzZSJscHN0ci1hbnNpIjpyPV9uKHRoaXMsdGhpcy5sKSxlPTQrbHIodGhpcyx0aGlzLmwpO2JyZWFrO2Nhc2UibHBzdHItY3AiOnI9VG4odGhpcyx0aGlzLmwpLGU9NCtscih0aGlzLHRoaXMubCk7YnJlYWs7Y2FzZSJscHdzdHIiOnI9d24odGhpcyx0aGlzLmwpLGU9NCsyKmxyKHRoaXMsdGhpcy5sKTticmVhaztjYXNlImxwcDQiOmU9NCtscih0aGlzLHRoaXMubCkscj1Gbih0aGlzLHRoaXMubCksZSYyJiYoZSs9Mik7YnJlYWs7Y2FzZSI4bHBwNCI6ZT00K2xyKHRoaXMsdGhpcy5sKSxyPUNuKHRoaXMsdGhpcy5sKSxlJjMmJihlKz00LShlJjMpKTticmVhaztjYXNlImNzdHIiOmZvcihlPTAscj0iIjsoaT12YSh0aGlzLHRoaXMubCtlKyspKSE9PTA7KXMucHVzaChydChpKSk7cj1zLmpvaW4oIiIpO2JyZWFrO2Nhc2UiX3dzdHIiOmZvcihlPTAscj0iIjsoaT1Ocih0aGlzLHRoaXMubCtlKSkhPT0wOylzLnB1c2gocnQoaSkpLGUrPTI7ZSs9MixyPXMuam9pbigiIik7YnJlYWs7Y2FzZSJkYmNzLWNvbnQiOmZvcihyPSIiLG89dGhpcy5sLGY9MDtmPGU7KytmKXtpZih0aGlzLmxlbnMmJnRoaXMubGVucy5pbmRleE9mKG8pIT09LTEpcmV0dXJuIGk9dmEodGhpcyxvKSx0aGlzLmw9bysxLGM9UmEuY2FsbCh0aGlzLGUtZixpPyJkYmNzLWNvbnQiOiJzYmNzLWNvbnQiKSxzLmpvaW4oIiIpK2M7cy5wdXNoKHJ0KE5yKHRoaXMsbykpKSxvKz0yfXI9cy5qb2luKCIiKSxlKj0yO2JyZWFrO2Nhc2UiY3BzdHIiOmNhc2Uic2Jjcy1jb250Ijpmb3Iocj0iIixvPXRoaXMubCxmPTA7ZiE9ZTsrK2Ype2lmKHRoaXMubGVucyYmdGhpcy5sZW5zLmluZGV4T2YobykhPT0tMSlyZXR1cm4gaT12YSh0aGlzLG8pLHRoaXMubD1vKzEsYz1SYS5jYWxsKHRoaXMsZS1mLGk/ImRiY3MtY29udCI6InNiY3MtY29udCIpLHMuam9pbigiIikrYztzLnB1c2gocnQodmEodGhpcyxvKSkpLG8rPTF9cj1zLmpvaW4oIiIpO2JyZWFrO2RlZmF1bHQ6c3dpdGNoKGUpe2Nhc2UgMTpyZXR1cm4gbj12YSh0aGlzLHRoaXMubCksdGhpcy5sKyssbjtjYXNlIDI6cmV0dXJuIG49KGE9PT0iaSI/eGM6TnIpKHRoaXMsdGhpcy5sKSx0aGlzLmwrPTIsbjtjYXNlIDQ6Y2FzZS00OnJldHVybiBhPT09ImkifHwhKHRoaXNbdGhpcy5sKzNdJjEyOCk/KG49KGU+MD9hYTpkYykodGhpcyx0aGlzLmwpLHRoaXMubCs9NCxuKToodD1scih0aGlzLHRoaXMubCksdGhpcy5sKz00LHQpO2Nhc2UgODpjYXNlLTg6aWYoYT09PSJmIilyZXR1cm4gZT09OD90PWZ0KHRoaXMsdGhpcy5sKTp0PWZ0KFt0aGlzW3RoaXMubCs3XSx0aGlzW3RoaXMubCs2XSx0aGlzW3RoaXMubCs1XSx0aGlzW3RoaXMubCs0XSx0aGlzW3RoaXMubCszXSx0aGlzW3RoaXMubCsyXSx0aGlzW3RoaXMubCsxXSx0aGlzW3RoaXMubCswXV0sMCksdGhpcy5sKz04LHQ7ZT04O2Nhc2UgMTY6cj1wbih0aGlzLHRoaXMubCxlKTticmVha319cmV0dXJuIHRoaXMubCs9ZSxyfXZhciB2Yz1mdW5jdGlvbihlLGEscil7ZVtyXT1hJjI1NSxlW3IrMV09YT4+PjgmMjU1LGVbcisyXT1hPj4+MTYmMjU1LGVbciszXT1hPj4+MjQmMjU1fSxwYz1mdW5jdGlvbihlLGEscil7ZVtyXT1hJjI1NSxlW3IrMV09YT4+OCYyNTUsZVtyKzJdPWE+PjE2JjI1NSxlW3IrM109YT4+MjQmMjU1fSxnYz1mdW5jdGlvbihlLGEscil7ZVtyXT1hJjI1NSxlW3IrMV09YT4+PjgmMjU1fTtmdW5jdGlvbiBtYyhlLGEscil7dmFyIG49MCx0PTA7aWYocj09PSJkYmNzIil7Zm9yKHQ9MDt0IT1hLmxlbmd0aDsrK3QpZ2ModGhpcyxhLmNoYXJDb2RlQXQodCksdGhpcy5sKzIqdCk7bj0yKmEubGVuZ3RofWVsc2UgaWYocj09PSJzYmNzIil7Zm9yKGE9YS5yZXBsYWNlKC9bXlx4MDAtXHg3Rl0vZywiXyIpLHQ9MDt0IT1hLmxlbmd0aDsrK3QpdGhpc1t0aGlzLmwrdF09YS5jaGFyQ29kZUF0KHQpJjI1NTtuPWEubGVuZ3RofWVsc2UgaWYocj09PSJoZXgiKXtmb3IoO3Q8ZTsrK3QpdGhpc1t0aGlzLmwrK109cGFyc2VJbnQoYS5zbGljZSgyKnQsMip0KzIpLDE2KXx8MDtyZXR1cm4gdGhpc31lbHNlIGlmKHI9PT0idXRmMTZsZSIpe3ZhciBzPU1hdGgubWluKHRoaXMubCtlLHRoaXMubGVuZ3RoKTtmb3IodD0wO3Q8TWF0aC5taW4oYS5sZW5ndGgsZSk7Kyt0KXt2YXIgaT1hLmNoYXJDb2RlQXQodCk7dGhpc1t0aGlzLmwrK109aSYyNTUsdGhpc1t0aGlzLmwrK109aT4+OH1mb3IoO3RoaXMubDxzOyl0aGlzW3RoaXMubCsrXT0wO3JldHVybiB0aGlzfWVsc2Ugc3dpdGNoKGUpe2Nhc2UgMTpuPTEsdGhpc1t0aGlzLmxdPWEmMjU1O2JyZWFrO2Nhc2UgMjpuPTIsdGhpc1t0aGlzLmxdPWEmMjU1LGE+Pj49OCx0aGlzW3RoaXMubCsxXT1hJjI1NTticmVhaztjYXNlIDM6bj0zLHRoaXNbdGhpcy5sXT1hJjI1NSxhPj4+PTgsdGhpc1t0aGlzLmwrMV09YSYyNTUsYT4+Pj04LHRoaXNbdGhpcy5sKzJdPWEmMjU1O2JyZWFrO2Nhc2UgNDpuPTQsdmModGhpcyxhLHRoaXMubCk7YnJlYWs7Y2FzZSA4OmlmKG49OCxyPT09ImYiKXt1Yyh0aGlzLGEsdGhpcy5sKTticmVha31jYXNlIDE2OmJyZWFrO2Nhc2UtNDpuPTQscGModGhpcyxhLHRoaXMubCk7YnJlYWt9cmV0dXJuIHRoaXMubCs9bix0aGlzfWZ1bmN0aW9uIE9uKGUsYSl7dmFyIHI9cG4odGhpcyx0aGlzLmwsZS5sZW5ndGg+PjEpO2lmKHIhPT1lKXRocm93IG5ldyBFcnJvcihhKyJFeHBlY3RlZCAiK2UrIiBzYXcgIityKTt0aGlzLmwrPWUubGVuZ3RoPj4xfWZ1bmN0aW9uICRlKGUsYSl7ZS5sPWEsZS5yZWFkX3NoaWZ0PVJhLGUuY2hrPU9uLGUud3JpdGVfc2hpZnQ9bWN9ZnVuY3Rpb24gWWUoZSxhKXtlLmwrPWF9ZnVuY3Rpb24gYmUoZSl7dmFyIGE9VnIoZSk7cmV0dXJuICRlKGEsMCksYX1mdW5jdGlvbiBQcihlLGEscil7aWYoZSl7dmFyIG4sdCxzOyRlKGUsZS5sfHwwKTtmb3IodmFyIGk9ZS5sZW5ndGgsYz0wLGY9MDtlLmw8aTspe2M9ZS5yZWFkX3NoaWZ0KDEpLGMmMTI4JiYoYz0oYyYxMjcpKygoZS5yZWFkX3NoaWZ0KDEpJjEyNyk8PDcpKTt2YXIgbz1BdFtjXXx8QXRbNjU1MzVdO2ZvcihuPWUucmVhZF9zaGlmdCgxKSxzPW4mMTI3LHQ9MTt0PDQmJm4mMTI4OysrdClzKz0oKG49ZS5yZWFkX3NoaWZ0KDEpKSYxMjcpPDw3KnQ7Zj1lLmwrczt2YXIgbD1vLmYmJm8uZihlLHMscik7aWYoZS5sPWYsYShsLG8sYykpcmV0dXJufX19ZnVuY3Rpb24gYnQoKXt2YXIgZT1bXSxhPWdlPzI1NjoyMDQ4LHI9ZnVuY3Rpb24obyl7dmFyIGw9YmUobyk7cmV0dXJuICRlKGwsMCksbH0sbj1yKGEpLHQ9ZnVuY3Rpb24oKXtuJiYobi5sZW5ndGg+bi5sJiYobj1uLnNsaWNlKDAsbi5sKSxuLmw9bi5sZW5ndGgpLG4ubGVuZ3RoPjAmJmUucHVzaChuKSxuPW51bGwpfSxzPWZ1bmN0aW9uKG8pe3JldHVybiBuJiZvPG4ubGVuZ3RoLW4ubD9uOih0KCksbj1yKE1hdGgubWF4KG8rMSxhKSkpfSxpPWZ1bmN0aW9uKCl7cmV0dXJuIHQoKSxXcihlKX0sYz1mdW5jdGlvbihvKXt0KCksbj1vLG4ubD09bnVsbCYmKG4ubD1uLmxlbmd0aCkscyhhKX07cmV0dXJue25leHQ6cyxwdXNoOmMsZW5kOmksX2J1ZnM6ZX19ZnVuY3Rpb24gSWEoZSxhLHIpe3ZhciBuPVhlKGUpO2lmKGEucz8obi5jUmVsJiYobi5jKz1hLnMuYyksbi5yUmVsJiYobi5yKz1hLnMucikpOihuLmNSZWwmJihuLmMrPWEuYyksbi5yUmVsJiYobi5yKz1hLnIpKSwhcnx8ci5iaWZmPDEyKXtmb3IoO24uYz49MjU2OyluLmMtPTI1Njtmb3IoO24ucj49NjU1MzY7KW4uci09NjU1MzZ9cmV0dXJuIG59ZnVuY3Rpb24gUm4oZSxhLHIpe3ZhciBuPVhlKGUpO3JldHVybiBuLnM9SWEobi5zLGEucyxyKSxuLmU9SWEobi5lLGEucyxyKSxufWZ1bmN0aW9uIE5hKGUsYSl7aWYoZS5jUmVsJiZlLmM8MClmb3IoZT1YZShlKTtlLmM8MDspZS5jKz1hPjg/MTYzODQ6MjU2O2lmKGUuclJlbCYmZS5yPDApZm9yKGU9WGUoZSk7ZS5yPDA7KWUucis9YT44PzEwNDg1NzY6YT41PzY1NTM2OjE2Mzg0O3ZhciByPXVlKGUpO3JldHVybiFlLmNSZWwmJmUuY1JlbCE9bnVsbCYmKHI9VGMocikpLCFlLnJSZWwmJmUuclJlbCE9bnVsbCYmKHI9X2MocikpLHJ9ZnVuY3Rpb24gVXQoZSxhKXtyZXR1cm4gZS5zLnI9PTAmJiFlLnMuclJlbCYmZS5lLnI9PShhLmJpZmY+PTEyPzEwNDg1NzU6YS5iaWZmPj04PzY1NTM2OjE2Mzg0KSYmIWUuZS5yUmVsPyhlLnMuY1JlbD8iIjoiJCIpK1VlKGUucy5jKSsiOiIrKGUuZS5jUmVsPyIiOiIkIikrVWUoZS5lLmMpOmUucy5jPT0wJiYhZS5zLmNSZWwmJmUuZS5jPT0oYS5iaWZmPj0xMj8xNjM4MzoyNTUpJiYhZS5lLmNSZWw/KGUucy5yUmVsPyIiOiIkIikremUoZS5zLnIpKyI6IisoZS5lLnJSZWw/IiI6IiQiKSt6ZShlLmUucik6TmEoZS5zLGEuYmlmZikrIjoiK05hKGUuZSxhLmJpZmYpfWZ1bmN0aW9uIEh0KGUpe3JldHVybiBwYXJzZUludChFYyhlKSwxMCktMX1mdW5jdGlvbiB6ZShlKXtyZXR1cm4iIisoZSsxKX1mdW5jdGlvbiBfYyhlKXtyZXR1cm4gZS5yZXBsYWNlKC8oW0EtWl18XikoXGQrKSQvLCIkMSQkJDIiKX1mdW5jdGlvbiBFYyhlKXtyZXR1cm4gZS5yZXBsYWNlKC9cJChcZCspJC8sIiQxIil9ZnVuY3Rpb24gVnQoZSl7Zm9yKHZhciBhPWtjKGUpLHI9MCxuPTA7biE9PWEubGVuZ3RoOysrbilyPTI2KnIrYS5jaGFyQ29kZUF0KG4pLTY0O3JldHVybiByLTF9ZnVuY3Rpb24gVWUoZSl7aWYoZTwwKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBjb2x1bW4gIitlKTt2YXIgYT0iIjtmb3IoKytlO2U7ZT1NYXRoLmZsb29yKChlLTEpLzI2KSlhPVN0cmluZy5mcm9tQ2hhckNvZGUoKGUtMSklMjYrNjUpK2E7cmV0dXJuIGF9ZnVuY3Rpb24gVGMoZSl7cmV0dXJuIGUucmVwbGFjZSgvXihbQS1aXSkvLCIkJCQxIil9ZnVuY3Rpb24ga2MoZSl7cmV0dXJuIGUucmVwbGFjZSgvXlwkKFtBLVpdKS8sIiQxIil9ZnVuY3Rpb24gd2MoZSl7cmV0dXJuIGUucmVwbGFjZSgvKFwkP1tBLVpdKikoXCQ/XGQqKS8sIiQxLCQyIikuc3BsaXQoIiwiKX1mdW5jdGlvbiBucihlKXtmb3IodmFyIGE9MCxyPTAsbj0wO248ZS5sZW5ndGg7KytuKXt2YXIgdD1lLmNoYXJDb2RlQXQobik7dD49NDgmJnQ8PTU3P2E9MTAqYSsodC00OCk6dD49NjUmJnQ8PTkwJiYocj0yNipyKyh0LTY0KSl9cmV0dXJue2M6ci0xLHI6YS0xfX1mdW5jdGlvbiB1ZShlKXtmb3IodmFyIGE9ZS5jKzEscj0iIjthO2E9KGEtMSkvMjZ8MClyPVN0cmluZy5mcm9tQ2hhckNvZGUoKGEtMSklMjYrNjUpK3I7cmV0dXJuIHIrKGUucisxKX1mdW5jdGlvbiBwYShlKXt2YXIgYT1lLmluZGV4T2YoIjoiKTtyZXR1cm4gYT09LTE/e3M6bnIoZSksZTpucihlKX06e3M6bnIoZS5zbGljZSgwLGEpKSxlOm5yKGUuc2xpY2UoYSsxKSl9fWZ1bmN0aW9uIF9lKGUsYSl7cmV0dXJuIHR5cGVvZiBhPiJ1Inx8dHlwZW9mIGE9PSJudW1iZXIiP19lKGUucyxlLmUpOih0eXBlb2YgZSE9InN0cmluZyImJihlPXVlKGUpKSx0eXBlb2YgYSE9InN0cmluZyImJihhPXVlKGEpKSxlPT1hP2U6ZSsiOiIrYSl9ZnVuY3Rpb24gT2UoZSl7dmFyIGE9e3M6e2M6MCxyOjB9LGU6e2M6MCxyOjB9fSxyPTAsbj0wLHQ9MCxzPWUubGVuZ3RoO2ZvcihyPTA7bjxzJiYhKCh0PWUuY2hhckNvZGVBdChuKS02NCk8MXx8dD4yNik7KytuKXI9MjYqcit0O2ZvcihhLnMuYz0tLXIscj0wO248cyYmISgodD1lLmNoYXJDb2RlQXQobiktNDgpPDB8fHQ+OSk7KytuKXI9MTAqcit0O2lmKGEucy5yPS0tcixuPT09c3x8dCE9MTApcmV0dXJuIGEuZS5jPWEucy5jLGEuZS5yPWEucy5yLGE7Zm9yKCsrbixyPTA7biE9cyYmISgodD1lLmNoYXJDb2RlQXQobiktNjQpPDF8fHQ+MjYpOysrbilyPTI2KnIrdDtmb3IoYS5lLmM9LS1yLHI9MDtuIT1zJiYhKCh0PWUuY2hhckNvZGVBdChuKS00OCk8MHx8dD45KTsrK24pcj0xMCpyK3Q7cmV0dXJuIGEuZS5yPS0tcixhfWZ1bmN0aW9uIEluKGUsYSl7dmFyIHI9ZS50PT0iZCImJmEgaW5zdGFuY2VvZiBEYXRlO2lmKGUueiE9bnVsbCl0cnl7cmV0dXJuIGUudz14cihlLnoscj90cihhKTphKX1jYXRjaHt9dHJ5e3JldHVybiBlLnc9eHIoKGUuWEZ8fHt9KS5udW1GbXRJZHx8KHI/MTQ6MCkscj90cihhKTphKX1jYXRjaHtyZXR1cm4iIithfX1mdW5jdGlvbiBMcihlLGEscil7cmV0dXJuIGU9PW51bGx8fGUudD09bnVsbHx8ZS50PT0ieiI/IiI6ZS53IT09dm9pZCAwP2UudzooZS50PT0iZCImJiFlLnomJnImJnIuZGF0ZU5GJiYoZS56PXIuZGF0ZU5GKSxlLnQ9PSJlIj9pYVtlLnZdfHxlLnY6YT09bnVsbD9JbihlLGUudik6SW4oZSxhKSl9ZnVuY3Rpb24gWHIoZSxhKXt2YXIgcj1hJiZhLnNoZWV0P2Euc2hlZXQ6IlNoZWV0MSIsbj17fTtyZXR1cm4gbltyXT1lLHtTaGVldE5hbWVzOltyXSxTaGVldHM6bn19ZnVuY3Rpb24gTm4oZSxhLHIpe3ZhciBuPXJ8fHt9LHQ9ZT9BcnJheS5pc0FycmF5KGUpOm4uZGVuc2Uscz1lfHwodD9bXTp7fSksaT0wLGM9MDtpZihzJiZuLm9yaWdpbiE9bnVsbCl7aWYodHlwZW9mIG4ub3JpZ2luPT0ibnVtYmVyIilpPW4ub3JpZ2luO2Vsc2V7dmFyIGY9dHlwZW9mIG4ub3JpZ2luPT0ic3RyaW5nIj9ucihuLm9yaWdpbik6bi5vcmlnaW47aT1mLnIsYz1mLmN9c1siIXJlZiJdfHwoc1siIXJlZiJdPSJBMTpBMSIpfXZhciBvPXtzOntjOjFlNyxyOjFlN30sZTp7YzowLHI6MH19O2lmKHNbIiFyZWYiXSl7dmFyIGw9T2Uoc1siIXJlZiJdKTtvLnMuYz1sLnMuYyxvLnMucj1sLnMucixvLmUuYz1NYXRoLm1heChvLmUuYyxsLmUuYyksby5lLnI9TWF0aC5tYXgoby5lLnIsbC5lLnIpLGk9PS0xJiYoby5lLnI9aT1sLmUucisxKX1mb3IodmFyIGg9MDtoIT1hLmxlbmd0aDsrK2gpaWYoYVtoXSl7aWYoIUFycmF5LmlzQXJyYXkoYVtoXSkpdGhyb3cgbmV3IEVycm9yKCJhb2FfdG9fc2hlZXQgZXhwZWN0cyBhbiBhcnJheSBvZiBhcnJheXMiKTtmb3IodmFyIHg9MDt4IT1hW2hdLmxlbmd0aDsrK3gpaWYoISh0eXBlb2YgYVtoXVt4XT4idSIpKXt2YXIgZD17djphW2hdW3hdfSx2PWkraCx1PWMreDtpZihvLnMucj52JiYoby5zLnI9diksby5zLmM+dSYmKG8ucy5jPXUpLG8uZS5yPHYmJihvLmUucj12KSxvLmUuYzx1JiYoby5lLmM9dSksYVtoXVt4XSYmdHlwZW9mIGFbaF1beF09PSJvYmplY3QiJiYhQXJyYXkuaXNBcnJheShhW2hdW3hdKSYmIShhW2hdW3hdaW5zdGFuY2VvZiBEYXRlKSlkPWFbaF1beF07ZWxzZSBpZihBcnJheS5pc0FycmF5KGQudikmJihkLmY9YVtoXVt4XVsxXSxkLnY9ZC52WzBdKSxkLnY9PT1udWxsKWlmKGQuZilkLnQ9Im4iO2Vsc2UgaWYobi5udWxsRXJyb3IpZC50PSJlIixkLnY9MDtlbHNlIGlmKG4uc2hlZXRTdHVicylkLnQ9InoiO2Vsc2UgY29udGludWU7ZWxzZSB0eXBlb2YgZC52PT0ibnVtYmVyIj9kLnQ9Im4iOnR5cGVvZiBkLnY9PSJib29sZWFuIj9kLnQ9ImIiOmQudiBpbnN0YW5jZW9mIERhdGU/KGQuej1uLmRhdGVORnx8ZGVbMTRdLG4uY2VsbERhdGVzPyhkLnQ9ImQiLGQudz14cihkLnosdHIoZC52KSkpOihkLnQ9Im4iLGQudj10cihkLnYpLGQudz14cihkLnosZC52KSkpOmQudD0icyI7aWYodClzW3ZdfHwoc1t2XT1bXSksc1t2XVt1XSYmc1t2XVt1XS56JiYoZC56PXNbdl1bdV0ueiksc1t2XVt1XT1kO2Vsc2V7dmFyIGc9dWUoe2M6dSxyOnZ9KTtzW2ddJiZzW2ddLnomJihkLno9c1tnXS56KSxzW2ddPWR9fX1yZXR1cm4gby5zLmM8MWU3JiYoc1siIXJlZiJdPV9lKG8pKSxzfWZ1bmN0aW9uIGdhKGUsYSl7cmV0dXJuIE5uKG51bGwsZSxhKX1mdW5jdGlvbiBBYyhlKXtyZXR1cm4gZS5yZWFkX3NoaWZ0KDQsImkiKX1mdW5jdGlvbiBqZShlKXt2YXIgYT1lLnJlYWRfc2hpZnQoNCk7cmV0dXJuIGE9PT0wPyIiOmUucmVhZF9zaGlmdChhLCJkYmNzIil9ZnVuY3Rpb24gRmMoZSl7cmV0dXJue2ljaDplLnJlYWRfc2hpZnQoMiksaWZudDplLnJlYWRfc2hpZnQoMil9fWZ1bmN0aW9uIFd0KGUsYSl7dmFyIHI9ZS5sLG49ZS5yZWFkX3NoaWZ0KDEpLHQ9amUoZSkscz1bXSxpPXt0LGg6dH07aWYobiYxKXtmb3IodmFyIGM9ZS5yZWFkX3NoaWZ0KDQpLGY9MDtmIT1jOysrZilzLnB1c2goRmMoZSkpO2kucj1zfWVsc2UgaS5yPVt7aWNoOjAsaWZudDowfV07cmV0dXJuIGUubD1yK2EsaX12YXIgU2M9V3Q7ZnVuY3Rpb24gdnIoZSl7dmFyIGE9ZS5yZWFkX3NoaWZ0KDQpLHI9ZS5yZWFkX3NoaWZ0KDIpO3JldHVybiByKz1lLnJlYWRfc2hpZnQoMSk8PDE2LGUubCsrLHtjOmEsaVN0eWxlUmVmOnJ9fWZ1bmN0aW9uIHRhKGUpe3ZhciBhPWUucmVhZF9zaGlmdCgyKTtyZXR1cm4gYSs9ZS5yZWFkX3NoaWZ0KDEpPDwxNixlLmwrKyx7YzotMSxpU3R5bGVSZWY6YX19dmFyIENjPWplO2Z1bmN0aW9uIEd0KGUpe3ZhciBhPWUucmVhZF9zaGlmdCg0KTtyZXR1cm4gYT09PTB8fGE9PT00Mjk0OTY3Mjk1PyIiOmUucmVhZF9zaGlmdChhLCJkYmNzIil9dmFyIHljPWplLFh0PUd0O2Z1bmN0aW9uICR0KGUpe3ZhciBhPWUuc2xpY2UoZS5sLGUubCs0KSxyPWFbMF0mMSxuPWFbMF0mMjtlLmwrPTQ7dmFyIHQ9bj09PTA/ZnQoWzAsMCwwLDAsYVswXSYyNTIsYVsxXSxhWzJdLGFbM11dLDApOmFhKGEsMCk+PjI7cmV0dXJuIHI/dC8xMDA6dH1mdW5jdGlvbiBQbihlKXt2YXIgYT17czp7fSxlOnt9fTtyZXR1cm4gYS5zLnI9ZS5yZWFkX3NoaWZ0KDQpLGEuZS5yPWUucmVhZF9zaGlmdCg0KSxhLnMuYz1lLnJlYWRfc2hpZnQoNCksYS5lLmM9ZS5yZWFkX3NoaWZ0KDQpLGF9dmFyIG5hPVBuO2Z1bmN0aW9uIEplKGUpe2lmKGUubGVuZ3RoLWUubDw4KXRocm93IlhMUyBYbnVtIEJ1ZmZlciB1bmRlcmZsb3ciO3JldHVybiBlLnJlYWRfc2hpZnQoOCwiZiIpfWZ1bmN0aW9uIERjKGUpe3ZhciBhPXt9LHI9ZS5yZWFkX3NoaWZ0KDEpLG49cj4+PjEsdD1lLnJlYWRfc2hpZnQoMSkscz1lLnJlYWRfc2hpZnQoMiwiaSIpLGk9ZS5yZWFkX3NoaWZ0KDEpLGM9ZS5yZWFkX3NoaWZ0KDEpLGY9ZS5yZWFkX3NoaWZ0KDEpO3N3aXRjaChlLmwrKyxuKXtjYXNlIDA6YS5hdXRvPTE7YnJlYWs7Y2FzZSAxOmEuaW5kZXg9dDt2YXIgbz1zYVt0XTtvJiYoYS5yZ2I9SGEobykpO2JyZWFrO2Nhc2UgMjphLnJnYj1IYShbaSxjLGZdKTticmVhaztjYXNlIDM6YS50aGVtZT10O2JyZWFrfXJldHVybiBzIT0wJiYoYS50aW50PXM+MD9zLzMyNzY3OnMvMzI3NjgpLGF9ZnVuY3Rpb24gT2MoZSl7dmFyIGE9ZS5yZWFkX3NoaWZ0KDEpO2UubCsrO3ZhciByPXtmQm9sZDphJjEsZkl0YWxpYzphJjIsZlVuZGVybGluZTphJjQsZlN0cmlrZW91dDphJjgsZk91dGxpbmU6YSYxNixmU2hhZG93OmEmMzIsZkNvbmRlbnNlOmEmNjQsZkV4dGVuZDphJjEyOH07cmV0dXJuIHJ9ZnVuY3Rpb24gTG4oZSxhKXt2YXIgcj17MjoiQklUTUFQIiwzOiJNRVRBRklMRVBJQ1QiLDg6IkRJQiIsMTQ6IkVOSE1FVEFGSUxFIn0sbj1lLnJlYWRfc2hpZnQoNCk7c3dpdGNoKG4pe2Nhc2UgMDpyZXR1cm4iIjtjYXNlIDQyOTQ5NjcyOTU6Y2FzZSA0Mjk0OTY3Mjk0OnJldHVybiByW2UucmVhZF9zaGlmdCg0KV18fCIifWlmKG4+NDAwKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgQ2xpcGJvYXJkOiAiK24udG9TdHJpbmcoMTYpKTtyZXR1cm4gZS5sLT00LGUucmVhZF9zaGlmdCgwLGE9PTE/Imxwc3RyIjoibHB3c3RyIil9ZnVuY3Rpb24gUmMoZSl7cmV0dXJuIExuKGUsMSl9ZnVuY3Rpb24gSWMoZSl7cmV0dXJuIExuKGUsMil9dmFyIHp0PTIsY3I9MyxvdD0xMSxNbj0xMixsdD0xOSxodD02NCxOYz02NSxQYz03MSxMYz00MTA4LE1jPTQxMjYsR2U9ODAsQm49ODEsQmM9W0dlLEJuXSxiYz17MTp7bjoiQ29kZVBhZ2UiLHQ6enR9LDI6e246IkNhdGVnb3J5Iix0OkdlfSwzOntuOiJQcmVzZW50YXRpb25Gb3JtYXQiLHQ6R2V9LDQ6e246IkJ5dGVDb3VudCIsdDpjcn0sNTp7bjoiTGluZUNvdW50Iix0OmNyfSw2OntuOiJQYXJhZ3JhcGhDb3VudCIsdDpjcn0sNzp7bjoiU2xpZGVDb3VudCIsdDpjcn0sODp7bjoiTm90ZUNvdW50Iix0OmNyfSw5OntuOiJIaWRkZW5Db3VudCIsdDpjcn0sMTA6e246Ik11bHRpbWVkaWFDbGlwQ291bnQiLHQ6Y3J9LDExOntuOiJTY2FsZUNyb3AiLHQ6b3R9LDEyOntuOiJIZWFkaW5nUGFpcnMiLHQ6TGN9LDEzOntuOiJUaXRsZXNPZlBhcnRzIix0Ok1jfSwxNDp7bjoiTWFuYWdlciIsdDpHZX0sMTU6e246IkNvbXBhbnkiLHQ6R2V9LDE2OntuOiJMaW5rc1VwVG9EYXRlIix0Om90fSwxNzp7bjoiQ2hhcmFjdGVyQ291bnQiLHQ6Y3J9LDE5OntuOiJTaGFyZWREb2MiLHQ6b3R9LDIyOntuOiJIeXBlcmxpbmtzQ2hhbmdlZCIsdDpvdH0sMjM6e246IkFwcFZlcnNpb24iLHQ6Y3IscDoidmVyc2lvbiJ9LDI0OntuOiJEaWdTaWciLHQ6TmN9LDI2OntuOiJDb250ZW50VHlwZSIsdDpHZX0sMjc6e246IkNvbnRlbnRTdGF0dXMiLHQ6R2V9LDI4OntuOiJMYW5ndWFnZSIsdDpHZX0sMjk6e246IlZlcnNpb24iLHQ6R2V9LDI1NTp7fSwyMTQ3NDgzNjQ4OntuOiJMb2NhbGUiLHQ6bHR9LDIxNDc0ODM2NTE6e246IkJlaGF2aW9yIix0Omx0fSwxOTE5MDU0NDM0Ont9fSxVYz17MTp7bjoiQ29kZVBhZ2UiLHQ6enR9LDI6e246IlRpdGxlIix0OkdlfSwzOntuOiJTdWJqZWN0Iix0OkdlfSw0OntuOiJBdXRob3IiLHQ6R2V9LDU6e246IktleXdvcmRzIix0OkdlfSw2OntuOiJDb21tZW50cyIsdDpHZX0sNzp7bjoiVGVtcGxhdGUiLHQ6R2V9LDg6e246Ikxhc3RBdXRob3IiLHQ6R2V9LDk6e246IlJldk51bWJlciIsdDpHZX0sMTA6e246IkVkaXRUaW1lIix0Omh0fSwxMTp7bjoiTGFzdFByaW50ZWQiLHQ6aHR9LDEyOntuOiJDcmVhdGVkRGF0ZSIsdDpodH0sMTM6e246Ik1vZGlmaWVkRGF0ZSIsdDpodH0sMTQ6e246IlBhZ2VDb3VudCIsdDpjcn0sMTU6e246IldvcmRDb3VudCIsdDpjcn0sMTY6e246IkNoYXJDb3VudCIsdDpjcn0sMTc6e246IlRodW1ibmFpbCIsdDpQY30sMTg6e246IkFwcGxpY2F0aW9uIix0OkdlfSwxOTp7bjoiRG9jU2VjdXJpdHkiLHQ6Y3J9LDI1NTp7fSwyMTQ3NDgzNjQ4OntuOiJMb2NhbGUiLHQ6bHR9LDIxNDc0ODM2NTE6e246IkJlaGF2aW9yIix0Omx0fSwxOTE5MDU0NDM0Ont9fSxibj17MToiVVMiLDI6IkNBIiwzOiIiLDc6IlJVIiwyMDoiRUciLDMwOiJHUiIsMzE6Ik5MIiwzMjoiQkUiLDMzOiJGUiIsMzQ6IkVTIiwzNjoiSFUiLDM5OiJJVCIsNDE6IkNIIiw0MzoiQVQiLDQ0OiJHQiIsNDU6IkRLIiw0NjoiU0UiLDQ3OiJOTyIsNDg6IlBMIiw0OToiREUiLDUyOiJNWCIsNTU6IkJSIiw2MToiQVUiLDY0OiJOWiIsNjY6IlRIIiw4MToiSlAiLDgyOiJLUiIsODQ6IlZOIiw4NjoiQ04iLDkwOiJUUiIsMTA1OiJKUyIsMjEzOiJEWiIsMjE2OiJNQSIsMjE4OiJMWSIsMzUxOiJQVCIsMzU0OiJJUyIsMzU4OiJGSSIsNDIwOiJDWiIsODg2OiJUVyIsOTYxOiJMQiIsOTYyOiJKTyIsOTYzOiJTWSIsOTY0OiJJUSIsOTY1OiJLVyIsOTY2OiJTQSIsOTcxOiJBRSIsOTcyOiJJTCIsOTc0OiJRQSIsOTgxOiJJUiIsNjU1MzU6IlVTIn0sSGM9W251bGwsInNvbGlkIiwibWVkaXVtR3JheSIsImRhcmtHcmF5IiwibGlnaHRHcmF5IiwiZGFya0hvcml6b250YWwiLCJkYXJrVmVydGljYWwiLCJkYXJrRG93biIsImRhcmtVcCIsImRhcmtHcmlkIiwiZGFya1RyZWxsaXMiLCJsaWdodEhvcml6b250YWwiLCJsaWdodFZlcnRpY2FsIiwibGlnaHREb3duIiwibGlnaHRVcCIsImxpZ2h0R3JpZCIsImxpZ2h0VHJlbGxpcyIsImdyYXkxMjUiLCJncmF5MDYyNSJdO2Z1bmN0aW9uIFZjKGUpe3JldHVybiBlLm1hcChmdW5jdGlvbihhKXtyZXR1cm5bYT4+MTYmMjU1LGE+PjgmMjU1LGEmMjU1XX0pfXZhciBXYz1WYyhbMCwxNjc3NzIxNSwxNjcxMTY4MCw2NTI4MCwyNTUsMTY3NzY5NjAsMTY3MTE5MzUsNjU1MzUsMCwxNjc3NzIxNSwxNjcxMTY4MCw2NTI4MCwyNTUsMTY3NzY5NjAsMTY3MTE5MzUsNjU1MzUsODM4ODYwOCwzMjc2OCwxMjgsODQyMTM3Niw4Mzg4NzM2LDMyODk2LDEyNjMyMjU2LDg0MjE1MDQsMTAwNjY0MzEsMTAwNDAxNjYsMTY3NzcxNjQsMTM0MzQ4NzksNjY4NDc3NCwxNjc0NDU3NiwyNjMxNiwxMzQyMTgyMywxMjgsMTY3MTE5MzUsMTY3NzY5NjAsNjU1MzUsODM4ODczNiw4Mzg4NjA4LDMyODk2LDI1NSw1MjQ3OSwxMzQzNDg3OSwxMzQzNDgyOCwxNjc3NzExMywxMDA3OTQ4NywxNjc1MTA1MiwxMzQwODc2NywxNjc2NDA1NywzMzY4NzAzLDMzOTQ3NjQsMTAwNzkyMzIsMTY3NjM5MDQsMTY3NTA4NDgsMTY3Mzc3OTIsNjcxMDkzNyw5ODY4OTUwLDEzMTU4LDMzODE2MDYsMTMwNTYsMzM1NTM5MiwxMDA0MDA2NCwxMDA0MDE2NiwzMzU1NTQ1LDMzNTU0NDMsMTY3NzcyMTUsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXSksc2E9WGUoV2MpLGlhPXswOiIjTlVMTCEiLDc6IiNESVYvMCEiLDE1OiIjVkFMVUUhIiwyMzoiI1JFRiEiLDI5OiIjTkFNRT8iLDM2OiIjTlVNISIsNDI6IiNOL0EiLDQzOiIjR0VUVElOR19EQVRBIiwyNTU6IiNXVEY/In0sVW49eyIjTlVMTCEiOjAsIiNESVYvMCEiOjcsIiNWQUxVRSEiOjE1LCIjUkVGISI6MjMsIiNOQU1FPyI6MjksIiNOVU0hIjozNiwiI04vQSI6NDIsIiNHRVRUSU5HX0RBVEEiOjQzLCIjV1RGPyI6MjU1fSxIbj17ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0Lm1haW4reG1sIjoid29ya2Jvb2tzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoZWV0Lm1hY3JvRW5hYmxlZC5tYWluK3htbCI6Indvcmtib29rcyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zaGVldC5iaW5hcnkubWFjcm9FbmFibGVkLm1haW4iOiJ3b3JrYm9va3MiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuYWRkaW4ubWFjcm9FbmFibGVkLm1haW4reG1sIjoid29ya2Jvb2tzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGVtcGxhdGUubWFpbit4bWwiOiJ3b3JrYm9va3MiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC53b3Jrc2hlZXQreG1sIjoic2hlZXRzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLndvcmtzaGVldCI6InNoZWV0cyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5iaW5JbmRleFdzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmNoYXJ0c2hlZXQreG1sIjoiY2hhcnRzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmNoYXJ0c2hlZXQiOiJjaGFydHMiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwubWFjcm9zaGVldCt4bWwiOiJtYWNyb3MiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwubWFjcm9zaGVldCI6Im1hY3JvcyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5pbnRsbWFjcm9zaGVldCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuYmluSW5kZXhNcyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5kaWFsb2dzaGVldCt4bWwiOiJkaWFsb2dzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmRpYWxvZ3NoZWV0IjoiZGlhbG9ncyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoYXJlZFN0cmluZ3MreG1sIjoic3RycyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zaGFyZWRTdHJpbmdzIjoic3RycyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnN0eWxlcyt4bWwiOiJzdHlsZXMiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc3R5bGVzIjoic3R5bGVzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UuY29yZS1wcm9wZXJ0aWVzK3htbCI6ImNvcmVwcm9wcyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5jdXN0b20tcHJvcGVydGllcyt4bWwiOiJjdXN0cHJvcHMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZXh0ZW5kZWQtcHJvcGVydGllcyt4bWwiOiJleHRwcm9wcyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5jdXN0b21YbWxQcm9wZXJ0aWVzK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jdXN0b21Qcm9wZXJ0eSI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jb21tZW50cyt4bWwiOiJjb21tZW50cyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5jb21tZW50cyI6ImNvbW1lbnRzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnRocmVhZGVkY29tbWVudHMreG1sIjoidGhyZWFkZWRjb21tZW50cyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5wZXJzb24reG1sIjoicGVvcGxlIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXRNZXRhZGF0YSt4bWwiOiJtZXRhZGF0YSIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zaGVldE1ldGFkYXRhIjoibWV0YWRhdGEiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwucGl2b3RUYWJsZSI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5waXZvdFRhYmxlK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmNoYXJ0K3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLmNoYXJ0Y29sb3JzdHlsZSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS5jaGFydHN0eWxlK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLmNoYXJ0ZXgreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5jYWxjQ2hhaW4iOiJjYWxjY2hhaW5zIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY2FsY0NoYWluK3htbCI6ImNhbGNjaGFpbnMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5wcmludGVyU2V0dGluZ3MiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS5hY3RpdmVYIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2UuYWN0aXZlWCt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmF0dGFjaGVkVG9vbGJhcnMiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmNvbm5lY3Rpb25zIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmNvbm5lY3Rpb25zK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuZXh0ZXJuYWxMaW5rIjoibGlua3MiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5leHRlcm5hbExpbmsreG1sIjoibGlua3MiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwucGl2b3RDYWNoZURlZmluaXRpb24iOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnBpdm90Q2FjaGVSZWNvcmRzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnBpdm90Q2FjaGVEZWZpbml0aW9uK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5waXZvdENhY2hlUmVjb3Jkcyt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnF1ZXJ5VGFibGUiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucXVlcnlUYWJsZSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnVzZXJOYW1lcyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwucmV2aXNpb25IZWFkZXJzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5yZXZpc2lvbkxvZyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5yZXZpc2lvbkhlYWRlcnMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnJldmlzaW9uTG9nK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC51c2VyTmFtZXMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC50YWJsZVNpbmdsZUNlbGxzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRhYmxlU2luZ2xlQ2VsbHMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zbGljZXIiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNsaWNlckNhY2hlIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zbGljZXIreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zbGljZXJDYWNoZSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLndzU29ydE1hcCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwudGFibGUiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGFibGUreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC50aGVtZSt4bWwiOiJ0aGVtZXMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudGhlbWVPdmVycmlkZSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLlRpbWVsaW5lK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuVGltZWxpbmVDYWNoZSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS52YmFQcm9qZWN0IjoidmJhIiwiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS52YmFQcm9qZWN0U2lnbmF0dXJlIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2Uudm9sYXRpbGVEZXBlbmRlbmNpZXMiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudm9sYXRpbGVEZXBlbmRlbmNpZXMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5jb250cm9scHJvcGVydGllcyt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50Lm1vZGVsK2RhdGEiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLlN1cnZleSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmcreG1sIjoiZHJhd2luZ3MiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmNoYXJ0c2hhcGVzK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRpYWdyYW1Db2xvcnMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbURhdGEreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbUxheW91dCt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5kaWFncmFtU3R5bGUreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC52bWxEcmF3aW5nIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLnJlbGF0aW9uc2hpcHMreG1sIjoicmVscyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5vbGVPYmplY3QiOiJUT0RPIiwiaW1hZ2UvcG5nIjoiVE9ETyIsc2hlZXQ6ImpzIn07ZnVuY3Rpb24gR2MoKXtyZXR1cm57d29ya2Jvb2tzOltdLHNoZWV0czpbXSxjaGFydHM6W10sZGlhbG9nczpbXSxtYWNyb3M6W10scmVsczpbXSxzdHJzOltdLGNvbW1lbnRzOltdLHRocmVhZGVkY29tbWVudHM6W10sbGlua3M6W10sY29yZXByb3BzOltdLGV4dHByb3BzOltdLGN1c3Rwcm9wczpbXSx0aGVtZXM6W10sc3R5bGVzOltdLGNhbGNjaGFpbnM6W10sdmJhOltdLGRyYXdpbmdzOltdLG1ldGFkYXRhOltdLHBlb3BsZTpbXSxUT0RPOltdLHhtbG5zOiIifX1mdW5jdGlvbiBYYyhlKXt2YXIgYT1HYygpO2lmKCFlfHwhZS5tYXRjaClyZXR1cm4gYTt2YXIgcj17fTtpZigoZS5tYXRjaChLZSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciB0PW9lKG4pO3N3aXRjaCh0WzBdLnJlcGxhY2UocWksIjwiKSl7Y2FzZSI8P3htbCI6YnJlYWs7Y2FzZSI8VHlwZXMiOmEueG1sbnM9dFsieG1sbnMiKyh0WzBdLm1hdGNoKC88KFx3Kyk6Lyl8fFsiIiwiIl0pWzFdXTticmVhaztjYXNlIjxEZWZhdWx0IjpyW3QuRXh0ZW5zaW9uXT10LkNvbnRlbnRUeXBlO2JyZWFrO2Nhc2UiPE92ZXJyaWRlIjphW0huW3QuQ29udGVudFR5cGVdXSE9PXZvaWQgMCYmYVtIblt0LkNvbnRlbnRUeXBlXV0ucHVzaCh0LlBhcnROYW1lKTticmVha319KSxhLnhtbG5zIT09b2MuQ1QpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIE5hbWVzcGFjZTogIithLnhtbG5zKTtyZXR1cm4gYS5jYWxjY2hhaW49YS5jYWxjY2hhaW5zLmxlbmd0aD4wP2EuY2FsY2NoYWluc1swXToiIixhLnNzdD1hLnN0cnMubGVuZ3RoPjA/YS5zdHJzWzBdOiIiLGEuc3R5bGU9YS5zdHlsZXMubGVuZ3RoPjA/YS5zdHlsZXNbMF06IiIsYS5kZWZhdWx0cz1yLGRlbGV0ZSBhLmNhbGNjaGFpbnMsYX12YXIgbWE9e1dCOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL29mZmljZURvY3VtZW50IixTSEVFVDoiaHR0cDovL3NoZWV0anMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9vZmZpY2VEb2N1bWVudCIsSExJTks6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvaHlwZXJsaW5rIixWTUw6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvdm1sRHJhd2luZyIsWFBBVEg6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvZXh0ZXJuYWxMaW5rUGF0aCIsWE1JU1M6Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlLzIwMDYvcmVsYXRpb25zaGlwcy94bEV4dGVybmFsTGlua1BhdGgveGxQYXRoTWlzc2luZyIsWExJTks6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvZXh0ZXJuYWxMaW5rIixDWE1MOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2N1c3RvbVhtbCIsQ1hNTFA6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvY3VzdG9tWG1sUHJvcHMiLENNTlQ6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvY29tbWVudHMiLENPUkVfUFJPUFM6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvcmVsYXRpb25zaGlwcy9tZXRhZGF0YS9jb3JlLXByb3BlcnRpZXMiLEVYVF9QUk9QUzoiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9leHRlbmRlZC1wcm9wZXJ0aWVzIixDVVNUX1BST1BTOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2N1c3RvbS1wcm9wZXJ0aWVzIixTU1Q6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvc2hhcmVkU3RyaW5ncyIsU1RZOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3N0eWxlcyIsVEhFTUU6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvdGhlbWUiLENIQVJUOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2NoYXJ0IixDSEFSVEVYOiJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDE0L3JlbGF0aW9uc2hpcHMvY2hhcnRFeCIsQ1M6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvY2hhcnRzaGVldCIsV1M6WyJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3dvcmtzaGVldCIsImh0dHA6Ly9wdXJsLm9jbGMub3JnL29veG1sL29mZmljZURvY3VtZW50L3JlbGF0aW9uc2hpcHMvd29ya3NoZWV0Il0sRFM6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvZGlhbG9nc2hlZXQiLE1TOiJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA2L3JlbGF0aW9uc2hpcHMveGxNYWNyb3NoZWV0IixJTUc6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvaW1hZ2UiLERSQVc6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvZHJhd2luZyIsWExNRVRBOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3NoZWV0TWV0YWRhdGEiLFRDTU5UOiJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDE3LzEwL3JlbGF0aW9uc2hpcHMvdGhyZWFkZWRDb21tZW50IixQRU9QTEU6Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlLzIwMTcvMTAvcmVsYXRpb25zaGlwcy9wZXJzb24iLFZCQToiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAwNi9yZWxhdGlvbnNoaXBzL3ZiYVByb2plY3QifTtmdW5jdGlvbiBLdChlKXt2YXIgYT1lLmxhc3RJbmRleE9mKCIvIik7cmV0dXJuIGUuc2xpY2UoMCxhKzEpKyJfcmVscy8iK2Uuc2xpY2UoYSsxKSsiLnJlbHMifWZ1bmN0aW9uIFBhKGUsYSl7dmFyIHI9eyIhaWQiOnt9fTtpZighZSlyZXR1cm4gcjthLmNoYXJBdCgwKSE9PSIvIiYmKGE9Ii8iK2EpO3ZhciBuPXt9O3JldHVybihlLm1hdGNoKEtlKXx8W10pLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHM9b2UodCk7aWYoc1swXT09PSI8UmVsYXRpb25zaGlwIil7dmFyIGk9e307aS5UeXBlPXMuVHlwZSxpLlRhcmdldD1zLlRhcmdldCxpLklkPXMuSWQscy5UYXJnZXRNb2RlJiYoaS5UYXJnZXRNb2RlPXMuVGFyZ2V0TW9kZSk7dmFyIGM9cy5UYXJnZXRNb2RlPT09IkV4dGVybmFsIj9zLlRhcmdldDpTYShzLlRhcmdldCxhKTtyW2NdPWksbltzLklkXT1pfX0pLHJbIiFpZCJdPW4scn12YXIgJGM9ImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuc3ByZWFkc2hlZXQiO2Z1bmN0aW9uIHpjKGUsYSl7Zm9yKHZhciByPU10KGUpLG4sdDtuPURhLmV4ZWMocik7KXN3aXRjaChuWzNdKXtjYXNlIm1hbmlmZXN0IjpicmVhaztjYXNlImZpbGUtZW50cnkiOmlmKHQ9b2UoblswXSwhMSksdC5wYXRoPT0iLyImJnQudHlwZSE9PSRjKXRocm93IG5ldyBFcnJvcigiVGhpcyBPcGVuRG9jdW1lbnQgaXMgbm90IGEgc3ByZWFkc2hlZXQiKTticmVhaztjYXNlImVuY3J5cHRpb24tZGF0YSI6Y2FzZSJhbGdvcml0aG0iOmNhc2Uic3RhcnQta2V5LWdlbmVyYXRpb24iOmNhc2Uia2V5LWRlcml2YXRpb24iOnRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgT0RTIEVuY3J5cHRpb24iKTtkZWZhdWx0OmlmKGEmJmEuV1RGKXRocm93IG59fXZhciBMYT1bWyJjcDpjYXRlZ29yeSIsIkNhdGVnb3J5Il0sWyJjcDpjb250ZW50U3RhdHVzIiwiQ29udGVudFN0YXR1cyJdLFsiY3A6a2V5d29yZHMiLCJLZXl3b3JkcyJdLFsiY3A6bGFzdE1vZGlmaWVkQnkiLCJMYXN0QXV0aG9yIl0sWyJjcDpsYXN0UHJpbnRlZCIsIkxhc3RQcmludGVkIl0sWyJjcDpyZXZpc2lvbiIsIlJldk51bWJlciJdLFsiY3A6dmVyc2lvbiIsIlZlcnNpb24iXSxbImRjOmNyZWF0b3IiLCJBdXRob3IiXSxbImRjOmRlc2NyaXB0aW9uIiwiQ29tbWVudHMiXSxbImRjOmlkZW50aWZpZXIiLCJJZGVudGlmaWVyIl0sWyJkYzpsYW5ndWFnZSIsIkxhbmd1YWdlIl0sWyJkYzpzdWJqZWN0IiwiU3ViamVjdCJdLFsiZGM6dGl0bGUiLCJUaXRsZSJdLFsiZGN0ZXJtczpjcmVhdGVkIiwiQ3JlYXRlZERhdGUiLCJkYXRlIl0sWyJkY3Rlcm1zOm1vZGlmaWVkIiwiTW9kaWZpZWREYXRlIiwiZGF0ZSJdXSxLYz1mdW5jdGlvbigpe2Zvcih2YXIgZT1uZXcgQXJyYXkoTGEubGVuZ3RoKSxhPTA7YTxMYS5sZW5ndGg7KythKXt2YXIgcj1MYVthXSxuPSIoPzoiK3JbMF0uc2xpY2UoMCxyWzBdLmluZGV4T2YoIjoiKSkrIjopIityWzBdLnNsaWNlKHJbMF0uaW5kZXhPZigiOiIpKzEpO2VbYV09bmV3IFJlZ0V4cCgiPCIrbisiW14+XSo+KFtcXHNcXFNdKj8pPC8iK24rIj4iKX1yZXR1cm4gZX0oKTtmdW5jdGlvbiBWbihlKXt2YXIgYT17fTtlPUFlKGUpO2Zvcih2YXIgcj0wO3I8TGEubGVuZ3RoOysrcil7dmFyIG49TGFbcl0sdD1lLm1hdGNoKEtjW3JdKTt0IT1udWxsJiZ0Lmxlbmd0aD4wJiYoYVtuWzFdXT1FZSh0WzFdKSksblsyXT09PSJkYXRlIiYmYVtuWzFdXSYmKGFbblsxXV09V2UoYVtuWzFdXSkpfXJldHVybiBhfXZhciBZYz1bWyJBcHBsaWNhdGlvbiIsIkFwcGxpY2F0aW9uIiwic3RyaW5nIl0sWyJBcHBWZXJzaW9uIiwiQXBwVmVyc2lvbiIsInN0cmluZyJdLFsiQ29tcGFueSIsIkNvbXBhbnkiLCJzdHJpbmciXSxbIkRvY1NlY3VyaXR5IiwiRG9jU2VjdXJpdHkiLCJzdHJpbmciXSxbIk1hbmFnZXIiLCJNYW5hZ2VyIiwic3RyaW5nIl0sWyJIeXBlcmxpbmtzQ2hhbmdlZCIsIkh5cGVybGlua3NDaGFuZ2VkIiwiYm9vbCJdLFsiU2hhcmVkRG9jIiwiU2hhcmVkRG9jIiwiYm9vbCJdLFsiTGlua3NVcFRvRGF0ZSIsIkxpbmtzVXBUb0RhdGUiLCJib29sIl0sWyJTY2FsZUNyb3AiLCJTY2FsZUNyb3AiLCJib29sIl0sWyJIZWFkaW5nUGFpcnMiLCJIZWFkaW5nUGFpcnMiLCJyYXciXSxbIlRpdGxlc09mUGFydHMiLCJUaXRsZXNPZlBhcnRzIiwicmF3Il1dO2Z1bmN0aW9uIFduKGUsYSxyLG4pe3ZhciB0PVtdO2lmKHR5cGVvZiBlPT0ic3RyaW5nIil0PWhuKGUsbik7ZWxzZSBmb3IodmFyIHM9MDtzPGUubGVuZ3RoOysrcyl0PXQuY29uY2F0KGVbc10ubWFwKGZ1bmN0aW9uKGwpe3JldHVybnt2Omx9fSkpO3ZhciBpPXR5cGVvZiBhPT0ic3RyaW5nIj9obihhLG4pLm1hcChmdW5jdGlvbihsKXtyZXR1cm4gbC52fSk6YSxjPTAsZj0wO2lmKGkubGVuZ3RoPjApZm9yKHZhciBvPTA7byE9PXQubGVuZ3RoO28rPTIpe3N3aXRjaChmPSt0W28rMV0udix0W29dLnYpe2Nhc2UiV29ya3NoZWV0cyI6Y2FzZSLlt6XkvZzooagiOmNhc2Ui0JvQuNGB0YLRiyI6Y2FzZSLYo9mI2LHYp9mCINin2YTYudmF2YQiOmNhc2Ui44Ov44O844Kv44K344O844OIIjpjYXNlIteS15zXmdeV16DXldeqINei15HXldeT15QiOmNhc2UiQXJiZWl0c2Jsw6R0dGVyIjpjYXNlIsOHYWzEscWfbWEgU2F5ZmFsYXLEsSI6Y2FzZSJGZXVpbGxlcyBkZSBjYWxjdWwiOmNhc2UiRm9nbGkgZGkgbGF2b3JvIjpjYXNlIkZvbGhhcyBkZSBjw6FsY3VsbyI6Y2FzZSJQbGFuaWxoYXMiOmNhc2UiUmVnbmVhcmsiOmNhc2UiSG9qYXMgZGUgY8OhbGN1bG8iOmNhc2UiV2Vya2JsYWRlbiI6ci5Xb3Jrc2hlZXRzPWYsci5TaGVldE5hbWVzPWkuc2xpY2UoYyxjK2YpO2JyZWFrO2Nhc2UiTmFtZWQgUmFuZ2VzIjpjYXNlIlJhbmdvcyBjb24gbm9tYnJlIjpjYXNlIuWQjeWJjeS7mOOBjeS4gOimpyI6Y2FzZSJCZW5hbm50ZSBCZXJlaWNoZSI6Y2FzZSJOYXZuZ2l2bmUgb21yw6VkZXIiOnIuTmFtZWRSYW5nZXM9ZixyLkRlZmluZWROYW1lcz1pLnNsaWNlKGMsYytmKTticmVhaztjYXNlIkNoYXJ0cyI6Y2FzZSJEaWFncmFtbWUiOnIuQ2hhcnRzaGVldHM9ZixyLkNoYXJ0TmFtZXM9aS5zbGljZShjLGMrZik7YnJlYWt9Yys9Zn19ZnVuY3Rpb24gamMoZSxhLHIpe3ZhciBuPXt9O3JldHVybiBhfHwoYT17fSksZT1BZShlKSxZYy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBzPShlLm1hdGNoKHlhKHRbMF0pKXx8W10pWzFdO3N3aXRjaCh0WzJdKXtjYXNlInN0cmluZyI6cyYmKGFbdFsxXV09RWUocykpO2JyZWFrO2Nhc2UiYm9vbCI6YVt0WzFdXT1zPT09InRydWUiO2JyZWFrO2Nhc2UicmF3Ijp2YXIgaT1lLm1hdGNoKG5ldyBSZWdFeHAoIjwiK3RbMF0rIltePl0qPihbXFxzXFxTXSo/KTwvIit0WzBdKyI+IikpO2kmJmkubGVuZ3RoPjAmJihuW3RbMV1dPWlbMV0pO2JyZWFrfX0pLG4uSGVhZGluZ1BhaXJzJiZuLlRpdGxlc09mUGFydHMmJlduKG4uSGVhZGluZ1BhaXJzLG4uVGl0bGVzT2ZQYXJ0cyxhLHIpLGF9dmFyIEpjPS88W14+XSs+W148XSovZztmdW5jdGlvbiBaYyhlLGEpe3ZhciByPXt9LG49IiIsdD1lLm1hdGNoKEpjKTtpZih0KWZvcih2YXIgcz0wO3MhPXQubGVuZ3RoOysrcyl7dmFyIGk9dFtzXSxjPW9lKGkpO3N3aXRjaChjWzBdKXtjYXNlIjw/eG1sIjpicmVhaztjYXNlIjxQcm9wZXJ0aWVzIjpicmVhaztjYXNlIjxwcm9wZXJ0eSI6bj1FZShjLm5hbWUpO2JyZWFrO2Nhc2UiPC9wcm9wZXJ0eT4iOm49bnVsbDticmVhaztkZWZhdWx0OmlmKGkuaW5kZXhPZigiPHZ0OiIpPT09MCl7dmFyIGY9aS5zcGxpdCgiPiIpLG89ZlswXS5zbGljZSg0KSxsPWZbMV07c3dpdGNoKG8pe2Nhc2UibHBzdHIiOmNhc2UiYnN0ciI6Y2FzZSJscHdzdHIiOnJbbl09RWUobCk7YnJlYWs7Y2FzZSJib29sIjpyW25dPVNlKGwpO2JyZWFrO2Nhc2UiaTEiOmNhc2UiaTIiOmNhc2UiaTQiOmNhc2UiaTgiOmNhc2UiaW50IjpjYXNlInVpbnQiOnJbbl09cGFyc2VJbnQobCwxMCk7YnJlYWs7Y2FzZSJyNCI6Y2FzZSJyOCI6Y2FzZSJkZWNpbWFsIjpyW25dPXBhcnNlRmxvYXQobCk7YnJlYWs7Y2FzZSJmaWxldGltZSI6Y2FzZSJkYXRlIjpyW25dPVdlKGwpO2JyZWFrO2Nhc2UiY3kiOmNhc2UiZXJyb3IiOnJbbl09RWUobCk7YnJlYWs7ZGVmYXVsdDppZihvLnNsaWNlKC0xKT09Ii8iKWJyZWFrO2EuV1RGJiZ0eXBlb2YgY29uc29sZTwidSImJmNvbnNvbGUud2FybigiVW5leHBlY3RlZCIsaSxvLGYpfX1lbHNlIGlmKGkuc2xpY2UoMCwyKSE9PSI8LyIpe2lmKGEuV1RGKXRocm93IG5ldyBFcnJvcihpKX19fXJldHVybiByfXZhciBxYz17VGl0bGU6IlRpdGxlIixTdWJqZWN0OiJTdWJqZWN0IixBdXRob3I6IkF1dGhvciIsS2V5d29yZHM6IktleXdvcmRzIixDb21tZW50czoiRGVzY3JpcHRpb24iLExhc3RBdXRob3I6Ikxhc3RBdXRob3IiLFJldk51bWJlcjoiUmV2aXNpb24iLEFwcGxpY2F0aW9uOiJBcHBOYW1lIixMYXN0UHJpbnRlZDoiTGFzdFByaW50ZWQiLENyZWF0ZWREYXRlOiJDcmVhdGVkIixNb2RpZmllZERhdGU6Ikxhc3RTYXZlZCIsQ2F0ZWdvcnk6IkNhdGVnb3J5IixNYW5hZ2VyOiJNYW5hZ2VyIixDb21wYW55OiJDb21wYW55IixBcHBWZXJzaW9uOiJWZXJzaW9uIixDb250ZW50U3RhdHVzOiJDb250ZW50U3RhdHVzIixJZGVudGlmaWVyOiJJZGVudGlmaWVyIixMYW5ndWFnZToiTGFuZ3VhZ2UifSxZdDtmdW5jdGlvbiBRYyhlLGEscil7WXR8fChZdD1JdChxYykpLGE9WXRbYV18fGEsZVthXT1yfWZ1bmN0aW9uIGp0KGUpe3ZhciBhPWUucmVhZF9zaGlmdCg0KSxyPWUucmVhZF9zaGlmdCg0KTtyZXR1cm4gbmV3IERhdGUoKHIvMWU3Kk1hdGgucG93KDIsMzIpK2EvMWU3LTExNjQ0NDczNjAwKSoxZTMpLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgvXC4wMDAvLCIiKX1mdW5jdGlvbiBHbihlLGEscil7dmFyIG49ZS5sLHQ9ZS5yZWFkX3NoaWZ0KDAsImxwc3RyLWNwIik7aWYocilmb3IoO2UubC1uJjM7KSsrZS5sO3JldHVybiB0fWZ1bmN0aW9uIFhuKGUsYSxyKXt2YXIgbj1lLnJlYWRfc2hpZnQoMCwibHB3c3RyIik7cmV0dXJuIG59ZnVuY3Rpb24gJG4oZSxhLHIpe3JldHVybiBhPT09MzE/WG4oZSk6R24oZSxhLHIpfWZ1bmN0aW9uIEp0KGUsYSxyKXtyZXR1cm4gJG4oZSxhLHI9PT0hMT8wOjQpfWZ1bmN0aW9uIGVmKGUsYSl7aWYoIWEpdGhyb3cgbmV3IEVycm9yKCJWdFVuYWxpZ25lZFN0cmluZyBtdXN0IGhhdmUgcG9zaXRpdmUgbGVuZ3RoIik7cmV0dXJuICRuKGUsYSwwKX1mdW5jdGlvbiByZihlKXtmb3IodmFyIGE9ZS5yZWFkX3NoaWZ0KDQpLHI9W10sbj0wO24hPWE7KytuKXt2YXIgdD1lLmw7cltuXT1lLnJlYWRfc2hpZnQoMCwibHB3c3RyIikucmVwbGFjZShyciwiIiksZS5sLXQmMiYmKGUubCs9Mil9cmV0dXJuIHJ9ZnVuY3Rpb24gYWYoZSl7Zm9yKHZhciBhPWUucmVhZF9zaGlmdCg0KSxyPVtdLG49MDtuIT1hOysrbilyW25dPWUucmVhZF9zaGlmdCgwLCJscHN0ci1jcCIpLnJlcGxhY2UocnIsIiIpO3JldHVybiByfWZ1bmN0aW9uIHRmKGUpe3ZhciBhPWUubCxyPXV0KGUsQm4pO2VbZS5sXT09MCYmZVtlLmwrMV09PTAmJmUubC1hJjImJihlLmwrPTIpO3ZhciBuPXV0KGUsY3IpO3JldHVybltyLG5dfWZ1bmN0aW9uIG5mKGUpe2Zvcih2YXIgYT1lLnJlYWRfc2hpZnQoNCkscj1bXSxuPTA7bjxhLzI7KytuKXIucHVzaCh0ZihlKSk7cmV0dXJuIHJ9ZnVuY3Rpb24gem4oZSxhKXtmb3IodmFyIHI9ZS5yZWFkX3NoaWZ0KDQpLG49e30sdD0wO3QhPXI7Kyt0KXt2YXIgcz1lLnJlYWRfc2hpZnQoNCksaT1lLnJlYWRfc2hpZnQoNCk7bltzXT1lLnJlYWRfc2hpZnQoaSxhPT09MTIwMD8idXRmMTZsZSI6InV0ZjgiKS5yZXBsYWNlKHJyLCIiKS5yZXBsYWNlKEFhLCIhIiksYT09PTEyMDAmJmklMiYmKGUubCs9Mil9cmV0dXJuIGUubCYzJiYoZS5sPWUubD4+Mzw8Miksbn1mdW5jdGlvbiBLbihlKXt2YXIgYT1lLnJlYWRfc2hpZnQoNCkscj1lLnNsaWNlKGUubCxlLmwrYSk7cmV0dXJuIGUubCs9YSwoYSYzKT4wJiYoZS5sKz00LShhJjMpJjMpLHJ9ZnVuY3Rpb24gc2YoZSl7dmFyIGE9e307cmV0dXJuIGEuU2l6ZT1lLnJlYWRfc2hpZnQoNCksZS5sKz1hLlNpemUrMy0oYS5TaXplLTEpJTQsYX1mdW5jdGlvbiB1dChlLGEscil7dmFyIG49ZS5yZWFkX3NoaWZ0KDIpLHQscz1yfHx7fTtpZihlLmwrPTIsYSE9PU1uJiZuIT09YSYmQmMuaW5kZXhPZihhKT09PS0xJiYhKChhJjY1NTM0KT09NDEyNiYmKG4mNjU1MzQpPT00MTI2KSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHR5cGUgIithKyIgc2F3ICIrbik7c3dpdGNoKGE9PT1Nbj9uOmEpe2Nhc2UgMjpyZXR1cm4gdD1lLnJlYWRfc2hpZnQoMiwiaSIpLHMucmF3fHwoZS5sKz0yKSx0O2Nhc2UgMzpyZXR1cm4gdD1lLnJlYWRfc2hpZnQoNCwiaSIpLHQ7Y2FzZSAxMTpyZXR1cm4gZS5yZWFkX3NoaWZ0KDQpIT09MDtjYXNlIDE5OnJldHVybiB0PWUucmVhZF9zaGlmdCg0KSx0O2Nhc2UgMzA6cmV0dXJuIEduKGUsbiw0KS5yZXBsYWNlKHJyLCIiKTtjYXNlIDMxOnJldHVybiBYbihlKTtjYXNlIDY0OnJldHVybiBqdChlKTtjYXNlIDY1OnJldHVybiBLbihlKTtjYXNlIDcxOnJldHVybiBzZihlKTtjYXNlIDgwOnJldHVybiBKdChlLG4sIXMucmF3KS5yZXBsYWNlKHJyLCIiKTtjYXNlIDgxOnJldHVybiBlZihlLG4pLnJlcGxhY2UocnIsIiIpO2Nhc2UgNDEwODpyZXR1cm4gbmYoZSk7Y2FzZSA0MTI2OmNhc2UgNDEyNzpyZXR1cm4gbj09NDEyNz9yZihlKTphZihlKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVHlwZWRQcm9wZXJ0eVZhbHVlIHVucmVjb2duaXplZCB0eXBlICIrYSsiICIrbil9fWZ1bmN0aW9uIFluKGUsYSl7dmFyIHI9ZS5sLG49ZS5yZWFkX3NoaWZ0KDQpLHQ9ZS5yZWFkX3NoaWZ0KDQpLHM9W10saT0wLGM9MCxmPS0xLG89e307Zm9yKGk9MDtpIT10OysraSl7dmFyIGw9ZS5yZWFkX3NoaWZ0KDQpLGg9ZS5yZWFkX3NoaWZ0KDQpO3NbaV09W2wsaCtyXX1zLnNvcnQoZnVuY3Rpb24oeSxfKXtyZXR1cm4geVsxXS1fWzFdfSk7dmFyIHg9e307Zm9yKGk9MDtpIT10OysraSl7aWYoZS5sIT09c1tpXVsxXSl7dmFyIGQ9ITA7aWYoaT4wJiZhKXN3aXRjaChhW3NbaS0xXVswXV0udCl7Y2FzZSAyOmUubCsyPT09c1tpXVsxXSYmKGUubCs9MixkPSExKTticmVhaztjYXNlIDgwOmUubDw9c1tpXVsxXSYmKGUubD1zW2ldWzFdLGQ9ITEpO2JyZWFrO2Nhc2UgNDEwODplLmw8PXNbaV1bMV0mJihlLmw9c1tpXVsxXSxkPSExKTticmVha31pZigoIWF8fGk9PTApJiZlLmw8PXNbaV1bMV0mJihkPSExLGUubD1zW2ldWzFdKSxkKXRocm93IG5ldyBFcnJvcigiUmVhZCBFcnJvcjogRXhwZWN0ZWQgYWRkcmVzcyAiK3NbaV1bMV0rIiBhdCAiK2UubCsiIDoiK2kpfWlmKGEpe3ZhciB2PWFbc1tpXVswXV07aWYoeFt2Lm5dPXV0KGUsdi50LHtyYXc6ITB9KSx2LnA9PT0idmVyc2lvbiImJih4W3Yubl09U3RyaW5nKHhbdi5uXT4+MTYpKyIuIisoIjAwMDAiK1N0cmluZyh4W3Yubl0mNjU1MzUpKS5zbGljZSgtNCkpLHYubj09IkNvZGVQYWdlIilzd2l0Y2goeFt2Lm5dKXtjYXNlIDA6eFt2Lm5dPTEyNTI7Y2FzZSA4NzQ6Y2FzZSA5MzI6Y2FzZSA5MzY6Y2FzZSA5NDk6Y2FzZSA5NTA6Y2FzZSAxMjUwOmNhc2UgMTI1MTpjYXNlIDEyNTM6Y2FzZSAxMjU0OmNhc2UgMTI1NTpjYXNlIDEyNTY6Y2FzZSAxMjU3OmNhc2UgMTI1ODpjYXNlIDFlNDpjYXNlIDEyMDA6Y2FzZSAxMjAxOmNhc2UgMTI1MjpjYXNlIDY1ZTM6Y2FzZS01MzY6Y2FzZSA2NTAwMTpjYXNlLTUzNTpfcihjPXhbdi5uXT4+PjAmNjU1MzUpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBDb2RlUGFnZTogIit4W3Yubl0pfX1lbHNlIGlmKHNbaV1bMF09PT0xKXtpZihjPXguQ29kZVBhZ2U9dXQoZSx6dCksX3IoYyksZiE9PS0xKXt2YXIgdT1lLmw7ZS5sPXNbZl1bMV0sbz16bihlLGMpLGUubD11fX1lbHNlIGlmKHNbaV1bMF09PT0wKXtpZihjPT09MCl7Zj1pLGUubD1zW2krMV1bMV07Y29udGludWV9bz16bihlLGMpfWVsc2V7dmFyIGc9b1tzW2ldWzBdXSxGO3N3aXRjaChlW2UubF0pe2Nhc2UgNjU6ZS5sKz00LEY9S24oZSk7YnJlYWs7Y2FzZSAzMDplLmwrPTQsRj1KdChlLGVbZS5sLTRdKS5yZXBsYWNlKC9cdTAwMDArJC8sIiIpO2JyZWFrO2Nhc2UgMzE6ZS5sKz00LEY9SnQoZSxlW2UubC00XSkucmVwbGFjZSgvXHUwMDAwKyQvLCIiKTticmVhaztjYXNlIDM6ZS5sKz00LEY9ZS5yZWFkX3NoaWZ0KDQsImkiKTticmVhaztjYXNlIDE5OmUubCs9NCxGPWUucmVhZF9zaGlmdCg0KTticmVhaztjYXNlIDU6ZS5sKz00LEY9ZS5yZWFkX3NoaWZ0KDgsImYiKTticmVhaztjYXNlIDExOmUubCs9NCxGPVJlKGUsNCk7YnJlYWs7Y2FzZSA2NDplLmwrPTQsRj1XZShqdChlKSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoInVucGFyc2VkIHZhbHVlOiAiK2VbZS5sXSl9eFtnXT1GfX1yZXR1cm4gZS5sPXIrbix4fWZ1bmN0aW9uIGpuKGUsYSxyKXt2YXIgbj1lLmNvbnRlbnQ7aWYoIW4pcmV0dXJue307JGUobiwwKTt2YXIgdCxzLGksYyxmPTA7bi5jaGsoImZlZmYiLCJCeXRlIE9yZGVyOiAiKSxuLnJlYWRfc2hpZnQoMik7dmFyIG89bi5yZWFkX3NoaWZ0KDQpLGw9bi5yZWFkX3NoaWZ0KDE2KTtpZihsIT09bWUudXRpbHMuY29uc3RzLkhFQURFUl9DTFNJRCYmbCE9PXIpdGhyb3cgbmV3IEVycm9yKCJCYWQgUHJvcGVydHlTZXQgQ0xTSUQgIitsKTtpZih0PW4ucmVhZF9zaGlmdCg0KSx0IT09MSYmdCE9PTIpdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgI1NldHM6ICIrdCk7aWYocz1uLnJlYWRfc2hpZnQoMTYpLGM9bi5yZWFkX3NoaWZ0KDQpLHQ9PT0xJiZjIT09bi5sKXRocm93IG5ldyBFcnJvcigiTGVuZ3RoIG1pc21hdGNoOiAiK2MrIiAhPT0gIituLmwpO3Q9PT0yJiYoaT1uLnJlYWRfc2hpZnQoMTYpLGY9bi5yZWFkX3NoaWZ0KDQpKTt2YXIgaD1ZbihuLGEpLHg9e1N5c3RlbUlkZW50aWZpZXI6b307Zm9yKHZhciBkIGluIGgpeFtkXT1oW2RdO2lmKHguRk1USUQ9cyx0PT09MSlyZXR1cm4geDtpZihmLW4ubD09MiYmKG4ubCs9Miksbi5sIT09Zil0aHJvdyBuZXcgRXJyb3IoIkxlbmd0aCBtaXNtYXRjaCAyOiAiK24ubCsiICE9PSAiK2YpO3ZhciB2O3RyeXt2PVluKG4sbnVsbCl9Y2F0Y2h7fWZvcihkIGluIHYpeFtkXT12W2RdO3JldHVybiB4LkZNVElEPVtzLGldLHh9ZnVuY3Rpb24gJHIoZSxhKXtyZXR1cm4gZS5yZWFkX3NoaWZ0KGEpLG51bGx9ZnVuY3Rpb24gY2YoZSxhLHIpe2Zvcih2YXIgbj1bXSx0PWUubCthO2UubDx0OyluLnB1c2gocihlLHQtZS5sKSk7aWYodCE9PWUubCl0aHJvdyBuZXcgRXJyb3IoIlNsdXJwIGVycm9yIik7cmV0dXJuIG59ZnVuY3Rpb24gUmUoZSxhKXtyZXR1cm4gZS5yZWFkX3NoaWZ0KGEpPT09MX1mdW5jdGlvbiBNZShlKXtyZXR1cm4gZS5yZWFkX3NoaWZ0KDIsInUiKX1mdW5jdGlvbiBKbihlLGEpe3JldHVybiBjZihlLGEsTWUpfWZ1bmN0aW9uIGZmKGUpe3ZhciBhPWUucmVhZF9zaGlmdCgxKSxyPWUucmVhZF9zaGlmdCgxKTtyZXR1cm4gcj09PTE/YTphPT09MX1mdW5jdGlvbiBNYShlLGEscil7dmFyIG49ZS5yZWFkX3NoaWZ0KHImJnIuYmlmZj49MTI/MjoxKSx0PSJzYmNzLWNvbnQiO2lmKHImJnIuYmlmZj49OCwhcnx8ci5iaWZmPT04KXt2YXIgcz1lLnJlYWRfc2hpZnQoMSk7cyYmKHQ9ImRiY3MtY29udCIpfWVsc2Ugci5iaWZmPT0xMiYmKHQ9IndzdHIiKTtyLmJpZmY+PTImJnIuYmlmZjw9NSYmKHQ9ImNwc3RyIik7dmFyIGk9bj9lLnJlYWRfc2hpZnQobix0KToiIjtyZXR1cm4gaX1mdW5jdGlvbiBvZihlKXt2YXIgYT1lLnJlYWRfc2hpZnQoMikscj1lLnJlYWRfc2hpZnQoMSksbj1yJjQsdD1yJjgscz0xKyhyJjEpLGk9MCxjLGY9e307dCYmKGk9ZS5yZWFkX3NoaWZ0KDIpKSxuJiYoYz1lLnJlYWRfc2hpZnQoNCkpO3ZhciBvPXM9PTI/ImRiY3MtY29udCI6InNiY3MtY29udCIsbD1hPT09MD8iIjplLnJlYWRfc2hpZnQoYSxvKTtyZXR1cm4gdCYmKGUubCs9NCppKSxuJiYoZS5sKz1jKSxmLnQ9bCx0fHwoZi5yYXc9Ijx0PiIrZi50KyI8L3Q+IixmLnI9Zi50KSxmfWZ1bmN0aW9uIGNhKGUsYSxyKXt2YXIgbjtpZihyKXtpZihyLmJpZmY+PTImJnIuYmlmZjw9NSlyZXR1cm4gZS5yZWFkX3NoaWZ0KGEsImNwc3RyIik7aWYoci5iaWZmPj0xMilyZXR1cm4gZS5yZWFkX3NoaWZ0KGEsImRiY3MtY29udCIpfXZhciB0PWUucmVhZF9zaGlmdCgxKTtyZXR1cm4gdD09PTA/bj1lLnJlYWRfc2hpZnQoYSwic2Jjcy1jb250Iik6bj1lLnJlYWRfc2hpZnQoYSwiZGJjcy1jb250Iiksbn1mdW5jdGlvbiBCYShlLGEscil7dmFyIG49ZS5yZWFkX3NoaWZ0KHImJnIuYmlmZj09Mj8xOjIpO3JldHVybiBuPT09MD8oZS5sKyssIiIpOmNhKGUsbixyKX1mdW5jdGlvbiBmYShlLGEscil7aWYoci5iaWZmPjUpcmV0dXJuIEJhKGUsYSxyKTt2YXIgbj1lLnJlYWRfc2hpZnQoMSk7cmV0dXJuIG49PT0wPyhlLmwrKywiIik6ZS5yZWFkX3NoaWZ0KG4sci5iaWZmPD00fHwhZS5sZW5zPyJjcHN0ciI6InNiY3MtY29udCIpfWZ1bmN0aW9uIGxmKGUpe3ZhciBhPWUucmVhZF9zaGlmdCgxKTtlLmwrKzt2YXIgcj1lLnJlYWRfc2hpZnQoMik7cmV0dXJuIGUubCs9MixbYSxyXX1mdW5jdGlvbiBoZihlKXt2YXIgYT1lLnJlYWRfc2hpZnQoNCkscj1lLmwsbj0hMTthPjI0JiYoZS5sKz1hLTI0LGUucmVhZF9zaGlmdCgxNik9PT0iNzk1ODgxZjQzYjFkN2Y0OGFmMmM4MjVkYzQ4NTI3NjMiJiYobj0hMCksZS5sPXIpO3ZhciB0PWUucmVhZF9zaGlmdCgobj9hLTI0OmEpPj4xLCJ1dGYxNmxlIikucmVwbGFjZShyciwiIik7cmV0dXJuIG4mJihlLmwrPTI0KSx0fWZ1bmN0aW9uIHVmKGUpe2Zvcih2YXIgYT1lLnJlYWRfc2hpZnQoMikscj0iIjthLS0gPjA7KXIrPSIuLi8iO3ZhciBuPWUucmVhZF9zaGlmdCgwLCJscHN0ci1hbnNpIik7aWYoZS5sKz0yLGUucmVhZF9zaGlmdCgyKSE9NTcwMDUpdGhyb3cgbmV3IEVycm9yKCJCYWQgRmlsZU1vbmlrZXIiKTt2YXIgdD1lLnJlYWRfc2hpZnQoNCk7aWYodD09PTApcmV0dXJuIHIrbi5yZXBsYWNlKC9cXC9nLCIvIik7dmFyIHM9ZS5yZWFkX3NoaWZ0KDQpO2lmKGUucmVhZF9zaGlmdCgyKSE9Myl0aHJvdyBuZXcgRXJyb3IoIkJhZCBGaWxlTW9uaWtlciIpO3ZhciBpPWUucmVhZF9zaGlmdChzPj4xLCJ1dGYxNmxlIikucmVwbGFjZShyciwiIik7cmV0dXJuIHIraX1mdW5jdGlvbiB4ZihlLGEpe3ZhciByPWUucmVhZF9zaGlmdCgxNik7c3dpdGNoKHIpe2Nhc2UiZTBjOWVhNzlmOWJhY2UxMThjODIwMGFhMDA0YmE5MGIiOnJldHVybiBoZihlKTtjYXNlIjAzMDMwMDAwMDAwMDAwMDBjMDAwMDAwMDAwMDAwMDQ2IjpyZXR1cm4gdWYoZSk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIE1vbmlrZXIgIityKX19ZnVuY3Rpb24geHQoZSl7dmFyIGE9ZS5yZWFkX3NoaWZ0KDQpLHI9YT4wP2UucmVhZF9zaGlmdChhLCJ1dGYxNmxlIikucmVwbGFjZShyciwiIik6IiI7cmV0dXJuIHJ9ZnVuY3Rpb24gZGYoZSxhKXt2YXIgcj1lLmwrYSxuPWUucmVhZF9zaGlmdCg0KTtpZihuIT09Mil0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBzdHJlYW1WZXJzaW9uOiAiK24pO3ZhciB0PWUucmVhZF9zaGlmdCgyKTtlLmwrPTI7dmFyIHMsaSxjLGYsbz0iIixsLGg7dCYxNiYmKHM9eHQoZSxyLWUubCkpLHQmMTI4JiYoaT14dChlLHItZS5sKSksKHQmMjU3KT09PTI1NyYmKGM9eHQoZSxyLWUubCkpLCh0JjI1Nyk9PT0xJiYoZj14ZihlLHItZS5sKSksdCY4JiYobz14dChlLHItZS5sKSksdCYzMiYmKGw9ZS5yZWFkX3NoaWZ0KDE2KSksdCY2NCYmKGg9anQoZSkpLGUubD1yO3ZhciB4PWl8fGN8fGZ8fCIiO3gmJm8mJih4Kz0iIyIrbykseHx8KHg9IiMiK28pLHQmMiYmeC5jaGFyQXQoMCk9PSIvIiYmeC5jaGFyQXQoMSkhPSIvIiYmKHg9ImZpbGU6Ly8iK3gpO3ZhciBkPXtUYXJnZXQ6eH07cmV0dXJuIGwmJihkLmd1aWQ9bCksaCYmKGQudGltZT1oKSxzJiYoZC5Ub29sdGlwPXMpLGR9ZnVuY3Rpb24gWm4oZSl7dmFyIGE9ZS5yZWFkX3NoaWZ0KDEpLHI9ZS5yZWFkX3NoaWZ0KDEpLG49ZS5yZWFkX3NoaWZ0KDEpLHQ9ZS5yZWFkX3NoaWZ0KDEpO3JldHVyblthLHIsbix0XX1mdW5jdGlvbiBxbihlLGEpe3ZhciByPVpuKGUpO3JldHVybiByWzNdPTAscn1mdW5jdGlvbiB5cihlKXt2YXIgYT1lLnJlYWRfc2hpZnQoMikscj1lLnJlYWRfc2hpZnQoMiksbj1lLnJlYWRfc2hpZnQoMik7cmV0dXJue3I6YSxjOnIsaXhmZTpufX1mdW5jdGlvbiB2ZihlKXt2YXIgYT1lLnJlYWRfc2hpZnQoMikscj1lLnJlYWRfc2hpZnQoMik7cmV0dXJuIGUubCs9OCx7dHlwZTphLGZsYWdzOnJ9fWZ1bmN0aW9uIHBmKGUsYSxyKXtyZXR1cm4gYT09PTA/IiI6ZmEoZSxhLHIpfWZ1bmN0aW9uIGdmKGUsYSxyKXt2YXIgbj1yLmJpZmY+OD80OjIsdD1lLnJlYWRfc2hpZnQobikscz1lLnJlYWRfc2hpZnQobiwiaSIpLGk9ZS5yZWFkX3NoaWZ0KG4sImkiKTtyZXR1cm5bdCxzLGldfWZ1bmN0aW9uIFFuKGUpe3ZhciBhPWUucmVhZF9zaGlmdCgyKSxyPSR0KGUpO3JldHVyblthLHJdfWZ1bmN0aW9uIG1mKGUsYSxyKXtlLmwrPTQsYS09NDt2YXIgbj1lLmwrYSx0PU1hKGUsYSxyKSxzPWUucmVhZF9zaGlmdCgyKTtpZihuLT1lLmwscyE9PW4pdGhyb3cgbmV3IEVycm9yKCJNYWxmb3JtZWQgQWRkaW5VZGY6IHBhZGRpbmcgPSAiK24rIiAhPSAiK3MpO3JldHVybiBlLmwrPXMsdH1mdW5jdGlvbiBkdChlKXt2YXIgYT1lLnJlYWRfc2hpZnQoMikscj1lLnJlYWRfc2hpZnQoMiksbj1lLnJlYWRfc2hpZnQoMiksdD1lLnJlYWRfc2hpZnQoMik7cmV0dXJue3M6e2M6bixyOmF9LGU6e2M6dCxyfX19ZnVuY3Rpb24gZXMoZSl7dmFyIGE9ZS5yZWFkX3NoaWZ0KDIpLHI9ZS5yZWFkX3NoaWZ0KDIpLG49ZS5yZWFkX3NoaWZ0KDEpLHQ9ZS5yZWFkX3NoaWZ0KDEpO3JldHVybntzOntjOm4scjphfSxlOntjOnQscn19fXZhciBfZj1lcztmdW5jdGlvbiBycyhlKXtlLmwrPTQ7dmFyIGE9ZS5yZWFkX3NoaWZ0KDIpLHI9ZS5yZWFkX3NoaWZ0KDIpLG49ZS5yZWFkX3NoaWZ0KDIpO3JldHVybiBlLmwrPTEyLFtyLGEsbl19ZnVuY3Rpb24gRWYoZSl7dmFyIGE9e307cmV0dXJuIGUubCs9NCxlLmwrPTE2LGEuZlNoYXJlZE5vdGU9ZS5yZWFkX3NoaWZ0KDIpLGUubCs9NCxhfWZ1bmN0aW9uIFRmKGUpe3ZhciBhPXt9O3JldHVybiBlLmwrPTQsZS5jZj1lLnJlYWRfc2hpZnQoMiksYX1mdW5jdGlvbiBaZShlKXtlLmwrPTIsZS5sKz1lLnJlYWRfc2hpZnQoMil9dmFyIGtmPXswOlplLDQ6WmUsNTpaZSw2OlplLDc6VGYsODpaZSw5OlplLDEwOlplLDExOlplLDEyOlplLDEzOkVmLDE0OlplLDE1OlplLDE2OlplLDE3OlplLDE4OlplLDE5OlplLDIwOlplLDIxOnJzfTtmdW5jdGlvbiB3ZihlLGEpe2Zvcih2YXIgcj1lLmwrYSxuPVtdO2UubDxyOyl7dmFyIHQ9ZS5yZWFkX3NoaWZ0KDIpO2UubC09Mjt0cnl7bi5wdXNoKGtmW3RdKGUsci1lLmwpKX1jYXRjaHtyZXR1cm4gZS5sPXIsbn19cmV0dXJuIGUubCE9ciYmKGUubD1yKSxufWZ1bmN0aW9uIHZ0KGUsYSl7dmFyIHI9e0JJRkZWZXI6MCxkdDowfTtzd2l0Y2goci5CSUZGVmVyPWUucmVhZF9zaGlmdCgyKSxhLT0yLGE+PTImJihyLmR0PWUucmVhZF9zaGlmdCgyKSxlLmwtPTIpLHIuQklGRlZlcil7Y2FzZSAxNTM2OmNhc2UgMTI4MDpjYXNlIDEwMjQ6Y2FzZSA3Njg6Y2FzZSA1MTI6Y2FzZSAyOmNhc2UgNzpicmVhaztkZWZhdWx0OmlmKGE+Nil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgQklGRiBWZXIgIityLkJJRkZWZXIpfXJldHVybiBlLnJlYWRfc2hpZnQoYSkscn1mdW5jdGlvbiBBZihlLGEpe3JldHVybiBhPT09MHx8ZS5yZWFkX3NoaWZ0KDIpLDEyMDB9ZnVuY3Rpb24gRmYoZSxhLHIpe2lmKHIuZW5jKXJldHVybiBlLmwrPWEsIiI7dmFyIG49ZS5sLHQ9ZmEoZSwwLHIpO3JldHVybiBlLnJlYWRfc2hpZnQoYStuLWUubCksdH1mdW5jdGlvbiBTZihlLGEscil7dmFyIG49ciYmci5iaWZmPT04fHxhPT0yP2UucmVhZF9zaGlmdCgyKTooZS5sKz1hLDApO3JldHVybntmRGlhbG9nOm4mMTYsZkJlbG93Om4mNjQsZlJpZ2h0Om4mMTI4fX1mdW5jdGlvbiBDZihlLGEscil7dmFyIG49ZS5yZWFkX3NoaWZ0KDQpLHQ9ZS5yZWFkX3NoaWZ0KDEpJjMscz1lLnJlYWRfc2hpZnQoMSk7c3dpdGNoKHMpe2Nhc2UgMDpzPSJXb3Jrc2hlZXQiO2JyZWFrO2Nhc2UgMTpzPSJNYWNyb3NoZWV0IjticmVhaztjYXNlIDI6cz0iQ2hhcnRzaGVldCI7YnJlYWs7Y2FzZSA2OnM9IlZCQU1vZHVsZSI7YnJlYWt9dmFyIGk9TWEoZSwwLHIpO3JldHVybiBpLmxlbmd0aD09PTAmJihpPSJTaGVldDEiKSx7cG9zOm4saHM6dCxkdDpzLG5hbWU6aX19ZnVuY3Rpb24geWYoZSxhKXtmb3IodmFyIHI9ZS5sK2Esbj1lLnJlYWRfc2hpZnQoNCksdD1lLnJlYWRfc2hpZnQoNCkscz1bXSxpPTA7aSE9dCYmZS5sPHI7KytpKXMucHVzaChvZihlKSk7cmV0dXJuIHMuQ291bnQ9bixzLlVuaXF1ZT10LHN9ZnVuY3Rpb24gRGYoZSxhKXt2YXIgcj17fTtyZXR1cm4gci5kc3N0PWUucmVhZF9zaGlmdCgyKSxlLmwrPWEtMixyfWZ1bmN0aW9uIE9mKGUpe3ZhciBhPXt9O2Eucj1lLnJlYWRfc2hpZnQoMiksYS5jPWUucmVhZF9zaGlmdCgyKSxhLmNudD1lLnJlYWRfc2hpZnQoMiktYS5jO3ZhciByPWUucmVhZF9zaGlmdCgyKTtlLmwrPTQ7dmFyIG49ZS5yZWFkX3NoaWZ0KDEpO3JldHVybiBlLmwrPTMsbiY3JiYoYS5sZXZlbD1uJjcpLG4mMzImJihhLmhpZGRlbj0hMCksbiY2NCYmKGEuaHB0PXIvMjApLGF9ZnVuY3Rpb24gUmYoZSl7dmFyIGE9dmYoZSk7aWYoYS50eXBlIT0yMjExKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBGdXR1cmUgUmVjb3JkICIrYS50eXBlKTt2YXIgcj1lLnJlYWRfc2hpZnQoNCk7cmV0dXJuIHIhPT0wfWZ1bmN0aW9uIElmKGUpe3JldHVybiBlLnJlYWRfc2hpZnQoMiksZS5yZWFkX3NoaWZ0KDQpfWZ1bmN0aW9uIGFzKGUsYSxyKXt2YXIgbj0wO3ImJnIuYmlmZj09Mnx8KG49ZS5yZWFkX3NoaWZ0KDIpKTt2YXIgdD1lLnJlYWRfc2hpZnQoMik7ciYmci5iaWZmPT0yJiYobj0xLSh0Pj4xNSksdCY9MzI3NjcpO3ZhciBzPXtVbnN5bmNlZDpuJjEsRHlaZXJvOihuJjIpPj4xLEV4QXNjOihuJjQpPj4yLEV4RHNjOihuJjgpPj4zfTtyZXR1cm5bcyx0XX1mdW5jdGlvbiBOZihlKXt2YXIgYT1lLnJlYWRfc2hpZnQoMikscj1lLnJlYWRfc2hpZnQoMiksbj1lLnJlYWRfc2hpZnQoMiksdD1lLnJlYWRfc2hpZnQoMikscz1lLnJlYWRfc2hpZnQoMiksaT1lLnJlYWRfc2hpZnQoMiksYz1lLnJlYWRfc2hpZnQoMiksZj1lLnJlYWRfc2hpZnQoMiksbz1lLnJlYWRfc2hpZnQoMik7cmV0dXJue1BvczpbYSxyXSxEaW06W24sdF0sRmxhZ3M6cyxDdXJUYWI6aSxGaXJzdFRhYjpjLFNlbGVjdGVkOmYsVGFiUmF0aW86b319ZnVuY3Rpb24gUGYoZSxhLHIpe2lmKHImJnIuYmlmZj49MiYmci5iaWZmPDUpcmV0dXJue307dmFyIG49ZS5yZWFkX3NoaWZ0KDIpO3JldHVybntSVEw6biY2NH19ZnVuY3Rpb24gTGYoKXt9ZnVuY3Rpb24gTWYoZSxhLHIpe3ZhciBuPXtkeUhlaWdodDplLnJlYWRfc2hpZnQoMiksZmw6ZS5yZWFkX3NoaWZ0KDIpfTtzd2l0Y2gociYmci5iaWZmfHw4KXtjYXNlIDI6YnJlYWs7Y2FzZSAzOmNhc2UgNDplLmwrPTI7YnJlYWs7ZGVmYXVsdDplLmwrPTEwO2JyZWFrfXJldHVybiBuLm5hbWU9TWEoZSwwLHIpLG59ZnVuY3Rpb24gQmYoZSl7dmFyIGE9eXIoZSk7cmV0dXJuIGEuaXNzdD1lLnJlYWRfc2hpZnQoNCksYX1mdW5jdGlvbiBiZihlLGEscil7ci5iaWZmZ3Vlc3MmJnIuYmlmZj09MiYmKHIuYmlmZj01KTt2YXIgbj1lLmwrYSx0PXlyKGUpO3IuYmlmZj09MiYmZS5sKys7dmFyIHM9QmEoZSxuLWUubCxyKTtyZXR1cm4gdC52YWw9cyx0fWZ1bmN0aW9uIFVmKGUsYSxyKXt2YXIgbj1lLnJlYWRfc2hpZnQoMiksdD1mYShlLDAscik7cmV0dXJuW24sdF19dmFyIEhmPWZhO2Z1bmN0aW9uIHRzKGUsYSxyKXt2YXIgbj1lLmwrYSx0PXIuYmlmZj09OHx8IXIuYmlmZj80OjIscz1lLnJlYWRfc2hpZnQodCksaT1lLnJlYWRfc2hpZnQodCksYz1lLnJlYWRfc2hpZnQoMiksZj1lLnJlYWRfc2hpZnQoMik7cmV0dXJuIGUubD1uLHtzOntyOnMsY30sZTp7cjppLGM6Zn19fWZ1bmN0aW9uIFZmKGUpe3ZhciBhPWUucmVhZF9zaGlmdCgyKSxyPWUucmVhZF9zaGlmdCgyKSxuPVFuKGUpO3JldHVybntyOmEsYzpyLGl4ZmU6blswXSxya251bTpuWzFdfX1mdW5jdGlvbiBXZihlLGEpe2Zvcih2YXIgcj1lLmwrYS0yLG49ZS5yZWFkX3NoaWZ0KDIpLHQ9ZS5yZWFkX3NoaWZ0KDIpLHM9W107ZS5sPHI7KXMucHVzaChRbihlKSk7aWYoZS5sIT09cil0aHJvdyBuZXcgRXJyb3IoIk11bFJLIHJlYWQgZXJyb3IiKTt2YXIgaT1lLnJlYWRfc2hpZnQoMik7aWYocy5sZW5ndGghPWktdCsxKXRocm93IG5ldyBFcnJvcigiTXVsUksgbGVuZ3RoIG1pc21hdGNoIik7cmV0dXJue3I6bixjOnQsQzppLHJrcmVjOnN9fWZ1bmN0aW9uIEdmKGUsYSl7Zm9yKHZhciByPWUubCthLTIsbj1lLnJlYWRfc2hpZnQoMiksdD1lLnJlYWRfc2hpZnQoMikscz1bXTtlLmw8cjspcy5wdXNoKGUucmVhZF9zaGlmdCgyKSk7aWYoZS5sIT09cil0aHJvdyBuZXcgRXJyb3IoIk11bEJsYW5rIHJlYWQgZXJyb3IiKTt2YXIgaT1lLnJlYWRfc2hpZnQoMik7aWYocy5sZW5ndGghPWktdCsxKXRocm93IG5ldyBFcnJvcigiTXVsQmxhbmsgbGVuZ3RoIG1pc21hdGNoIik7cmV0dXJue3I6bixjOnQsQzppLGl4ZmU6c319ZnVuY3Rpb24gWGYoZSxhLHIsbil7dmFyIHQ9e30scz1lLnJlYWRfc2hpZnQoNCksaT1lLnJlYWRfc2hpZnQoNCksYz1lLnJlYWRfc2hpZnQoNCksZj1lLnJlYWRfc2hpZnQoMik7cmV0dXJuIHQucGF0dGVyblR5cGU9SGNbYz4+MjZdLG4uY2VsbFN0eWxlcyYmKHQuYWxjPXMmNyx0LmZXcmFwPXM+PjMmMSx0LmFsY1Y9cz4+NCY3LHQuZkp1c3RMYXN0PXM+PjcmMSx0LnRyb3Q9cz4+OCYyNTUsdC5jSW5kZW50PXM+PjE2JjE1LHQuZlNocmlua1RvRml0PXM+PjIwJjEsdC5pUmVhZE9yZGVyPXM+PjIyJjIsdC5mQXRyTnVtPXM+PjI2JjEsdC5mQXRyRm50PXM+PjI3JjEsdC5mQXRyQWxjPXM+PjI4JjEsdC5mQXRyQmRyPXM+PjI5JjEsdC5mQXRyUGF0PXM+PjMwJjEsdC5mQXRyUHJvdD1zPj4zMSYxLHQuZGdMZWZ0PWkmMTUsdC5kZ1JpZ2h0PWk+PjQmMTUsdC5kZ1RvcD1pPj44JjE1LHQuZGdCb3R0b209aT4+MTImMTUsdC5pY3ZMZWZ0PWk+PjE2JjEyNyx0LmljdlJpZ2h0PWk+PjIzJjEyNyx0LmdyYml0RGlhZz1pPj4zMCYzLHQuaWN2VG9wPWMmMTI3LHQuaWN2Qm90dG9tPWM+PjcmMTI3LHQuaWN2RGlhZz1jPj4xNCYxMjcsdC5kZ0RpYWc9Yz4+MjEmMTUsdC5pY3ZGb3JlPWYmMTI3LHQuaWN2QmFjaz1mPj43JjEyNyx0LmZzeEJ1dHRvbj1mPj4xNCYxKSx0fWZ1bmN0aW9uICRmKGUsYSxyKXt2YXIgbj17fTtyZXR1cm4gbi5pZm50PWUucmVhZF9zaGlmdCgyKSxuLm51bUZtdElkPWUucmVhZF9zaGlmdCgyKSxuLmZsYWdzPWUucmVhZF9zaGlmdCgyKSxuLmZTdHlsZT1uLmZsYWdzPj4yJjEsYS09NixuLmRhdGE9WGYoZSxhLG4uZlN0eWxlLHIpLG59ZnVuY3Rpb24gemYoZSl7ZS5sKz00O3ZhciBhPVtlLnJlYWRfc2hpZnQoMiksZS5yZWFkX3NoaWZ0KDIpXTtpZihhWzBdIT09MCYmYVswXS0tLGFbMV0hPT0wJiZhWzFdLS0sYVswXT43fHxhWzFdPjcpdGhyb3cgbmV3IEVycm9yKCJCYWQgR3V0dGVyczogIithLmpvaW4oInwiKSk7cmV0dXJuIGF9ZnVuY3Rpb24gbnMoZSxhLHIpe3ZhciBuPXlyKGUpOyhyLmJpZmY9PTJ8fGE9PTkpJiYrK2UubDt2YXIgdD1mZihlKTtyZXR1cm4gbi52YWw9dCxuLnQ9dD09PSEwfHx0PT09ITE/ImIiOiJlIixufWZ1bmN0aW9uIEtmKGUsYSxyKXtyLmJpZmZndWVzcyYmci5iaWZmPT0yJiYoci5iaWZmPTUpO3ZhciBuPXlyKGUpLHQ9SmUoZSk7cmV0dXJuIG4udmFsPXQsbn12YXIgc3M9cGY7ZnVuY3Rpb24gWWYoZSxhLHIpe3ZhciBuPWUubCthLHQ9ZS5yZWFkX3NoaWZ0KDIpLHM9ZS5yZWFkX3NoaWZ0KDIpO2lmKHIuc2JjY2g9cyxzPT0xMDI1fHxzPT0xNDg0OSlyZXR1cm5bcyx0XTtpZihzPDF8fHM+MjU1KXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBTdXBCb29rIHR5cGU6ICIrcyk7Zm9yKHZhciBpPWNhKGUscyksYz1bXTtuPmUubDspYy5wdXNoKEJhKGUpKTtyZXR1cm5bcyx0LGksY119ZnVuY3Rpb24gaXMoZSxhLHIpe3ZhciBuPWUucmVhZF9zaGlmdCgyKSx0LHM9e2ZCdWlsdEluOm4mMSxmV2FudEFkdmlzZTpuPj4+MSYxLGZXYW50UGljdDpuPj4+MiYxLGZPbGU6bj4+PjMmMSxmT2xlTGluazpuPj4+NCYxLGNmOm4+Pj41JjEwMjMsZkljb246bj4+PjE1JjF9O3JldHVybiByLnNiY2NoPT09MTQ4NDkmJih0PW1mKGUsYS0yLHIpKSxzLmJvZHk9dHx8ZS5yZWFkX3NoaWZ0KGEtMiksdHlwZW9mIHQ9PSJzdHJpbmciJiYocy5OYW1lPXQpLHN9dmFyIGpmPVsiX3hsbm0uQ29uc29saWRhdGVfQXJlYSIsIl94bG5tLkF1dG9fT3BlbiIsIl94bG5tLkF1dG9fQ2xvc2UiLCJfeGxubS5FeHRyYWN0IiwiX3hsbm0uRGF0YWJhc2UiLCJfeGxubS5Dcml0ZXJpYSIsIl94bG5tLlByaW50X0FyZWEiLCJfeGxubS5QcmludF9UaXRsZXMiLCJfeGxubS5SZWNvcmRlciIsIl94bG5tLkRhdGFfRm9ybSIsIl94bG5tLkF1dG9fQWN0aXZhdGUiLCJfeGxubS5BdXRvX0RlYWN0aXZhdGUiLCJfeGxubS5TaGVldF9UaXRsZSIsIl94bG5tLl9GaWx0ZXJEYXRhYmFzZSJdO2Z1bmN0aW9uIGNzKGUsYSxyKXt2YXIgbj1lLmwrYSx0PWUucmVhZF9zaGlmdCgyKSxzPWUucmVhZF9zaGlmdCgxKSxpPWUucmVhZF9zaGlmdCgxKSxjPWUucmVhZF9zaGlmdChyJiZyLmJpZmY9PTI/MToyKSxmPTA7KCFyfHxyLmJpZmY+PTUpJiYoci5iaWZmIT01JiYoZS5sKz0yKSxmPWUucmVhZF9zaGlmdCgyKSxyLmJpZmY9PTUmJihlLmwrPTIpLGUubCs9NCk7dmFyIG89Y2EoZSxpLHIpO3QmMzImJihvPWpmW28uY2hhckNvZGVBdCgwKV0pO3ZhciBsPW4tZS5sO3ImJnIuYmlmZj09MiYmLS1sO3ZhciBoPW49PWUubHx8Yz09PTB8fCEobD4wKT9bXTpSaChlLGwscixjKTtyZXR1cm57Y2hLZXk6cyxOYW1lOm8saXRhYjpmLHJnY2U6aH19ZnVuY3Rpb24gZnMoZSxhLHIpe2lmKHIuYmlmZjw4KXJldHVybiBKZihlLGEscik7Zm9yKHZhciBuPVtdLHQ9ZS5sK2Escz1lLnJlYWRfc2hpZnQoci5iaWZmPjg/NDoyKTtzLS0hPT0wOyluLnB1c2goZ2YoZSxyLmJpZmY+OD8xMjo2LHIpKTtpZihlLmwhPXQpdGhyb3cgbmV3IEVycm9yKCJCYWQgRXh0ZXJuU2hlZXQ6ICIrZS5sKyIgIT0gIit0KTtyZXR1cm4gbn1mdW5jdGlvbiBKZihlLGEscil7ZVtlLmwrMV09PTMmJmVbZS5sXSsrO3ZhciBuPU1hKGUsYSxyKTtyZXR1cm4gbi5jaGFyQ29kZUF0KDApPT0zP24uc2xpY2UoMSk6bn1mdW5jdGlvbiBaZihlLGEscil7aWYoci5iaWZmPDgpe2UubCs9YTtyZXR1cm59dmFyIG49ZS5yZWFkX3NoaWZ0KDIpLHQ9ZS5yZWFkX3NoaWZ0KDIpLHM9Y2EoZSxuLHIpLGk9Y2EoZSx0LHIpO3JldHVybltzLGldfWZ1bmN0aW9uIHFmKGUsYSxyKXt2YXIgbj1lcyhlKTtlLmwrKzt2YXIgdD1lLnJlYWRfc2hpZnQoMSk7cmV0dXJuIGEtPTgsW0loKGUsYSxyKSx0LG5dfWZ1bmN0aW9uIG9zKGUsYSxyKXt2YXIgbj1fZihlKTtzd2l0Y2goci5iaWZmKXtjYXNlIDI6ZS5sKyssYS09NzticmVhaztjYXNlIDM6Y2FzZSA0OmUubCs9MixhLT04O2JyZWFrO2RlZmF1bHQ6ZS5sKz02LGEtPTEyfXJldHVybltuLERoKGUsYSxyKV19ZnVuY3Rpb24gUWYoZSl7dmFyIGE9ZS5yZWFkX3NoaWZ0KDQpIT09MCxyPWUucmVhZF9zaGlmdCg0KSE9PTAsbj1lLnJlYWRfc2hpZnQoNCk7cmV0dXJuW2EscixuXX1mdW5jdGlvbiBlbyhlLGEscil7aWYoIShyLmJpZmY8OCkpe3ZhciBuPWUucmVhZF9zaGlmdCgyKSx0PWUucmVhZF9zaGlmdCgyKSxzPWUucmVhZF9zaGlmdCgyKSxpPWUucmVhZF9zaGlmdCgyKSxjPWZhKGUsMCxyKTtyZXR1cm4gci5iaWZmPDgmJmUucmVhZF9zaGlmdCgxKSxbe3I6bixjOnR9LGMsaSxzXX19ZnVuY3Rpb24gcm8oZSxhLHIpe3JldHVybiBlbyhlLGEscil9ZnVuY3Rpb24gYW8oZSxhKXtmb3IodmFyIHI9W10sbj1lLnJlYWRfc2hpZnQoMik7bi0tOylyLnB1c2goZHQoZSkpO3JldHVybiByfWZ1bmN0aW9uIHRvKGUsYSxyKXtpZihyJiZyLmJpZmY8OClyZXR1cm4gc28oZSxhLHIpO3ZhciBuPXJzKGUpLHQ9d2YoZSxhLTIyLG5bMV0pO3JldHVybntjbW86bixmdDp0fX12YXIgbm89ezg6ZnVuY3Rpb24oZSxhKXt2YXIgcj1lLmwrYTtlLmwrPTEwO3ZhciBuPWUucmVhZF9zaGlmdCgyKTtlLmwrPTQsZS5sKz0yLGUubCs9MixlLmwrPTIsZS5sKz00O3ZhciB0PWUucmVhZF9zaGlmdCgxKTtyZXR1cm4gZS5sKz10LGUubD1yLHtmbXQ6bn19fTtmdW5jdGlvbiBzbyhlLGEscil7ZS5sKz00O3ZhciBuPWUucmVhZF9zaGlmdCgyKSx0PWUucmVhZF9zaGlmdCgyKSxzPWUucmVhZF9zaGlmdCgyKTtlLmwrPTIsZS5sKz0yLGUubCs9MixlLmwrPTIsZS5sKz0yLGUubCs9MixlLmwrPTIsZS5sKz0yLGUubCs9MixlLmwrPTYsYS09MzY7dmFyIGk9W107cmV0dXJuIGkucHVzaCgobm9bbl18fFllKShlLGEscikpLHtjbW86W3QsbixzXSxmdDppfX1mdW5jdGlvbiBpbyhlLGEscil7dmFyIG49ZS5sLHQ9IiI7dHJ5e2UubCs9NDt2YXIgcz0oci5sYXN0b2JqfHx7Y21vOlswLDBdfSkuY21vWzFdLGk7WzAsNSw3LDExLDEyLDE0XS5pbmRleE9mKHMpPT0tMT9lLmwrPTY6aT1sZihlLDYscik7dmFyIGM9ZS5yZWFkX3NoaWZ0KDIpO2UucmVhZF9zaGlmdCgyKSxNZShlLDIpO3ZhciBmPWUucmVhZF9zaGlmdCgyKTtlLmwrPWY7Zm9yKHZhciBvPTE7bzxlLmxlbnMubGVuZ3RoLTE7KytvKXtpZihlLmwtbiE9ZS5sZW5zW29dKXRocm93IG5ldyBFcnJvcigiVHhPOiBiYWQgY29udGludWUgcmVjb3JkIik7dmFyIGw9ZVtlLmxdLGg9Y2EoZSxlLmxlbnNbbysxXS1lLmxlbnNbb10tMSk7aWYodCs9aCx0Lmxlbmd0aD49KGw/YzoyKmMpKWJyZWFrfWlmKHQubGVuZ3RoIT09YyYmdC5sZW5ndGghPT1jKjIpdGhyb3cgbmV3IEVycm9yKCJjY2hUZXh0OiAiK2MrIiAhPSAiK3QubGVuZ3RoKTtyZXR1cm4gZS5sPW4rYSx7dH19Y2F0Y2h7cmV0dXJuIGUubD1uK2Ese3R9fX1mdW5jdGlvbiBjbyhlLGEpe3ZhciByPWR0KGUpO2UubCs9MTY7dmFyIG49ZGYoZSxhLTI0KTtyZXR1cm5bcixuXX1mdW5jdGlvbiBmbyhlLGEpe2UucmVhZF9zaGlmdCgyKTt2YXIgcj1kdChlKSxuPWUucmVhZF9zaGlmdCgoYS0xMCkvMiwiZGJjcy1jb250Iik7cmV0dXJuIG49bi5yZXBsYWNlKHJyLCIiKSxbcixuXX1mdW5jdGlvbiBvbyhlKXt2YXIgYT1bMCwwXSxyO3JldHVybiByPWUucmVhZF9zaGlmdCgyKSxhWzBdPWJuW3JdfHxyLHI9ZS5yZWFkX3NoaWZ0KDIpLGFbMV09Ym5bcl18fHIsYX1mdW5jdGlvbiBsbyhlKXtmb3IodmFyIGE9ZS5yZWFkX3NoaWZ0KDIpLHI9W107YS0tID4wOylyLnB1c2gocW4oZSkpO3JldHVybiByfWZ1bmN0aW9uIGhvKGUpe2Zvcih2YXIgYT1lLnJlYWRfc2hpZnQoMikscj1bXTthLS0gPjA7KXIucHVzaChxbihlKSk7cmV0dXJuIHJ9ZnVuY3Rpb24gdW8oZSl7ZS5sKz0yO3ZhciBhPXtjeGZzOjAsY3JjOjB9O3JldHVybiBhLmN4ZnM9ZS5yZWFkX3NoaWZ0KDIpLGEuY3JjPWUucmVhZF9zaGlmdCg0KSxhfWZ1bmN0aW9uIGxzKGUsYSxyKXtpZighci5jZWxsU3R5bGVzKXJldHVybiBZZShlLGEpO3ZhciBuPXImJnIuYmlmZj49MTI/NDoyLHQ9ZS5yZWFkX3NoaWZ0KG4pLHM9ZS5yZWFkX3NoaWZ0KG4pLGk9ZS5yZWFkX3NoaWZ0KG4pLGM9ZS5yZWFkX3NoaWZ0KG4pLGY9ZS5yZWFkX3NoaWZ0KDIpO249PTImJihlLmwrPTIpO3ZhciBvPXtzOnQsZTpzLHc6aSxpeGZlOmMsZmxhZ3M6Zn07cmV0dXJuKHIuYmlmZj49NXx8IXIuYmlmZikmJihvLmxldmVsPWY+PjgmNyksb31mdW5jdGlvbiB4byhlLGEpe3ZhciByPXt9O3JldHVybiBhPDMyfHwoZS5sKz0xNixyLmhlYWRlcj1KZShlKSxyLmZvb3Rlcj1KZShlKSxlLmwrPTIpLHJ9ZnVuY3Rpb24gdm8oZSxhLHIpe3ZhciBuPXthcmVhOiExfTtpZihyLmJpZmYhPTUpcmV0dXJuIGUubCs9YSxuO3ZhciB0PWUucmVhZF9zaGlmdCgxKTtyZXR1cm4gZS5sKz0zLHQmMTYmJihuLmFyZWE9ITApLG59dmFyIHBvPXlyLGdvPUpuLG1vPUJhO2Z1bmN0aW9uIF9vKGUpe3ZhciBhPWUucmVhZF9zaGlmdCgyKSxyPWUucmVhZF9zaGlmdCgyKSxuPWUucmVhZF9zaGlmdCg0KSx0PXtmbXQ6YSxlbnY6cixsZW46bixkYXRhOmUuc2xpY2UoZS5sLGUubCtuKX07cmV0dXJuIGUubCs9bix0fWZ1bmN0aW9uIEVvKGUsYSxyKXtyLmJpZmZndWVzcyYmci5iaWZmPT01JiYoci5iaWZmPTIpO3ZhciBuPXlyKGUpOysrZS5sO3ZhciB0PWZhKGUsYS03LHIpO3JldHVybiBuLnQ9InN0ciIsbi52YWw9dCxufWZ1bmN0aW9uIFRvKGUpe3ZhciBhPXlyKGUpOysrZS5sO3ZhciByPUplKGUpO3JldHVybiBhLnQ9Im4iLGEudmFsPXIsYX1mdW5jdGlvbiBrbyhlKXt2YXIgYT15cihlKTsrK2UubDt2YXIgcj1lLnJlYWRfc2hpZnQoMik7cmV0dXJuIGEudD0ibiIsYS52YWw9cixhfWZ1bmN0aW9uIHdvKGUpe3ZhciBhPWUucmVhZF9zaGlmdCgxKTtyZXR1cm4gYT09PTA/KGUubCsrLCIiKTplLnJlYWRfc2hpZnQoYSwic2Jjcy1jb250Iil9ZnVuY3Rpb24gQW8oZSxhKXtlLmwrPTYsZS5sKz0yLGUubCs9MSxlLmwrPTMsZS5sKz0xLGUubCs9YS0xM31mdW5jdGlvbiBGbyhlLGEscil7dmFyIG49ZS5sK2EsdD15cihlKSxzPWUucmVhZF9zaGlmdCgyKSxpPWNhKGUscyxyKTtyZXR1cm4gZS5sPW4sdC50PSJzdHIiLHQudmFsPWksdH12YXIgU289WzIsMyw0OCw0OSwxMzEsMTM5LDE0MCwyNDVdLGhzPWZ1bmN0aW9uKCl7dmFyIGU9ezE6NDM3LDI6ODUwLDM6MTI1Miw0OjFlNCwxMDA6ODUyLDEwMTo4NjYsMTAyOjg2NSwxMDM6ODYxLDEwNDo4OTUsMTA1OjYyMCwxMDY6NzM3LDEwNzo4NTcsMTIwOjk1MCwxMjE6OTQ5LDEyMjo5MzYsMTIzOjkzMiwxMjQ6ODc0LDEyNToxMjU1LDEyNjoxMjU2LDE1MDoxMDAwNywxNTE6MTAwMjksMTUyOjEwMDA2LDIwMDoxMjUwLDIwMToxMjUxLDIwMjoxMjU0LDIwMzoxMjUzLDA6MjAxMjcsODo4NjUsOTo0MzcsMTA6ODUwLDExOjQzNywxMzo0MzcsMTQ6ODUwLDE1OjQzNywxNjo4NTAsMTc6NDM3LDE4Ojg1MCwxOTo5MzIsMjA6ODUwLDIxOjQzNywyMjo4NTAsMjM6ODY1LDI0OjQzNywyNTo0MzcsMjY6ODUwLDI3OjQzNywyODo4NjMsMjk6ODUwLDMxOjg1MiwzNDo4NTIsMzU6ODUyLDM2Ojg2MCwzNzo4NTAsMzg6ODY2LDU1Ojg1MCw2NDo4NTIsNzc6OTM2LDc4Ojk0OSw3OTo5NTAsODA6ODc0LDg3OjEyNTIsODg6MTI1Miw4OToxMjUyLDEwODo4NjMsMTM0OjczNywxMzU6ODUyLDEzNjo4NTcsMjA0OjEyNTcsMjU1OjE2OTY5fSxhPUl0KHsxOjQzNywyOjg1MCwzOjEyNTIsNDoxZTQsMTAwOjg1MiwxMDE6ODY2LDEwMjo4NjUsMTAzOjg2MSwxMDQ6ODk1LDEwNTo2MjAsMTA2OjczNywxMDc6ODU3LDEyMDo5NTAsMTIxOjk0OSwxMjI6OTM2LDEyMzo5MzIsMTI0Ojg3NCwxMjU6MTI1NSwxMjY6MTI1NiwxNTA6MTAwMDcsMTUxOjEwMDI5LDE1MjoxMDAwNiwyMDA6MTI1MCwyMDE6MTI1MSwyMDI6MTI1NCwyMDM6MTI1MywwOjIwMTI3fSk7ZnVuY3Rpb24gcihjLGYpe3ZhciBvPVtdLGw9VnIoMSk7c3dpdGNoKGYudHlwZSl7Y2FzZSJiYXNlNjQiOmw9RXIoZnIoYykpO2JyZWFrO2Nhc2UiYmluYXJ5IjpsPUVyKGMpO2JyZWFrO2Nhc2UiYnVmZmVyIjpjYXNlImFycmF5IjpsPWM7YnJlYWt9JGUobCwwKTt2YXIgaD1sLnJlYWRfc2hpZnQoMSkseD0hIShoJjEzNiksZD0hMSx2PSExO3N3aXRjaChoKXtjYXNlIDI6YnJlYWs7Y2FzZSAzOmJyZWFrO2Nhc2UgNDg6ZD0hMCx4PSEwO2JyZWFrO2Nhc2UgNDk6ZD0hMCx4PSEwO2JyZWFrO2Nhc2UgMTMxOmJyZWFrO2Nhc2UgMTM5OmJyZWFrO2Nhc2UgMTQwOnY9ITA7YnJlYWs7Y2FzZSAyNDU6YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkRCRiBVbnN1cHBvcnRlZCBWZXJzaW9uOiAiK2gudG9TdHJpbmcoMTYpKX12YXIgdT0wLGc9NTIxO2g9PTImJih1PWwucmVhZF9zaGlmdCgyKSksbC5sKz0zLGghPTImJih1PWwucmVhZF9zaGlmdCg0KSksdT4xMDQ4NTc2JiYodT0xZTYpLGghPTImJihnPWwucmVhZF9zaGlmdCgyKSk7dmFyIEY9bC5yZWFkX3NoaWZ0KDIpLHk9Zi5jb2RlcGFnZXx8MTI1MjtoIT0yJiYobC5sKz0xNixsLnJlYWRfc2hpZnQoMSksbFtsLmxdIT09MCYmKHk9ZVtsW2wubF1dKSxsLmwrPTEsbC5sKz0yKSx2JiYobC5sKz0zNik7Zm9yKHZhciBfPVtdLE49e30sYj1NYXRoLm1pbihsLmxlbmd0aCxoPT0yPzUyMTpnLTEwLShkPzI2NDowKSksST12PzMyOjExO2wubDxiJiZsW2wubF0hPTEzOylzd2l0Y2goTj17fSxOLm5hbWU9d2EudXRpbHMuZGVjb2RlKHksbC5zbGljZShsLmwsbC5sK0kpKS5yZXBsYWNlKC9bXHUwMDAwXHJcbl0uKiQvZywiIiksbC5sKz1JLE4udHlwZT1TdHJpbmcuZnJvbUNoYXJDb2RlKGwucmVhZF9zaGlmdCgxKSksaCE9MiYmIXYmJihOLm9mZnNldD1sLnJlYWRfc2hpZnQoNCkpLE4ubGVuPWwucmVhZF9zaGlmdCgxKSxoPT0yJiYoTi5vZmZzZXQ9bC5yZWFkX3NoaWZ0KDIpKSxOLmRlYz1sLnJlYWRfc2hpZnQoMSksTi5uYW1lLmxlbmd0aCYmXy5wdXNoKE4pLGghPTImJihsLmwrPXY/MTM6MTQpLE4udHlwZSl7Y2FzZSJCIjooIWR8fE4ubGVuIT04KSYmZi5XVEYmJmNvbnNvbGUubG9nKCJTa2lwcGluZyAiK04ubmFtZSsiOiIrTi50eXBlKTticmVhaztjYXNlIkciOmNhc2UiUCI6Zi5XVEYmJmNvbnNvbGUubG9nKCJTa2lwcGluZyAiK04ubmFtZSsiOiIrTi50eXBlKTticmVhaztjYXNlIisiOmNhc2UiMCI6Y2FzZSJAIjpjYXNlIkMiOmNhc2UiRCI6Y2FzZSJGIjpjYXNlIkkiOmNhc2UiTCI6Y2FzZSJNIjpjYXNlIk4iOmNhc2UiTyI6Y2FzZSJUIjpjYXNlIlkiOmJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbmtub3duIEZpZWxkIFR5cGU6ICIrTi50eXBlKX1pZihsW2wubF0hPT0xMyYmKGwubD1nLTEpLGwucmVhZF9zaGlmdCgxKSE9PTEzKXRocm93IG5ldyBFcnJvcigiREJGIFRlcm1pbmF0b3Igbm90IGZvdW5kICIrbC5sKyIgIitsW2wubF0pO2wubD1nO3ZhciBBPTAsVj0wO2ZvcihvWzBdPVtdLFY9MDtWIT1fLmxlbmd0aDsrK1Ypb1swXVtWXT1fW1ZdLm5hbWU7Zm9yKDt1LS0gPjA7KXtpZihsW2wubF09PT00Mil7bC5sKz1GO2NvbnRpbnVlfWZvcigrK2wubCxvWysrQV09W10sVj0wLFY9MDtWIT1fLmxlbmd0aDsrK1Ype3ZhciBEPWwuc2xpY2UobC5sLGwubCtfW1ZdLmxlbik7bC5sKz1fW1ZdLmxlbiwkZShELDApO3ZhciB6PXdhLnV0aWxzLmRlY29kZSh5LEQpO3N3aXRjaChfW1ZdLnR5cGUpe2Nhc2UiQyI6ei50cmltKCkubGVuZ3RoJiYob1tBXVtWXT16LnJlcGxhY2UoL1xzKyQvLCIiKSk7YnJlYWs7Y2FzZSJEIjp6Lmxlbmd0aD09PTg/b1tBXVtWXT1uZXcgRGF0ZSgrei5zbGljZSgwLDQpLCt6LnNsaWNlKDQsNiktMSwrei5zbGljZSg2LDgpKTpvW0FdW1ZdPXo7YnJlYWs7Y2FzZSJGIjpvW0FdW1ZdPXBhcnNlRmxvYXQoei50cmltKCkpO2JyZWFrO2Nhc2UiKyI6Y2FzZSJJIjpvW0FdW1ZdPXY/RC5yZWFkX3NoaWZ0KC00LCJpIileMjE0NzQ4MzY0ODpELnJlYWRfc2hpZnQoNCwiaSIpO2JyZWFrO2Nhc2UiTCI6c3dpdGNoKHoudHJpbSgpLnRvVXBwZXJDYXNlKCkpe2Nhc2UiWSI6Y2FzZSJUIjpvW0FdW1ZdPSEwO2JyZWFrO2Nhc2UiTiI6Y2FzZSJGIjpvW0FdW1ZdPSExO2JyZWFrO2Nhc2UiIjpjYXNlIj8iOmJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJEQkYgVW5yZWNvZ25pemVkIEw6fCIreisifCIpfWJyZWFrO2Nhc2UiTSI6aWYoIXgpdGhyb3cgbmV3IEVycm9yKCJEQkYgVW5leHBlY3RlZCBNRU1PIGZvciB0eXBlICIraC50b1N0cmluZygxNikpO29bQV1bVl09IiMjTUVNTyMjIisodj9wYXJzZUludCh6LnRyaW0oKSwxMCk6RC5yZWFkX3NoaWZ0KDQpKTticmVhaztjYXNlIk4iOno9ei5yZXBsYWNlKC9cdTAwMDAvZywiIikudHJpbSgpLHomJnohPSIuIiYmKG9bQV1bVl09K3p8fDApO2JyZWFrO2Nhc2UiQCI6b1tBXVtWXT1uZXcgRGF0ZShELnJlYWRfc2hpZnQoLTgsImYiKS02MjEzNTY4MzJlNSk7YnJlYWs7Y2FzZSJUIjpvW0FdW1ZdPW5ldyBEYXRlKChELnJlYWRfc2hpZnQoNCktMjQ0MDU4OCkqODY0ZTUrRC5yZWFkX3NoaWZ0KDQpKTticmVhaztjYXNlIlkiOm9bQV1bVl09RC5yZWFkX3NoaWZ0KDQsImkiKS8xZTQrRC5yZWFkX3NoaWZ0KDQsImkiKS8xZTQqTWF0aC5wb3coMiwzMik7YnJlYWs7Y2FzZSJPIjpvW0FdW1ZdPS1ELnJlYWRfc2hpZnQoLTgsImYiKTticmVhaztjYXNlIkIiOmlmKGQmJl9bVl0ubGVuPT04KXtvW0FdW1ZdPUQucmVhZF9zaGlmdCg4LCJmIik7YnJlYWt9Y2FzZSJHIjpjYXNlIlAiOkQubCs9X1tWXS5sZW47YnJlYWs7Y2FzZSIwIjppZihfW1ZdLm5hbWU9PT0iX051bGxGbGFncyIpYnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkRCRiBVbnN1cHBvcnRlZCBkYXRhIHR5cGUgIitfW1ZdLnR5cGUpfX19aWYoaCE9MiYmbC5sPGwubGVuZ3RoJiZsW2wubCsrXSE9MjYpdGhyb3cgbmV3IEVycm9yKCJEQkYgRU9GIE1hcmtlciBtaXNzaW5nICIrKGwubC0xKSsiIG9mICIrbC5sZW5ndGgrIiAiK2xbbC5sLTFdLnRvU3RyaW5nKDE2KSk7cmV0dXJuIGYmJmYuc2hlZXRSb3dzJiYobz1vLnNsaWNlKDAsZi5zaGVldFJvd3MpKSxmLkRCRj1fLG99ZnVuY3Rpb24gbihjLGYpe3ZhciBvPWZ8fHt9O28uZGF0ZU5GfHwoby5kYXRlTkY9Inl5eXltbWRkIik7dmFyIGw9Z2EocihjLG8pLG8pO3JldHVybiBsWyIhY29scyJdPW8uREJGLm1hcChmdW5jdGlvbihoKXtyZXR1cm57d2NoOmgubGVuLERCRjpofX0pLGRlbGV0ZSBvLkRCRixsfWZ1bmN0aW9uIHQoYyxmKXt0cnl7cmV0dXJuIFhyKG4oYyxmKSxmKX1jYXRjaChvKXtpZihmJiZmLldURil0aHJvdyBvfXJldHVybntTaGVldE5hbWVzOltdLFNoZWV0czp7fX19dmFyIHM9e0I6OCxDOjI1MCxMOjEsRDo4LCI/IjowLCIiOjB9O2Z1bmN0aW9uIGkoYyxmKXt2YXIgbz1mfHx7fTtpZigrby5jb2RlcGFnZT49MCYmX3IoK28uY29kZXBhZ2UpLG8udHlwZT09InN0cmluZyIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgd3JpdGUgREJGIHRvIEpTIHN0cmluZyIpO3ZhciBsPWJ0KCksaD1nMChjLHtoZWFkZXI6MSxyYXc6ITAsY2VsbERhdGVzOiEwfSkseD1oWzBdLGQ9aC5zbGljZSgxKSx2PWNbIiFjb2xzIl18fFtdLHU9MCxnPTAsRj0wLHk9MTtmb3IodT0wO3U8eC5sZW5ndGg7Kyt1KXtpZigoKHZbdV18fHt9KS5EQkZ8fHt9KS5uYW1lKXt4W3VdPXZbdV0uREJGLm5hbWUsKytGO2NvbnRpbnVlfWlmKHhbdV0hPW51bGwpe2lmKCsrRix0eXBlb2YgeFt1XT09Im51bWJlciImJih4W3VdPXhbdV0udG9TdHJpbmcoMTApKSx0eXBlb2YgeFt1XSE9InN0cmluZyIpdGhyb3cgbmV3IEVycm9yKCJEQkYgSW52YWxpZCBjb2x1bW4gbmFtZSAiK3hbdV0rIiB8Iit0eXBlb2YgeFt1XSsifCIpO2lmKHguaW5kZXhPZih4W3VdKSE9PXUpe2ZvcihnPTA7ZzwxMDI0OysrZylpZih4LmluZGV4T2YoeFt1XSsiXyIrZyk9PS0xKXt4W3VdKz0iXyIrZzticmVha319fX12YXIgXz1PZShjWyIhcmVmIl0pLE49W10sYj1bXSxJPVtdO2Zvcih1PTA7dTw9Xy5lLmMtXy5zLmM7Kyt1KXt2YXIgQT0iIixWPSIiLEQ9MCx6PVtdO2ZvcihnPTA7ZzxkLmxlbmd0aDsrK2cpZFtnXVt1XSE9bnVsbCYmei5wdXNoKGRbZ11bdV0pO2lmKHoubGVuZ3RoPT0wfHx4W3VdPT1udWxsKXtOW3VdPSI/Ijtjb250aW51ZX1mb3IoZz0wO2c8ei5sZW5ndGg7KytnKXtzd2l0Y2godHlwZW9mIHpbZ10pe2Nhc2UibnVtYmVyIjpWPSJCIjticmVhaztjYXNlInN0cmluZyI6Vj0iQyI7YnJlYWs7Y2FzZSJib29sZWFuIjpWPSJMIjticmVhaztjYXNlIm9iamVjdCI6Vj16W2ddaW5zdGFuY2VvZiBEYXRlPyJEIjoiQyI7YnJlYWs7ZGVmYXVsdDpWPSJDIn1EPU1hdGgubWF4KEQsU3RyaW5nKHpbZ10pLmxlbmd0aCksQT1BJiZBIT1WPyJDIjpWfUQ+MjUwJiYoRD0yNTApLFY9KCh2W3VdfHx7fSkuREJGfHx7fSkudHlwZSxWPT0iQyImJnZbdV0uREJGLmxlbj5EJiYoRD12W3VdLkRCRi5sZW4pLEE9PSJCIiYmVj09Ik4iJiYoQT0iTiIsSVt1XT12W3VdLkRCRi5kZWMsRD12W3VdLkRCRi5sZW4pLGJbdV09QT09IkMifHxWPT0iTiI/RDpzW0FdfHwwLHkrPWJbdV0sTlt1XT1BfXZhciBHPWwubmV4dCgzMik7Zm9yKEcud3JpdGVfc2hpZnQoNCwzMTg5MDI1NzYpLEcud3JpdGVfc2hpZnQoNCxkLmxlbmd0aCksRy53cml0ZV9zaGlmdCgyLDI5NiszMipGKSxHLndyaXRlX3NoaWZ0KDIseSksdT0wO3U8NDsrK3UpRy53cml0ZV9zaGlmdCg0LDApO2ZvcihHLndyaXRlX3NoaWZ0KDQsMHwoK2FbdzBdfHwzKTw8OCksdT0wLGc9MDt1PHgubGVuZ3RoOysrdSlpZih4W3VdIT1udWxsKXt2YXIgUD1sLm5leHQoMzIpLEo9KHhbdV0uc2xpY2UoLTEwKSsiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIpLnNsaWNlKDAsMTEpO1Aud3JpdGVfc2hpZnQoMSxKLCJzYmNzIiksUC53cml0ZV9zaGlmdCgxLE5bdV09PSI/Ij8iQyI6Tlt1XSwic2JjcyIpLFAud3JpdGVfc2hpZnQoNCxnKSxQLndyaXRlX3NoaWZ0KDEsYlt1XXx8c1tOW3VdXXx8MCksUC53cml0ZV9zaGlmdCgxLElbdV18fDApLFAud3JpdGVfc2hpZnQoMSwyKSxQLndyaXRlX3NoaWZ0KDQsMCksUC53cml0ZV9zaGlmdCgxLDApLFAud3JpdGVfc2hpZnQoNCwwKSxQLndyaXRlX3NoaWZ0KDQsMCksZys9Ylt1XXx8c1tOW3VdXXx8MH12YXIgZmU9bC5uZXh0KDI2NCk7Zm9yKGZlLndyaXRlX3NoaWZ0KDQsMTMpLHU9MDt1PDY1OysrdSlmZS53cml0ZV9zaGlmdCg0LDApO2Zvcih1PTA7dTxkLmxlbmd0aDsrK3Upe3ZhciByZT1sLm5leHQoeSk7Zm9yKHJlLndyaXRlX3NoaWZ0KDEsMCksZz0wO2c8eC5sZW5ndGg7KytnKWlmKHhbZ10hPW51bGwpc3dpdGNoKE5bZ10pe2Nhc2UiTCI6cmUud3JpdGVfc2hpZnQoMSxkW3VdW2ddPT1udWxsPzYzOmRbdV1bZ10/ODQ6NzApO2JyZWFrO2Nhc2UiQiI6cmUud3JpdGVfc2hpZnQoOCxkW3VdW2ddfHwwLCJmIik7YnJlYWs7Y2FzZSJOIjp2YXIgY2U9IjAiO2Zvcih0eXBlb2YgZFt1XVtnXT09Im51bWJlciImJihjZT1kW3VdW2ddLnRvRml4ZWQoSVtnXXx8MCkpLEY9MDtGPGJbZ10tY2UubGVuZ3RoOysrRilyZS53cml0ZV9zaGlmdCgxLDMyKTtyZS53cml0ZV9zaGlmdCgxLGNlLCJzYmNzIik7YnJlYWs7Y2FzZSJEIjpkW3VdW2ddPyhyZS53cml0ZV9zaGlmdCg0LCgiMDAwMCIrZFt1XVtnXS5nZXRGdWxsWWVhcigpKS5zbGljZSgtNCksInNiY3MiKSxyZS53cml0ZV9zaGlmdCgyLCgiMDAiKyhkW3VdW2ddLmdldE1vbnRoKCkrMSkpLnNsaWNlKC0yKSwic2JjcyIpLHJlLndyaXRlX3NoaWZ0KDIsKCIwMCIrZFt1XVtnXS5nZXREYXRlKCkpLnNsaWNlKC0yKSwic2JjcyIpKTpyZS53cml0ZV9zaGlmdCg4LCIwMDAwMDAwMCIsInNiY3MiKTticmVhaztjYXNlIkMiOnZhciBpZT1TdHJpbmcoZFt1XVtnXSE9bnVsbD9kW3VdW2ddOiIiKS5zbGljZSgwLGJbZ10pO2ZvcihyZS53cml0ZV9zaGlmdCgxLGllLCJzYmNzIiksRj0wO0Y8YltnXS1pZS5sZW5ndGg7KytGKXJlLndyaXRlX3NoaWZ0KDEsMzIpO2JyZWFrfX1yZXR1cm4gbC5uZXh0KDEpLndyaXRlX3NoaWZ0KDEsMjYpLGwuZW5kKCl9cmV0dXJue3RvX3dvcmtib29rOnQsdG9fc2hlZXQ6bixmcm9tX3NoZWV0Oml9fSgpLENvPWZ1bmN0aW9uKCl7dmFyIGU9e0FBOiLDgCIsQkE6IsOBIixDQToiw4IiLERBOjE5NSxIQToiw4QiLEpBOjE5NyxBRToiw4giLEJFOiLDiSIsQ0U6IsOKIixIRToiw4siLEFJOiLDjCIsQkk6IsONIixDSToiw44iLEhJOiLDjyIsQU86IsOSIixCTzoiw5MiLENPOiLDlCIsRE86MjEzLEhPOiLDliIsQVU6IsOZIixCVToiw5oiLENVOiLDmyIsSFU6IsOcIixBYToiw6AiLEJhOiLDoSIsQ2E6IsOiIixEYToyMjcsSGE6IsOkIixKYToyMjksQWU6IsOoIixCZToiw6kiLENlOiLDqiIsSGU6IsOrIixBaToiw6wiLEJpOiLDrSIsQ2k6IsOuIixIaToiw68iLEFvOiLDsiIsQm86IsOzIixDbzoiw7QiLERvOjI0NSxIbzoiw7YiLEF1OiLDuSIsQnU6IsO6IixDdToiw7siLEh1OiLDvCIsS0M6IsOHIixLYzoiw6ciLHE6IsOmIix6OiLFkyIsYToiw4YiLGo6IsWSIixETjoyMDksRG46MjQxLEh5OjI1NSxTOjE2OSxjOjE3MCxSOjE3NCwiQiAiOjE4MCwwOjE3NiwxOjE3NywyOjE3OCwzOjE3OSw1OjE4MSw2OjE4Miw3OjE4MyxROjE4NSxrOjE4NixiOjIwOCxpOjIxNixsOjIyMixzOjI0MCx5OjI0OCwiISI6MTYxLCciJzoxNjIsIiMiOjE2MywiKCI6MTY0LCIlIjoxNjUsIiciOjE2NywiSCAiOjE2OCwiKyI6MTcxLCI7IjoxODcsIjwiOjE4OCwiPSI6MTg5LCI+IjoxOTAsIj8iOjE5MSwieyI6MjIzfSxhPW5ldyBSZWdFeHAoIlx4MUJOKCIrU3IoZSkuam9pbigifCIpLnJlcGxhY2UoL1x8XHxcfC8sInxcXHx8IikucmVwbGFjZSgvKFs/KCkrXSkvZywiXFwkMSIpKyJ8XFx8KSIsImdtIikscj1mdW5jdGlvbih4LGQpe3ZhciB2PWVbZF07cmV0dXJuIHR5cGVvZiB2PT0ibnVtYmVyIj9DMCh2KTp2fSxuPWZ1bmN0aW9uKHgsZCx2KXt2YXIgdT1kLmNoYXJDb2RlQXQoMCktMzI8PDR8di5jaGFyQ29kZUF0KDApLTQ4O3JldHVybiB1PT01OT94OkMwKHUpfTtlWyJ8Il09MjU0O2Z1bmN0aW9uIHQoeCxkKXtzd2l0Y2goZC50eXBlKXtjYXNlImJhc2U2NCI6cmV0dXJuIHMoZnIoeCksZCk7Y2FzZSJiaW5hcnkiOnJldHVybiBzKHgsZCk7Y2FzZSJidWZmZXIiOnJldHVybiBzKGdlJiZCdWZmZXIuaXNCdWZmZXIoeCk/eC50b1N0cmluZygiYmluYXJ5Iik6WnIoeCksZCk7Y2FzZSJhcnJheSI6cmV0dXJuIHMocmEoeCksZCl9dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiK2QudHlwZSl9ZnVuY3Rpb24gcyh4LGQpe3ZhciB2PXguc3BsaXQoL1tcblxyXSsvKSx1PS0xLGc9LTEsRj0wLHk9MCxfPVtdLE49W10sYj1udWxsLEk9e30sQT1bXSxWPVtdLEQ9W10sej0wLEc7Zm9yKCtkLmNvZGVwYWdlPj0wJiZfcigrZC5jb2RlcGFnZSk7RiE9PXYubGVuZ3RoOysrRil7ej0wO3ZhciBQPXZbRl0udHJpbSgpLnJlcGxhY2UoL1x4MUIoW1x4MjAtXHgyRl0pKFtceDMwLVx4M0ZdKS9nLG4pLnJlcGxhY2UoYSxyKSxKPVAucmVwbGFjZSgvOzsvZywiXDAiKS5zcGxpdCgiOyIpLm1hcChmdW5jdGlvbihPKXtyZXR1cm4gTy5yZXBsYWNlKC9cdTAwMDAvZywiOyIpfSksZmU9SlswXSxyZTtpZihQLmxlbmd0aD4wKXN3aXRjaChmZSl7Y2FzZSJJRCI6YnJlYWs7Y2FzZSJFIjpicmVhaztjYXNlIkIiOmJyZWFrO2Nhc2UiTyI6YnJlYWs7Y2FzZSJXIjpicmVhaztjYXNlIlAiOkpbMV0uY2hhckF0KDApPT0iUCImJk4ucHVzaChQLnNsaWNlKDMpLnJlcGxhY2UoLzs7L2csIjsiKSk7YnJlYWs7Y2FzZSJDIjp2YXIgY2U9ITEsaWU9ITEsRmU9ITEsVz0hMSxsZT0tMSxoZT0tMTtmb3IoeT0xO3k8Si5sZW5ndGg7Kyt5KXN3aXRjaChKW3ldLmNoYXJBdCgwKSl7Y2FzZSJBIjpicmVhaztjYXNlIlgiOmc9cGFyc2VJbnQoSlt5XS5zbGljZSgxKSktMSxpZT0hMDticmVhaztjYXNlIlkiOmZvcih1PXBhcnNlSW50KEpbeV0uc2xpY2UoMSkpLTEsaWV8fChnPTApLEc9Xy5sZW5ndGg7Rzw9dTsrK0cpX1tHXT1bXTticmVhaztjYXNlIksiOnJlPUpbeV0uc2xpY2UoMSkscmUuY2hhckF0KDApPT09JyInP3JlPXJlLnNsaWNlKDEscmUubGVuZ3RoLTEpOnJlPT09IlRSVUUiP3JlPSEwOnJlPT09IkZBTFNFIj9yZT0hMTppc05hTihrcihyZSkpP2lzTmFOKGRhKHJlKS5nZXREYXRlKCkpfHwocmU9V2UocmUpKToocmU9a3IocmUpLGIhPT1udWxsJiZ4YShiKSYmKHJlPWl0KHJlKSkpLGNlPSEwO2JyZWFrO2Nhc2UiRSI6Vz0hMDt2YXIgUz1FYShKW3ldLnNsaWNlKDEpLHtyOnUsYzpnfSk7X1t1XVtnXT1bX1t1XVtnXSxTXTticmVhaztjYXNlIlMiOkZlPSEwLF9bdV1bZ109W19bdV1bZ10sIlM1UyJdO2JyZWFrO2Nhc2UiRyI6YnJlYWs7Y2FzZSJSIjpsZT1wYXJzZUludChKW3ldLnNsaWNlKDEpKS0xO2JyZWFrO2Nhc2UiQyI6aGU9cGFyc2VJbnQoSlt5XS5zbGljZSgxKSktMTticmVhaztkZWZhdWx0OmlmKGQmJmQuV1RGKXRocm93IG5ldyBFcnJvcigiU1lMSyBiYWQgcmVjb3JkICIrUCl9aWYoY2UmJihfW3VdW2ddJiZfW3VdW2ddLmxlbmd0aD09Mj9fW3VdW2ddWzBdPXJlOl9bdV1bZ109cmUsYj1udWxsKSxGZSl7aWYoVyl0aHJvdyBuZXcgRXJyb3IoIlNZTEsgc2hhcmVkIGZvcm11bGEgY2Fubm90IGhhdmUgb3duIGZvcm11bGEiKTt2YXIgVT1sZT4tMSYmX1tsZV1baGVdO2lmKCFVfHwhVVsxXSl0aHJvdyBuZXcgRXJyb3IoIlNZTEsgc2hhcmVkIGZvcm11bGEgY2Fubm90IGZpbmQgYmFzZSIpO19bdV1bZ11bMV09a3MoVVsxXSx7cjp1LWxlLGM6Zy1oZX0pfWJyZWFrO2Nhc2UiRiI6dmFyIFI9MDtmb3IoeT0xO3k8Si5sZW5ndGg7Kyt5KXN3aXRjaChKW3ldLmNoYXJBdCgwKSl7Y2FzZSJYIjpnPXBhcnNlSW50KEpbeV0uc2xpY2UoMSkpLTEsKytSO2JyZWFrO2Nhc2UiWSI6Zm9yKHU9cGFyc2VJbnQoSlt5XS5zbGljZSgxKSktMSxHPV8ubGVuZ3RoO0c8PXU7KytHKV9bR109W107YnJlYWs7Y2FzZSJNIjp6PXBhcnNlSW50KEpbeV0uc2xpY2UoMSkpLzIwO2JyZWFrO2Nhc2UiRiI6YnJlYWs7Y2FzZSJHIjpicmVhaztjYXNlIlAiOmI9TltwYXJzZUludChKW3ldLnNsaWNlKDEpKV07YnJlYWs7Y2FzZSJTIjpicmVhaztjYXNlIkQiOmJyZWFrO2Nhc2UiTiI6YnJlYWs7Y2FzZSJXIjpmb3IoRD1KW3ldLnNsaWNlKDEpLnNwbGl0KCIgIiksRz1wYXJzZUludChEWzBdLDEwKTtHPD1wYXJzZUludChEWzFdLDEwKTsrK0cpej1wYXJzZUludChEWzJdLDEwKSxWW0ctMV09ej09PTA/e2hpZGRlbjohMH06e3djaDp6fSxfYShWW0ctMV0pO2JyZWFrO2Nhc2UiQyI6Zz1wYXJzZUludChKW3ldLnNsaWNlKDEpKS0xLFZbZ118fChWW2ddPXt9KTticmVhaztjYXNlIlIiOnU9cGFyc2VJbnQoSlt5XS5zbGljZSgxKSktMSxBW3VdfHwoQVt1XT17fSksej4wPyhBW3VdLmhwdD16LEFbdV0uaHB4PVZhKHopKTp6PT09MCYmKEFbdV0uaGlkZGVuPSEwKTticmVhaztkZWZhdWx0OmlmKGQmJmQuV1RGKXRocm93IG5ldyBFcnJvcigiU1lMSyBiYWQgcmVjb3JkICIrUCl9UjwxJiYoYj1udWxsKTticmVhaztkZWZhdWx0OmlmKGQmJmQuV1RGKXRocm93IG5ldyBFcnJvcigiU1lMSyBiYWQgcmVjb3JkICIrUCl9fXJldHVybiBBLmxlbmd0aD4wJiYoSVsiIXJvd3MiXT1BKSxWLmxlbmd0aD4wJiYoSVsiIWNvbHMiXT1WKSxkJiZkLnNoZWV0Um93cyYmKF89Xy5zbGljZSgwLGQuc2hlZXRSb3dzKSksW18sSV19ZnVuY3Rpb24gaSh4LGQpe3ZhciB2PXQoeCxkKSx1PXZbMF0sZz12WzFdLEY9Z2EodSxkKTtyZXR1cm4gU3IoZykuZm9yRWFjaChmdW5jdGlvbih5KXtGW3ldPWdbeV19KSxGfWZ1bmN0aW9uIGMoeCxkKXtyZXR1cm4gWHIoaSh4LGQpLGQpfWZ1bmN0aW9uIGYoeCxkLHYsdSl7dmFyIGc9IkM7WSIrKHYrMSkrIjtYIisodSsxKSsiO0siO3N3aXRjaCh4LnQpe2Nhc2UibiI6Zys9eC52fHwwLHguZiYmIXguRiYmKGcrPSI7RSIreDEoeC5mLHtyOnYsYzp1fSkpO2JyZWFrO2Nhc2UiYiI6Zys9eC52PyJUUlVFIjoiRkFMU0UiO2JyZWFrO2Nhc2UiZSI6Zys9eC53fHx4LnY7YnJlYWs7Y2FzZSJkIjpnKz0nIicrKHgud3x8eC52KSsnIic7YnJlYWs7Y2FzZSJzIjpnKz0nIicreC52LnJlcGxhY2UoLyIvZywiIikucmVwbGFjZSgvOy9nLCI7OyIpKyciJzticmVha31yZXR1cm4gZ31mdW5jdGlvbiBvKHgsZCl7ZC5mb3JFYWNoKGZ1bmN0aW9uKHYsdSl7dmFyIGc9IkY7VyIrKHUrMSkrIiAiKyh1KzEpKyIgIjt2LmhpZGRlbj9nKz0iMCI6KHR5cGVvZiB2LndpZHRoPT0ibnVtYmVyIiYmIXYud3B4JiYodi53cHg9Z3Qodi53aWR0aCkpLHR5cGVvZiB2LndweD09Im51bWJlciImJiF2LndjaCYmKHYud2NoPW10KHYud3B4KSksdHlwZW9mIHYud2NoPT0ibnVtYmVyIiYmKGcrPU1hdGgucm91bmQodi53Y2gpKSksZy5jaGFyQXQoZy5sZW5ndGgtMSkhPSIgIiYmeC5wdXNoKGcpfSl9ZnVuY3Rpb24gbCh4LGQpe2QuZm9yRWFjaChmdW5jdGlvbih2LHUpe3ZhciBnPSJGOyI7di5oaWRkZW4/Zys9Ik0wOyI6di5ocHQ/Zys9Ik0iKzIwKnYuaHB0KyI7Ijp2LmhweCYmKGcrPSJNIisyMCptcyh2LmhweCkrIjsiKSxnLmxlbmd0aD4yJiZ4LnB1c2goZysiUiIrKHUrMSkpfSl9ZnVuY3Rpb24gaCh4LGQpe3ZhciB2PVsiSUQ7UFdYTDtOO0UiXSx1PVtdLGc9T2UoeFsiIXJlZiJdKSxGLHk9QXJyYXkuaXNBcnJheSh4KSxfPWBccgpgO3YucHVzaCgiUDtQR2VuZXJhbCIpLHYucHVzaCgiRjtQMDtERzBHODtNMjU1IikseFsiIWNvbHMiXSYmbyh2LHhbIiFjb2xzIl0pLHhbIiFyb3dzIl0mJmwodix4WyIhcm93cyJdKSx2LnB1c2goIkI7WSIrKGcuZS5yLWcucy5yKzEpKyI7WCIrKGcuZS5jLWcucy5jKzEpKyI7RCIrW2cucy5jLGcucy5yLGcuZS5jLGcuZS5yXS5qb2luKCIgIikpO2Zvcih2YXIgTj1nLnMucjtOPD1nLmUucjsrK04pZm9yKHZhciBiPWcucy5jO2I8PWcuZS5jOysrYil7dmFyIEk9dWUoe3I6TixjOmJ9KTtGPXk/KHhbTl18fFtdKVtiXTp4W0ldLCEoIUZ8fEYudj09bnVsbCYmKCFGLmZ8fEYuRikpJiZ1LnB1c2goZihGLHgsTixiKSl9cmV0dXJuIHYuam9pbihfKStfK3Uuam9pbihfKStfKyJFIitffXJldHVybnt0b193b3JrYm9vazpjLHRvX3NoZWV0OmksZnJvbV9zaGVldDpofX0oKSx5bz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUocyxpKXtzd2l0Y2goaS50eXBlKXtjYXNlImJhc2U2NCI6cmV0dXJuIGEoZnIocyksaSk7Y2FzZSJiaW5hcnkiOnJldHVybiBhKHMsaSk7Y2FzZSJidWZmZXIiOnJldHVybiBhKGdlJiZCdWZmZXIuaXNCdWZmZXIocyk/cy50b1N0cmluZygiYmluYXJ5Iik6WnIocyksaSk7Y2FzZSJhcnJheSI6cmV0dXJuIGEocmEocyksaSl9dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiK2kudHlwZSl9ZnVuY3Rpb24gYShzLGkpe2Zvcih2YXIgYz1zLnNwbGl0KGAKYCksZj0tMSxvPS0xLGw9MCxoPVtdO2whPT1jLmxlbmd0aDsrK2wpe2lmKGNbbF0udHJpbSgpPT09IkJPVCIpe2hbKytmXT1bXSxvPTA7Y29udGludWV9aWYoIShmPDApKXt2YXIgeD1jW2xdLnRyaW0oKS5zcGxpdCgiLCIpLGQ9eFswXSx2PXhbMV07KytsO2Zvcih2YXIgdT1jW2xdfHwiIjsodS5tYXRjaCgvWyJdL2cpfHxbXSkubGVuZ3RoJjEmJmw8Yy5sZW5ndGgtMTspdSs9YApgK2NbKytsXTtzd2l0Y2godT11LnRyaW0oKSwrZCl7Y2FzZS0xOmlmKHU9PT0iQk9UIil7aFsrK2ZdPVtdLG89MDtjb250aW51ZX1lbHNlIGlmKHUhPT0iRU9EIil0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBESUYgc3BlY2lhbCBjb21tYW5kICIrdSk7YnJlYWs7Y2FzZSAwOnU9PT0iVFJVRSI/aFtmXVtvXT0hMDp1PT09IkZBTFNFIj9oW2ZdW29dPSExOmlzTmFOKGtyKHYpKT9pc05hTihkYSh2KS5nZXREYXRlKCkpP2hbZl1bb109djpoW2ZdW29dPVdlKHYpOmhbZl1bb109a3IodiksKytvO2JyZWFrO2Nhc2UgMTp1PXUuc2xpY2UoMSx1Lmxlbmd0aC0xKSx1PXUucmVwbGFjZSgvIiIvZywnIicpLHUmJnUubWF0Y2goL149Ii4qIiQvKSYmKHU9dS5zbGljZSgyLC0xKSksaFtmXVtvKytdPXUhPT0iIj91Om51bGw7YnJlYWt9aWYodT09PSJFT0QiKWJyZWFrfX1yZXR1cm4gaSYmaS5zaGVldFJvd3MmJihoPWguc2xpY2UoMCxpLnNoZWV0Um93cykpLGh9ZnVuY3Rpb24gcihzLGkpe3JldHVybiBnYShlKHMsaSksaSl9ZnVuY3Rpb24gbihzLGkpe3JldHVybiBYcihyKHMsaSksaSl9dmFyIHQ9ZnVuY3Rpb24oKXt2YXIgcz1mdW5jdGlvbihmLG8sbCxoLHgpe2YucHVzaChvKSxmLnB1c2gobCsiLCIraCksZi5wdXNoKCciJyt4LnJlcGxhY2UoLyIvZywnIiInKSsnIicpfSxpPWZ1bmN0aW9uKGYsbyxsLGgpe2YucHVzaChvKyIsIitsKSxmLnB1c2gobz09MT8nIicraC5yZXBsYWNlKC8iL2csJyIiJykrJyInOmgpfTtyZXR1cm4gZnVuY3Rpb24oZil7dmFyIG89W10sbD1PZShmWyIhcmVmIl0pLGgseD1BcnJheS5pc0FycmF5KGYpO3MobywiVEFCTEUiLDAsMSwic2hlZXRqcyIpLHMobywiVkVDVE9SUyIsMCxsLmUuci1sLnMucisxLCIiKSxzKG8sIlRVUExFUyIsMCxsLmUuYy1sLnMuYysxLCIiKSxzKG8sIkRBVEEiLDAsMCwiIik7Zm9yKHZhciBkPWwucy5yO2Q8PWwuZS5yOysrZCl7aShvLC0xLDAsIkJPVCIpO2Zvcih2YXIgdj1sLnMuYzt2PD1sLmUuYzsrK3Ype3ZhciB1PXVlKHtyOmQsYzp2fSk7aWYoaD14PyhmW2RdfHxbXSlbdl06Zlt1XSwhaCl7aShvLDEsMCwiIik7Y29udGludWV9c3dpdGNoKGgudCl7Y2FzZSJuIjp2YXIgZz1oLnc7IWcmJmgudiE9bnVsbCYmKGc9aC52KSxnPT1udWxsP2guZiYmIWguRj9pKG8sMSwwLCI9IitoLmYpOmkobywxLDAsIiIpOmkobywwLGcsIlYiKTticmVhaztjYXNlImIiOmkobywwLGgudj8xOjAsaC52PyJUUlVFIjoiRkFMU0UiKTticmVhaztjYXNlInMiOmkobywxLDAsaXNOYU4oaC52KT9oLnY6Jz0iJytoLnYrJyInKTticmVhaztjYXNlImQiOmgud3x8KGgudz14cihoLnp8fGRlWzE0XSx0cihXZShoLnYpKSkpLGkobywwLGgudywiViIpO2JyZWFrO2RlZmF1bHQ6aShvLDEsMCwiIil9fX1pKG8sLTEsMCwiRU9EIik7dmFyIEY9YFxyCmAseT1vLmpvaW4oRik7cmV0dXJuIHl9fSgpO3JldHVybnt0b193b3JrYm9vazpuLHRvX3NoZWV0OnIsZnJvbV9zaGVldDp0fX0oKSxEbz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoaCl7cmV0dXJuIGgucmVwbGFjZSgvXFxiL2csIlxcIikucmVwbGFjZSgvXFxjL2csIjoiKS5yZXBsYWNlKC9cXG4vZyxgCmApfWZ1bmN0aW9uIGEoaCl7cmV0dXJuIGgucmVwbGFjZSgvXFwvZywiXFxiIikucmVwbGFjZSgvOi9nLCJcXGMiKS5yZXBsYWNlKC9cbi9nLCJcXG4iKX1mdW5jdGlvbiByKGgseCl7Zm9yKHZhciBkPWguc3BsaXQoYApgKSx2PS0xLHU9LTEsZz0wLEY9W107ZyE9PWQubGVuZ3RoOysrZyl7dmFyIHk9ZFtnXS50cmltKCkuc3BsaXQoIjoiKTtpZih5WzBdPT09ImNlbGwiKXt2YXIgXz1ucih5WzFdKTtpZihGLmxlbmd0aDw9Xy5yKWZvcih2PUYubGVuZ3RoO3Y8PV8ucjsrK3YpRlt2XXx8KEZbdl09W10pO3N3aXRjaCh2PV8ucix1PV8uYyx5WzJdKXtjYXNlInQiOkZbdl1bdV09ZSh5WzNdKTticmVhaztjYXNlInYiOkZbdl1bdV09K3lbM107YnJlYWs7Y2FzZSJ2dGYiOnZhciBOPXlbeS5sZW5ndGgtMV07Y2FzZSJ2dGMiOnN3aXRjaCh5WzNdKXtjYXNlIm5sIjpGW3ZdW3VdPSEhK3lbNF07YnJlYWs7ZGVmYXVsdDpGW3ZdW3VdPSt5WzRdO2JyZWFrfXlbMl09PSJ2dGYiJiYoRlt2XVt1XT1bRlt2XVt1XSxOXSl9fX1yZXR1cm4geCYmeC5zaGVldFJvd3MmJihGPUYuc2xpY2UoMCx4LnNoZWV0Um93cykpLEZ9ZnVuY3Rpb24gbihoLHgpe3JldHVybiBnYShyKGgseCkseCl9ZnVuY3Rpb24gdChoLHgpe3JldHVybiBYcihuKGgseCkseCl9dmFyIHM9WyJzb2NpYWxjYWxjOnZlcnNpb246MS41IiwiTUlNRS1WZXJzaW9uOiAxLjAiLCJDb250ZW50LVR5cGU6IG11bHRpcGFydC9taXhlZDsgYm91bmRhcnk9U29jaWFsQ2FsY1NwcmVhZHNoZWV0Q29udHJvbFNhdmUiXS5qb2luKGAKYCksaT1bIi0tU29jaWFsQ2FsY1NwcmVhZHNoZWV0Q29udHJvbFNhdmUiLCJDb250ZW50LXR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgiXS5qb2luKGAKYCkrYApgLGM9WyIjIFNvY2lhbENhbGMgU3ByZWFkc2hlZXQgQ29udHJvbCBTYXZlIiwicGFydDpzaGVldCJdLmpvaW4oYApgKSxmPSItLVNvY2lhbENhbGNTcHJlYWRzaGVldENvbnRyb2xTYXZlLS0iO2Z1bmN0aW9uIG8oaCl7aWYoIWh8fCFoWyIhcmVmIl0pcmV0dXJuIiI7Zm9yKHZhciB4PVtdLGQ9W10sdix1PSIiLGc9cGEoaFsiIXJlZiJdKSxGPUFycmF5LmlzQXJyYXkoaCkseT1nLnMucjt5PD1nLmUucjsrK3kpZm9yKHZhciBfPWcucy5jO188PWcuZS5jOysrXylpZih1PXVlKHtyOnksYzpffSksdj1GPyhoW3ldfHxbXSlbX106aFt1XSwhKCF2fHx2LnY9PW51bGx8fHYudD09PSJ6Iikpe3N3aXRjaChkPVsiY2VsbCIsdSwidCJdLHYudCl7Y2FzZSJzIjpjYXNlInN0ciI6ZC5wdXNoKGEodi52KSk7YnJlYWs7Y2FzZSJuIjp2LmY/KGRbMl09InZ0ZiIsZFszXT0ibiIsZFs0XT12LnYsZFs1XT1hKHYuZikpOihkWzJdPSJ2IixkWzNdPXYudik7YnJlYWs7Y2FzZSJiIjpkWzJdPSJ2dCIrKHYuZj8iZiI6ImMiKSxkWzNdPSJubCIsZFs0XT12LnY/IjEiOiIwIixkWzVdPWEodi5mfHwodi52PyJUUlVFIjoiRkFMU0UiKSk7YnJlYWs7Y2FzZSJkIjp2YXIgTj10cihXZSh2LnYpKTtkWzJdPSJ2dGMiLGRbM109Im5kIixkWzRdPSIiK04sZFs1XT12Lnd8fHhyKHYuenx8ZGVbMTRdLE4pO2JyZWFrO2Nhc2UiZSI6Y29udGludWV9eC5wdXNoKGQuam9pbigiOiIpKX1yZXR1cm4geC5wdXNoKCJzaGVldDpjOiIrKGcuZS5jLWcucy5jKzEpKyI6cjoiKyhnLmUuci1nLnMucisxKSsiOnR2ZjoxIikseC5wdXNoKCJ2YWx1ZWZvcm1hdDoxOnRleHQtd2lraSIpLHguam9pbihgCmApfWZ1bmN0aW9uIGwoaCl7cmV0dXJuW3MsaSxjLGksbyhoKSxmXS5qb2luKGAKYCl9cmV0dXJue3RvX3dvcmtib29rOnQsdG9fc2hlZXQ6bixmcm9tX3NoZWV0Omx9fSgpLGJhPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShsLGgseCxkLHYpe3YucmF3P2hbeF1bZF09bDpsPT09IiJ8fChsPT09IlRSVUUiP2hbeF1bZF09ITA6bD09PSJGQUxTRSI/aFt4XVtkXT0hMTppc05hTihrcihsKSk/aXNOYU4oZGEobCkuZ2V0RGF0ZSgpKT9oW3hdW2RdPWw6aFt4XVtkXT1XZShsKTpoW3hdW2RdPWtyKGwpKX1mdW5jdGlvbiBhKGwsaCl7dmFyIHg9aHx8e30sZD1bXTtpZighbHx8bC5sZW5ndGg9PT0wKXJldHVybiBkO2Zvcih2YXIgdj1sLnNwbGl0KC9bXHJcbl0vKSx1PXYubGVuZ3RoLTE7dT49MCYmdlt1XS5sZW5ndGg9PT0wOyktLXU7Zm9yKHZhciBnPTEwLEY9MCx5PTA7eTw9dTsrK3kpRj12W3ldLmluZGV4T2YoIiAiKSxGPT0tMT9GPXZbeV0ubGVuZ3RoOkYrKyxnPU1hdGgubWF4KGcsRik7Zm9yKHk9MDt5PD11OysreSl7ZFt5XT1bXTt2YXIgXz0wO2ZvcihlKHZbeV0uc2xpY2UoMCxnKS50cmltKCksZCx5LF8seCksXz0xO188PSh2W3ldLmxlbmd0aC1nKS8xMCsxOysrXyllKHZbeV0uc2xpY2UoZysoXy0xKSoxMCxnK18qMTApLnRyaW0oKSxkLHksXyx4KX1yZXR1cm4geC5zaGVldFJvd3MmJihkPWQuc2xpY2UoMCx4LnNoZWV0Um93cykpLGR9dmFyIHI9ezQ0OiIsIiw5OiIJIiw1OToiOyIsMTI0OiJ8In0sbj17NDQ6Myw5OjIsNTk6MSwxMjQ6MH07ZnVuY3Rpb24gdChsKXtmb3IodmFyIGg9e30seD0hMSxkPTAsdj0wO2Q8bC5sZW5ndGg7KytkKSh2PWwuY2hhckNvZGVBdChkKSk9PTM0P3g9IXg6IXgmJnYgaW4gciYmKGhbdl09KGhbdl18fDApKzEpO3Y9W107Zm9yKGQgaW4gaClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaCxkKSYmdi5wdXNoKFtoW2RdLGRdKTtpZighdi5sZW5ndGgpe2g9bjtmb3IoZCBpbiBoKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChoLGQpJiZ2LnB1c2goW2hbZF0sZF0pfXJldHVybiB2LnNvcnQoZnVuY3Rpb24odSxnKXtyZXR1cm4gdVswXS1nWzBdfHxuW3VbMV1dLW5bZ1sxXV19KSxyW3YucG9wKClbMV1dfHw0NH1mdW5jdGlvbiBzKGwsaCl7dmFyIHg9aHx8e30sZD0iIix2PXguZGVuc2U/W106e30sdT17czp7YzowLHI6MH0sZTp7YzowLHI6MH19O2wuc2xpY2UoMCw0KT09InNlcD0iP2wuY2hhckNvZGVBdCg1KT09MTMmJmwuY2hhckNvZGVBdCg2KT09MTA/KGQ9bC5jaGFyQXQoNCksbD1sLnNsaWNlKDcpKTpsLmNoYXJDb2RlQXQoNSk9PTEzfHxsLmNoYXJDb2RlQXQoNSk9PTEwPyhkPWwuY2hhckF0KDQpLGw9bC5zbGljZSg2KSk6ZD10KGwuc2xpY2UoMCwxMDI0KSk6eCYmeC5GUz9kPXguRlM6ZD10KGwuc2xpY2UoMCwxMDI0KSk7dmFyIGc9MCxGPTAseT0wLF89MCxOPTAsYj1kLmNoYXJDb2RlQXQoMCksST0hMSxBPTAsVj1sLmNoYXJDb2RlQXQoMCk7bD1sLnJlcGxhY2UoL1xyXG4vbWcsYApgKTt2YXIgRD14LmRhdGVORiE9bnVsbD9iaSh4LmRhdGVORik6bnVsbDtmdW5jdGlvbiB6KCl7dmFyIEc9bC5zbGljZShfLE4pLFA9e307aWYoRy5jaGFyQXQoMCk9PSciJyYmRy5jaGFyQXQoRy5sZW5ndGgtMSk9PSciJyYmKEc9Ry5zbGljZSgxLC0xKS5yZXBsYWNlKC8iIi9nLCciJykpLEcubGVuZ3RoPT09MClQLnQ9InoiO2Vsc2UgaWYoeC5yYXcpUC50PSJzIixQLnY9RztlbHNlIGlmKEcudHJpbSgpLmxlbmd0aD09PTApUC50PSJzIixQLnY9RztlbHNlIGlmKEcuY2hhckNvZGVBdCgwKT09NjEpRy5jaGFyQ29kZUF0KDEpPT0zNCYmRy5jaGFyQ29kZUF0KEcubGVuZ3RoLTEpPT0zND8oUC50PSJzIixQLnY9Ry5zbGljZSgyLC0xKS5yZXBsYWNlKC8iIi9nLCciJykpOnYxKEcpPyhQLnQ9Im4iLFAuZj1HLnNsaWNlKDEpKTooUC50PSJzIixQLnY9Ryk7ZWxzZSBpZihHPT0iVFJVRSIpUC50PSJiIixQLnY9ITA7ZWxzZSBpZihHPT0iRkFMU0UiKVAudD0iYiIsUC52PSExO2Vsc2UgaWYoIWlzTmFOKHk9a3IoRykpKVAudD0ibiIseC5jZWxsVGV4dCE9PSExJiYoUC53PUcpLFAudj15O2Vsc2UgaWYoIWlzTmFOKGRhKEcpLmdldERhdGUoKSl8fEQmJkcubWF0Y2goRCkpe1Auej14LmRhdGVORnx8ZGVbMTRdO3ZhciBKPTA7RCYmRy5tYXRjaChEKSYmKEc9VWkoRyx4LmRhdGVORixHLm1hdGNoKEQpfHxbXSksSj0xKSx4LmNlbGxEYXRlcz8oUC50PSJkIixQLnY9V2UoRyxKKSk6KFAudD0ibiIsUC52PXRyKFdlKEcsSikpKSx4LmNlbGxUZXh0IT09ITEmJihQLnc9eHIoUC56LFAudiBpbnN0YW5jZW9mIERhdGU/dHIoUC52KTpQLnYpKSx4LmNlbGxORnx8ZGVsZXRlIFAuen1lbHNlIFAudD0icyIsUC52PUc7aWYoUC50PT0ieiJ8fCh4LmRlbnNlPyh2W2ddfHwodltnXT1bXSksdltnXVtGXT1QKTp2W3VlKHtjOkYscjpnfSldPVApLF89TisxLFY9bC5jaGFyQ29kZUF0KF8pLHUuZS5jPEYmJih1LmUuYz1GKSx1LmUucjxnJiYodS5lLnI9ZyksQT09YikrK0Y7ZWxzZSBpZihGPTAsKytnLHguc2hlZXRSb3dzJiZ4LnNoZWV0Um93czw9ZylyZXR1cm4hMH1lOmZvcig7TjxsLmxlbmd0aDsrK04pc3dpdGNoKEE9bC5jaGFyQ29kZUF0KE4pKXtjYXNlIDM0OlY9PT0zNCYmKEk9IUkpO2JyZWFrO2Nhc2UgYjpjYXNlIDEwOmNhc2UgMTM6aWYoIUkmJnooKSlicmVhayBlO2JyZWFrfXJldHVybiBOLV8+MCYmeigpLHZbIiFyZWYiXT1fZSh1KSx2fWZ1bmN0aW9uIGkobCxoKXtyZXR1cm4hKGgmJmguUFJOKXx8aC5GU3x8bC5zbGljZSgwLDQpPT0ic2VwPSJ8fGwuaW5kZXhPZigiCSIpPj0wfHxsLmluZGV4T2YoIiwiKT49MHx8bC5pbmRleE9mKCI7Iik+PTA/cyhsLGgpOmdhKGEobCxoKSxoKX1mdW5jdGlvbiBjKGwsaCl7dmFyIHg9IiIsZD1oLnR5cGU9PSJzdHJpbmciP1swLDAsMCwwXTpkMChsLGgpO3N3aXRjaChoLnR5cGUpe2Nhc2UiYmFzZTY0Ijp4PWZyKGwpO2JyZWFrO2Nhc2UiYmluYXJ5Ijp4PWw7YnJlYWs7Y2FzZSJidWZmZXIiOmguY29kZXBhZ2U9PTY1MDAxP3g9bC50b1N0cmluZygidXRmOCIpOmguY29kZXBhZ2UmJnR5cGVvZiB3YTwidSJ8fCh4PWdlJiZCdWZmZXIuaXNCdWZmZXIobCk/bC50b1N0cmluZygiYmluYXJ5Iik6WnIobCkpO2JyZWFrO2Nhc2UiYXJyYXkiOng9cmEobCk7YnJlYWs7Y2FzZSJzdHJpbmciOng9bDticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHR5cGUgIitoLnR5cGUpfXJldHVybiBkWzBdPT0yMzkmJmRbMV09PTE4NyYmZFsyXT09MTkxP3g9QWUoeC5zbGljZSgzKSk6aC50eXBlIT0ic3RyaW5nIiYmaC50eXBlIT0iYnVmZmVyIiYmaC5jb2RlcGFnZT09NjUwMDE/eD1BZSh4KTpoLnR5cGU9PSJiaW5hcnkiJiZ0eXBlb2Ygd2E8InUiLHguc2xpY2UoMCwxOSk9PSJzb2NpYWxjYWxjOnZlcnNpb246Ij9Eby50b19zaGVldChoLnR5cGU9PSJzdHJpbmciP3g6QWUoeCksaCk6aSh4LGgpfWZ1bmN0aW9uIGYobCxoKXtyZXR1cm4gWHIoYyhsLGgpLGgpfWZ1bmN0aW9uIG8obCl7Zm9yKHZhciBoPVtdLHg9T2UobFsiIXJlZiJdKSxkLHY9QXJyYXkuaXNBcnJheShsKSx1PXgucy5yO3U8PXguZS5yOysrdSl7Zm9yKHZhciBnPVtdLEY9eC5zLmM7Rjw9eC5lLmM7KytGKXt2YXIgeT11ZSh7cjp1LGM6Rn0pO2lmKGQ9dj8obFt1XXx8W10pW0ZdOmxbeV0sIWR8fGQudj09bnVsbCl7Zy5wdXNoKCIgICAgICAgICAgIik7Y29udGludWV9Zm9yKHZhciBfPShkLnd8fChMcihkKSxkLncpfHwiIikuc2xpY2UoMCwxMCk7Xy5sZW5ndGg8MTA7KV8rPSIgIjtnLnB1c2goXysoRj09PTA/IiAiOiIiKSl9aC5wdXNoKGcuam9pbigiIikpfXJldHVybiBoLmpvaW4oYApgKX1yZXR1cm57dG9fd29ya2Jvb2s6Zix0b19zaGVldDpjLGZyb21fc2hlZXQ6b319KCk7ZnVuY3Rpb24gT28oZSxhKXt2YXIgcj1hfHx7fSxuPSEhci5XVEY7ci5XVEY9ITA7dHJ5e3ZhciB0PUNvLnRvX3dvcmtib29rKGUscik7cmV0dXJuIHIuV1RGPW4sdH1jYXRjaChzKXtpZihyLldURj1uLCFzLm1lc3NhZ2UubWF0Y2goL1NZTEsgYmFkIHJlY29yZCBJRC8pJiZuKXRocm93IHM7cmV0dXJuIGJhLnRvX3dvcmtib29rKGUsYSl9fXZhciBVYT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoUyxVLFIpe2lmKFMpeyRlKFMsUy5sfHwwKTtmb3IodmFyIE89Ui5FbnVtfHxsZTtTLmw8Uy5sZW5ndGg7KXt2YXIgSz1TLnJlYWRfc2hpZnQoMiksZWU9T1tLXXx8T1s2NTUzNV0sbmU9Uy5yZWFkX3NoaWZ0KDIpLHE9Uy5sK25lLGo9ZWUuZiYmZWUuZihTLG5lLFIpO2lmKFMubD1xLFUoaixlZSxLKSlyZXR1cm59fX1mdW5jdGlvbiBhKFMsVSl7c3dpdGNoKFUudHlwZSl7Y2FzZSJiYXNlNjQiOnJldHVybiByKEVyKGZyKFMpKSxVKTtjYXNlImJpbmFyeSI6cmV0dXJuIHIoRXIoUyksVSk7Y2FzZSJidWZmZXIiOmNhc2UiYXJyYXkiOnJldHVybiByKFMsVSl9dGhyb3ciVW5zdXBwb3J0ZWQgdHlwZSAiK1UudHlwZX1mdW5jdGlvbiByKFMsVSl7aWYoIVMpcmV0dXJuIFM7dmFyIFI9VXx8e30sTz1SLmRlbnNlP1tdOnt9LEs9IlNoZWV0MSIsZWU9IiIsbmU9MCxxPXt9LGo9W10sVGU9W10sQz17czp7cjowLGM6MH0sZTp7cjowLGM6MH19LEllPVIuc2hlZXRSb3dzfHwwO2lmKFNbMl09PTAmJihTWzNdPT04fHxTWzNdPT05KSYmUy5sZW5ndGg+PTE2JiZTWzE0XT09NSYmU1sxNV09PT0xMDgpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBXb3JrcyAzIGZvciBNYWMgZmlsZSIpO2lmKFNbMl09PTIpUi5FbnVtPWxlLGUoUyxmdW5jdGlvbihhZSxOZSxncil7c3dpdGNoKGdyKXtjYXNlIDA6Ui52ZXJzPWFlLGFlPj00MDk2JiYoUi5xcHJvPSEwKTticmVhaztjYXNlIDY6Qz1hZTticmVhaztjYXNlIDIwNDphZSYmKGVlPWFlKTticmVhaztjYXNlIDIyMjplZT1hZTticmVhaztjYXNlIDE1OmNhc2UgNTE6Ui5xcHJvfHwoYWVbMV0udj1hZVsxXS52LnNsaWNlKDEpKTtjYXNlIDEzOmNhc2UgMTQ6Y2FzZSAxNjpncj09MTQmJihhZVsyXSYxMTIpPT0xMTImJihhZVsyXSYxNSk+MSYmKGFlWzJdJjE1KTwxNSYmKGFlWzFdLno9Ui5kYXRlTkZ8fGRlWzE0XSxSLmNlbGxEYXRlcyYmKGFlWzFdLnQ9ImQiLGFlWzFdLnY9aXQoYWVbMV0udikpKSxSLnFwcm8mJmFlWzNdPm5lJiYoT1siIXJlZiJdPV9lKEMpLHFbS109TyxqLnB1c2goSyksTz1SLmRlbnNlP1tdOnt9LEM9e3M6e3I6MCxjOjB9LGU6e3I6MCxjOjB9fSxuZT1hZVszXSxLPWVlfHwiU2hlZXQiKyhuZSsxKSxlZT0iIik7dmFyIE9yPVIuZGVuc2U/KE9bYWVbMF0ucl18fFtdKVthZVswXS5jXTpPW3VlKGFlWzBdKV07aWYoT3Ipe09yLnQ9YWVbMV0udCxPci52PWFlWzFdLnYsYWVbMV0ueiE9bnVsbCYmKE9yLno9YWVbMV0ueiksYWVbMV0uZiE9bnVsbCYmKE9yLmY9YWVbMV0uZik7YnJlYWt9Ui5kZW5zZT8oT1thZVswXS5yXXx8KE9bYWVbMF0ucl09W10pLE9bYWVbMF0ucl1bYWVbMF0uY109YWVbMV0pOk9bdWUoYWVbMF0pXT1hZVsxXTticmVha319LFIpO2Vsc2UgaWYoU1syXT09MjZ8fFNbMl09PTE0KVIuRW51bT1oZSxTWzJdPT0xNCYmKFIucXBybz0hMCxTLmw9MCksZShTLGZ1bmN0aW9uKGFlLE5lLGdyKXtzd2l0Y2goZ3Ipe2Nhc2UgMjA0Oks9YWU7YnJlYWs7Y2FzZSAyMjphZVsxXS52PWFlWzFdLnYuc2xpY2UoMSk7Y2FzZSAyMzpjYXNlIDI0OmNhc2UgMjU6Y2FzZSAzNzpjYXNlIDM5OmNhc2UgNDA6aWYoYWVbM10+bmUmJihPWyIhcmVmIl09X2UoQykscVtLXT1PLGoucHVzaChLKSxPPVIuZGVuc2U/W106e30sQz17czp7cjowLGM6MH0sZTp7cjowLGM6MH19LG5lPWFlWzNdLEs9IlNoZWV0IisobmUrMSkpLEllPjAmJmFlWzBdLnI+PUllKWJyZWFrO1IuZGVuc2U/KE9bYWVbMF0ucl18fChPW2FlWzBdLnJdPVtdKSxPW2FlWzBdLnJdW2FlWzBdLmNdPWFlWzFdKTpPW3VlKGFlWzBdKV09YWVbMV0sQy5lLmM8YWVbMF0uYyYmKEMuZS5jPWFlWzBdLmMpLEMuZS5yPGFlWzBdLnImJihDLmUucj1hZVswXS5yKTticmVhaztjYXNlIDI3OmFlWzE0ZTNdJiYoVGVbYWVbMTRlM11bMF1dPWFlWzE0ZTNdWzFdKTticmVhaztjYXNlIDE1Mzc6VGVbYWVbMF1dPWFlWzFdLGFlWzBdPT1uZSYmKEs9YWVbMV0pO2JyZWFrfX0sUik7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBMT1RVUyBCT0YgIitTWzJdKTtpZihPWyIhcmVmIl09X2UoQykscVtlZXx8S109TyxqLnB1c2goZWV8fEspLCFUZS5sZW5ndGgpcmV0dXJue1NoZWV0TmFtZXM6aixTaGVldHM6cX07Zm9yKHZhciBrZT17fSx3ZT1bXSxwZT0wO3BlPFRlLmxlbmd0aDsrK3BlKXFbaltwZV1dPyh3ZS5wdXNoKFRlW3BlXXx8altwZV0pLGtlW1RlW3BlXV09cVtUZVtwZV1dfHxxW2pbcGVdXSk6KHdlLnB1c2goVGVbcGVdKSxrZVtUZVtwZV1dPXsiIXJlZiI6IkExIn0pO3JldHVybntTaGVldE5hbWVzOndlLFNoZWV0czprZX19ZnVuY3Rpb24gbihTLFUpe3ZhciBSPVV8fHt9O2lmKCtSLmNvZGVwYWdlPj0wJiZfcigrUi5jb2RlcGFnZSksUi50eXBlPT0ic3RyaW5nIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCB3cml0ZSBXSzEgdG8gSlMgc3RyaW5nIik7dmFyIE89YnQoKSxLPU9lKFNbIiFyZWYiXSksZWU9QXJyYXkuaXNBcnJheShTKSxuZT1bXTtBcihPLDAscygxMDMwKSksQXIoTyw2LGYoSykpO2Zvcih2YXIgcT1NYXRoLm1pbihLLmUuciw4MTkxKSxqPUsucy5yO2o8PXE7KytqKWZvcih2YXIgVGU9emUoaiksQz1LLnMuYztDPD1LLmUuYzsrK0Mpe2o9PT1LLnMuciYmKG5lW0NdPVVlKEMpKTt2YXIgSWU9bmVbQ10rVGUsa2U9ZWU/KFNbal18fFtdKVtDXTpTW0llXTtpZighKCFrZXx8a2UudD09InoiKSlpZihrZS50PT0ibiIpKGtlLnZ8MCk9PWtlLnYmJmtlLnY+PS0zMjc2OCYma2Uudjw9MzI3Njc/QXIoTywxMyxkKGosQyxrZS52KSk6QXIoTywxNCx1KGosQyxrZS52KSk7ZWxzZXt2YXIgd2U9THIoa2UpO0FyKE8sMTUsaChqLEMsd2Uuc2xpY2UoMCwyMzkpKSl9fXJldHVybiBBcihPLDEpLE8uZW5kKCl9ZnVuY3Rpb24gdChTLFUpe3ZhciBSPVV8fHt9O2lmKCtSLmNvZGVwYWdlPj0wJiZfcigrUi5jb2RlcGFnZSksUi50eXBlPT0ic3RyaW5nIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCB3cml0ZSBXSzMgdG8gSlMgc3RyaW5nIik7dmFyIE89YnQoKTtBcihPLDAsaShTKSk7Zm9yKHZhciBLPTAsZWU9MDtLPFMuU2hlZXROYW1lcy5sZW5ndGg7KytLKShTLlNoZWV0c1tTLlNoZWV0TmFtZXNbS11dfHx7fSlbIiFyZWYiXSYmQXIoTywyNyxXKFMuU2hlZXROYW1lc1tLXSxlZSsrKSk7dmFyIG5lPTA7Zm9yKEs9MDtLPFMuU2hlZXROYW1lcy5sZW5ndGg7KytLKXt2YXIgcT1TLlNoZWV0c1tTLlNoZWV0TmFtZXNbS11dO2lmKCEoIXF8fCFxWyIhcmVmIl0pKXtmb3IodmFyIGo9T2UocVsiIXJlZiJdKSxUZT1BcnJheS5pc0FycmF5KHEpLEM9W10sSWU9TWF0aC5taW4oai5lLnIsODE5MSksa2U9ai5zLnI7a2U8PUllOysra2UpZm9yKHZhciB3ZT16ZShrZSkscGU9ai5zLmM7cGU8PWouZS5jOysrcGUpe2tlPT09ai5zLnImJihDW3BlXT1VZShwZSkpO3ZhciBhZT1DW3BlXSt3ZSxOZT1UZT8ocVtrZV18fFtdKVtwZV06cVthZV07aWYoISghTmV8fE5lLnQ9PSJ6IikpaWYoTmUudD09Im4iKUFyKE8sMjMseihrZSxwZSxuZSxOZS52KSk7ZWxzZXt2YXIgZ3I9THIoTmUpO0FyKE8sMjIsQShrZSxwZSxuZSxnci5zbGljZSgwLDIzOSkpKX19KytuZX19cmV0dXJuIEFyKE8sMSksTy5lbmQoKX1mdW5jdGlvbiBzKFMpe3ZhciBVPWJlKDIpO3JldHVybiBVLndyaXRlX3NoaWZ0KDIsUyksVX1mdW5jdGlvbiBpKFMpe3ZhciBVPWJlKDI2KTtVLndyaXRlX3NoaWZ0KDIsNDA5NiksVS53cml0ZV9zaGlmdCgyLDQpLFUud3JpdGVfc2hpZnQoNCwwKTtmb3IodmFyIFI9MCxPPTAsSz0wLGVlPTA7ZWU8Uy5TaGVldE5hbWVzLmxlbmd0aDsrK2VlKXt2YXIgbmU9Uy5TaGVldE5hbWVzW2VlXSxxPVMuU2hlZXRzW25lXTtpZighKCFxfHwhcVsiIXJlZiJdKSl7KytLO3ZhciBqPXBhKHFbIiFyZWYiXSk7UjxqLmUuciYmKFI9ai5lLnIpLE88ai5lLmMmJihPPWouZS5jKX19cmV0dXJuIFI+ODE5MSYmKFI9ODE5MSksVS53cml0ZV9zaGlmdCgyLFIpLFUud3JpdGVfc2hpZnQoMSxLKSxVLndyaXRlX3NoaWZ0KDEsTyksVS53cml0ZV9zaGlmdCgyLDApLFUud3JpdGVfc2hpZnQoMiwwKSxVLndyaXRlX3NoaWZ0KDEsMSksVS53cml0ZV9zaGlmdCgxLDIpLFUud3JpdGVfc2hpZnQoNCwwKSxVLndyaXRlX3NoaWZ0KDQsMCksVX1mdW5jdGlvbiBjKFMsVSxSKXt2YXIgTz17czp7YzowLHI6MH0sZTp7YzowLHI6MH19O3JldHVybiBVPT04JiZSLnFwcm8/KE8ucy5jPVMucmVhZF9zaGlmdCgxKSxTLmwrKyxPLnMucj1TLnJlYWRfc2hpZnQoMiksTy5lLmM9Uy5yZWFkX3NoaWZ0KDEpLFMubCsrLE8uZS5yPVMucmVhZF9zaGlmdCgyKSxPKTooTy5zLmM9Uy5yZWFkX3NoaWZ0KDIpLE8ucy5yPVMucmVhZF9zaGlmdCgyKSxVPT0xMiYmUi5xcHJvJiYoUy5sKz0yKSxPLmUuYz1TLnJlYWRfc2hpZnQoMiksTy5lLnI9Uy5yZWFkX3NoaWZ0KDIpLFU9PTEyJiZSLnFwcm8mJihTLmwrPTIpLE8ucy5jPT02NTUzNSYmKE8ucy5jPU8uZS5jPU8ucy5yPU8uZS5yPTApLE8pfWZ1bmN0aW9uIGYoUyl7dmFyIFU9YmUoOCk7cmV0dXJuIFUud3JpdGVfc2hpZnQoMixTLnMuYyksVS53cml0ZV9zaGlmdCgyLFMucy5yKSxVLndyaXRlX3NoaWZ0KDIsUy5lLmMpLFUud3JpdGVfc2hpZnQoMixTLmUuciksVX1mdW5jdGlvbiBvKFMsVSxSKXt2YXIgTz1be2M6MCxyOjB9LHt0OiJuIix2OjB9LDAsMF07cmV0dXJuIFIucXBybyYmUi52ZXJzIT0yMDc2OD8oT1swXS5jPVMucmVhZF9zaGlmdCgxKSxPWzNdPVMucmVhZF9zaGlmdCgxKSxPWzBdLnI9Uy5yZWFkX3NoaWZ0KDIpLFMubCs9Mik6KE9bMl09Uy5yZWFkX3NoaWZ0KDEpLE9bMF0uYz1TLnJlYWRfc2hpZnQoMiksT1swXS5yPVMucmVhZF9zaGlmdCgyKSksT31mdW5jdGlvbiBsKFMsVSxSKXt2YXIgTz1TLmwrVSxLPW8oUyxVLFIpO2lmKEtbMV0udD0icyIsUi52ZXJzPT0yMDc2OCl7Uy5sKys7dmFyIGVlPVMucmVhZF9zaGlmdCgxKTtyZXR1cm4gS1sxXS52PVMucmVhZF9zaGlmdChlZSwidXRmOCIpLEt9cmV0dXJuIFIucXBybyYmUy5sKyssS1sxXS52PVMucmVhZF9zaGlmdChPLVMubCwiY3N0ciIpLEt9ZnVuY3Rpb24gaChTLFUsUil7dmFyIE89YmUoNytSLmxlbmd0aCk7Ty53cml0ZV9zaGlmdCgxLDI1NSksTy53cml0ZV9zaGlmdCgyLFUpLE8ud3JpdGVfc2hpZnQoMixTKSxPLndyaXRlX3NoaWZ0KDEsMzkpO2Zvcih2YXIgSz0wO0s8Ty5sZW5ndGg7KytLKXt2YXIgZWU9Ui5jaGFyQ29kZUF0KEspO08ud3JpdGVfc2hpZnQoMSxlZT49MTI4Pzk1OmVlKX1yZXR1cm4gTy53cml0ZV9zaGlmdCgxLDApLE99ZnVuY3Rpb24geChTLFUsUil7dmFyIE89byhTLFUsUik7cmV0dXJuIE9bMV0udj1TLnJlYWRfc2hpZnQoMiwiaSIpLE99ZnVuY3Rpb24gZChTLFUsUil7dmFyIE89YmUoNyk7cmV0dXJuIE8ud3JpdGVfc2hpZnQoMSwyNTUpLE8ud3JpdGVfc2hpZnQoMixVKSxPLndyaXRlX3NoaWZ0KDIsUyksTy53cml0ZV9zaGlmdCgyLFIsImkiKSxPfWZ1bmN0aW9uIHYoUyxVLFIpe3ZhciBPPW8oUyxVLFIpO3JldHVybiBPWzFdLnY9Uy5yZWFkX3NoaWZ0KDgsImYiKSxPfWZ1bmN0aW9uIHUoUyxVLFIpe3ZhciBPPWJlKDEzKTtyZXR1cm4gTy53cml0ZV9zaGlmdCgxLDI1NSksTy53cml0ZV9zaGlmdCgyLFUpLE8ud3JpdGVfc2hpZnQoMixTKSxPLndyaXRlX3NoaWZ0KDgsUiwiZiIpLE99ZnVuY3Rpb24gZyhTLFUsUil7dmFyIE89Uy5sK1UsSz1vKFMsVSxSKTtpZihLWzFdLnY9Uy5yZWFkX3NoaWZ0KDgsImYiKSxSLnFwcm8pUy5sPU87ZWxzZXt2YXIgZWU9Uy5yZWFkX3NoaWZ0KDIpO04oUy5zbGljZShTLmwsUy5sK2VlKSxLKSxTLmwrPWVlfXJldHVybiBLfWZ1bmN0aW9uIEYoUyxVLFIpe3ZhciBPPVUmMzI3Njg7cmV0dXJuIFUmPS0zMjc2OSxVPShPP1M6MCkrKFU+PTgxOTI/VS0xNjM4NDpVKSwoTz8iIjoiJCIpKyhSP1VlKFUpOnplKFUpKX12YXIgeT17NTE6WyJGQUxTRSIsMF0sNTI6WyJUUlVFIiwwXSw3MDpbIkxFTiIsMV0sODA6WyJTVU0iLDY5XSw4MTpbIkFWRVJBR0VBIiw2OV0sODI6WyJDT1VOVEEiLDY5XSw4MzpbIk1JTkEiLDY5XSw4NDpbIk1BWEEiLDY5XSwxMTE6WyJUIiwxXX0sXz1bIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIisiLCItIiwiKiIsIi8iLCJeIiwiPSIsIjw+IiwiPD0iLCI+PSIsIjwiLCI+IiwiIiwiIiwiIiwiIiwiJiIsIiIsIiIsIiIsIiIsIiIsIiIsIiJdO2Z1bmN0aW9uIE4oUyxVKXskZShTLDApO2Zvcih2YXIgUj1bXSxPPTAsSz0iIixlZT0iIixuZT0iIixxPSIiO1MubDxTLmxlbmd0aDspe3ZhciBqPVNbUy5sKytdO3N3aXRjaChqKXtjYXNlIDA6Ui5wdXNoKFMucmVhZF9zaGlmdCg4LCJmIikpO2JyZWFrO2Nhc2UgMTplZT1GKFVbMF0uYyxTLnJlYWRfc2hpZnQoMiksITApLEs9RihVWzBdLnIsUy5yZWFkX3NoaWZ0KDIpLCExKSxSLnB1c2goZWUrSyk7YnJlYWs7Y2FzZSAyOnt2YXIgVGU9RihVWzBdLmMsUy5yZWFkX3NoaWZ0KDIpLCEwKSxDPUYoVVswXS5yLFMucmVhZF9zaGlmdCgyKSwhMSk7ZWU9RihVWzBdLmMsUy5yZWFkX3NoaWZ0KDIpLCEwKSxLPUYoVVswXS5yLFMucmVhZF9zaGlmdCgyKSwhMSksUi5wdXNoKFRlK0MrIjoiK2VlK0spfWJyZWFrO2Nhc2UgMzppZihTLmw8Uy5sZW5ndGgpe2NvbnNvbGUuZXJyb3IoIldLMSBwcmVtYXR1cmUgZm9ybXVsYSBlbmQiKTtyZXR1cm59YnJlYWs7Y2FzZSA0OlIucHVzaCgiKCIrUi5wb3AoKSsiKSIpO2JyZWFrO2Nhc2UgNTpSLnB1c2goUy5yZWFkX3NoaWZ0KDIpKTticmVhaztjYXNlIDY6e2Zvcih2YXIgSWU9IiI7aj1TW1MubCsrXTspSWUrPVN0cmluZy5mcm9tQ2hhckNvZGUoaik7Ui5wdXNoKCciJytJZS5yZXBsYWNlKC8iL2csJyIiJykrJyInKX1icmVhaztjYXNlIDg6Ui5wdXNoKCItIitSLnBvcCgpKTticmVhaztjYXNlIDIzOlIucHVzaCgiKyIrUi5wb3AoKSk7YnJlYWs7Y2FzZSAyMjpSLnB1c2goIk5PVCgiK1IucG9wKCkrIikiKTticmVhaztjYXNlIDIwOmNhc2UgMjE6cT1SLnBvcCgpLG5lPVIucG9wKCksUi5wdXNoKFsiQU5EIiwiT1IiXVtqLTIwXSsiKCIrbmUrIiwiK3ErIikiKTticmVhaztkZWZhdWx0OmlmKGo8MzImJl9bal0pcT1SLnBvcCgpLG5lPVIucG9wKCksUi5wdXNoKG5lK19bal0rcSk7ZWxzZSBpZih5W2pdKXtpZihPPXlbal1bMV0sTz09NjkmJihPPVNbUy5sKytdKSxPPlIubGVuZ3RoKXtjb25zb2xlLmVycm9yKCJXSzEgYmFkIGZvcm11bGEgcGFyc2UgMHgiK2oudG9TdHJpbmcoMTYpKyI6fCIrUi5qb2luKCJ8IikrInwiKTtyZXR1cm59dmFyIGtlPVIuc2xpY2UoLU8pO1IubGVuZ3RoLT1PLFIucHVzaCh5W2pdWzBdKyIoIitrZS5qb2luKCIsIikrIikiKX1lbHNlIHJldHVybiBqPD03P2NvbnNvbGUuZXJyb3IoIldLMSBpbnZhbGlkIG9wY29kZSAiK2oudG9TdHJpbmcoMTYpKTpqPD0yND9jb25zb2xlLmVycm9yKCJXSzEgdW5zdXBwb3J0ZWQgb3AgIitqLnRvU3RyaW5nKDE2KSk6ajw9MzA/Y29uc29sZS5lcnJvcigiV0sxIGludmFsaWQgb3Bjb2RlICIrai50b1N0cmluZygxNikpOmo8PTExNT9jb25zb2xlLmVycm9yKCJXSzEgdW5zdXBwb3J0ZWQgZnVuY3Rpb24gb3Bjb2RlICIrai50b1N0cmluZygxNikpOmNvbnNvbGUuZXJyb3IoIldLMSB1bnJlY29nbml6ZWQgb3Bjb2RlICIrai50b1N0cmluZygxNikpfX1SLmxlbmd0aD09MT9VWzFdLmY9IiIrUlswXTpjb25zb2xlLmVycm9yKCJXSzEgYmFkIGZvcm11bGEgcGFyc2UgfCIrUi5qb2luKCJ8IikrInwiKX1mdW5jdGlvbiBiKFMpe3ZhciBVPVt7YzowLHI6MH0se3Q6Im4iLHY6MH0sMF07cmV0dXJuIFVbMF0ucj1TLnJlYWRfc2hpZnQoMiksVVszXT1TW1MubCsrXSxVWzBdLmM9U1tTLmwrK10sVX1mdW5jdGlvbiBJKFMsVSl7dmFyIFI9YihTKTtyZXR1cm4gUlsxXS50PSJzIixSWzFdLnY9Uy5yZWFkX3NoaWZ0KFUtNCwiY3N0ciIpLFJ9ZnVuY3Rpb24gQShTLFUsUixPKXt2YXIgSz1iZSg2K08ubGVuZ3RoKTtLLndyaXRlX3NoaWZ0KDIsUyksSy53cml0ZV9zaGlmdCgxLFIpLEsud3JpdGVfc2hpZnQoMSxVKSxLLndyaXRlX3NoaWZ0KDEsMzkpO2Zvcih2YXIgZWU9MDtlZTxPLmxlbmd0aDsrK2VlKXt2YXIgbmU9Ty5jaGFyQ29kZUF0KGVlKTtLLndyaXRlX3NoaWZ0KDEsbmU+PTEyOD85NTpuZSl9cmV0dXJuIEsud3JpdGVfc2hpZnQoMSwwKSxLfWZ1bmN0aW9uIFYoUyxVKXt2YXIgUj1iKFMpO1JbMV0udj1TLnJlYWRfc2hpZnQoMik7dmFyIE89UlsxXS52Pj4xO2lmKFJbMV0udiYxKXN3aXRjaChPJjcpe2Nhc2UgMDpPPShPPj4zKSo1ZTM7YnJlYWs7Y2FzZSAxOk89KE8+PjMpKjUwMDticmVhaztjYXNlIDI6Tz0oTz4+MykvMjA7YnJlYWs7Y2FzZSAzOk89KE8+PjMpLzIwMDticmVhaztjYXNlIDQ6Tz0oTz4+MykvMmUzO2JyZWFrO2Nhc2UgNTpPPShPPj4zKS8yZTQ7YnJlYWs7Y2FzZSA2Ok89KE8+PjMpLzE2O2JyZWFrO2Nhc2UgNzpPPShPPj4zKS82NDticmVha31yZXR1cm4gUlsxXS52PU8sUn1mdW5jdGlvbiBEKFMsVSl7dmFyIFI9YihTKSxPPVMucmVhZF9zaGlmdCg0KSxLPVMucmVhZF9zaGlmdCg0KSxlZT1TLnJlYWRfc2hpZnQoMik7aWYoZWU9PTY1NTM1KXJldHVybiBPPT09MCYmSz09PTMyMjEyMjU0NzI/KFJbMV0udD0iZSIsUlsxXS52PTE1KTpPPT09MCYmSz09PTM0ODk2NjA5Mjg/KFJbMV0udD0iZSIsUlsxXS52PTQyKTpSWzFdLnY9MCxSO3ZhciBuZT1lZSYzMjc2ODtyZXR1cm4gZWU9KGVlJjMyNzY3KS0xNjQ0NixSWzFdLnY9KDEtbmUqMikqKEsqTWF0aC5wb3coMixlZSszMikrTypNYXRoLnBvdygyLGVlKSksUn1mdW5jdGlvbiB6KFMsVSxSLE8pe3ZhciBLPWJlKDE0KTtpZihLLndyaXRlX3NoaWZ0KDIsUyksSy53cml0ZV9zaGlmdCgxLFIpLEsud3JpdGVfc2hpZnQoMSxVKSxPPT0wKXJldHVybiBLLndyaXRlX3NoaWZ0KDQsMCksSy53cml0ZV9zaGlmdCg0LDApLEsud3JpdGVfc2hpZnQoMiw2NTUzNSksSzt2YXIgZWU9MCxuZT0wLHE9MCxqPTA7cmV0dXJuIE88MCYmKGVlPTEsTz0tTyksbmU9TWF0aC5sb2cyKE8pfDAsTy89TWF0aC5wb3coMixuZS0zMSksaj1PPj4+MCxqJjIxNDc0ODM2NDh8fChPLz0yLCsrbmUsaj1PPj4+MCksTy09aixqfD0yMTQ3NDgzNjQ4LGo+Pj49MCxPKj1NYXRoLnBvdygyLDMyKSxxPU8+Pj4wLEsud3JpdGVfc2hpZnQoNCxxKSxLLndyaXRlX3NoaWZ0KDQsaiksbmUrPTE2MzgzKyhlZT8zMjc2ODowKSxLLndyaXRlX3NoaWZ0KDIsbmUpLEt9ZnVuY3Rpb24gRyhTLFUpe3ZhciBSPUQoUyk7cmV0dXJuIFMubCs9VS0xNCxSfWZ1bmN0aW9uIFAoUyxVKXt2YXIgUj1iKFMpLE89Uy5yZWFkX3NoaWZ0KDQpO3JldHVybiBSWzFdLnY9Tz4+NixSfWZ1bmN0aW9uIEooUyxVKXt2YXIgUj1iKFMpLE89Uy5yZWFkX3NoaWZ0KDgsImYiKTtyZXR1cm4gUlsxXS52PU8sUn1mdW5jdGlvbiBmZShTLFUpe3ZhciBSPUooUyk7cmV0dXJuIFMubCs9VS0xMCxSfWZ1bmN0aW9uIHJlKFMsVSl7cmV0dXJuIFNbUy5sK1UtMV09PTA/Uy5yZWFkX3NoaWZ0KFUsImNzdHIiKToiIn1mdW5jdGlvbiBjZShTLFUpe3ZhciBSPVNbUy5sKytdO1I+VS0xJiYoUj1VLTEpO2Zvcih2YXIgTz0iIjtPLmxlbmd0aDxSOylPKz1TdHJpbmcuZnJvbUNoYXJDb2RlKFNbUy5sKytdKTtyZXR1cm4gT31mdW5jdGlvbiBpZShTLFUsUil7aWYoISghUi5xcHJvfHxVPDIxKSl7dmFyIE89Uy5yZWFkX3NoaWZ0KDEpO1MubCs9MTcsUy5sKz0xLFMubCs9Mjt2YXIgSz1TLnJlYWRfc2hpZnQoVS0yMSwiY3N0ciIpO3JldHVybltPLEtdfX1mdW5jdGlvbiBGZShTLFUpe2Zvcih2YXIgUj17fSxPPVMubCtVO1MubDxPOyl7dmFyIEs9Uy5yZWFkX3NoaWZ0KDIpO2lmKEs9PTE0ZTMpe2ZvcihSW0tdPVswLCIiXSxSW0tdWzBdPVMucmVhZF9zaGlmdCgyKTtTW1MubF07KVJbS11bMV0rPVN0cmluZy5mcm9tQ2hhckNvZGUoU1tTLmxdKSxTLmwrKztTLmwrK319cmV0dXJuIFJ9ZnVuY3Rpb24gVyhTLFUpe3ZhciBSPWJlKDUrUy5sZW5ndGgpO1Iud3JpdGVfc2hpZnQoMiwxNGUzKSxSLndyaXRlX3NoaWZ0KDIsVSk7Zm9yKHZhciBPPTA7TzxTLmxlbmd0aDsrK08pe3ZhciBLPVMuY2hhckNvZGVBdChPKTtSW1IubCsrXT1LPjEyNz85NTpLfXJldHVybiBSW1IubCsrXT0wLFJ9dmFyIGxlPXswOntuOiJCT0YiLGY6TWV9LDE6e246IkVPRiJ9LDI6e246IkNBTENNT0RFIn0sMzp7bjoiQ0FMQ09SREVSIn0sNDp7bjoiU1BMSVQifSw1OntuOiJTWU5DIn0sNjp7bjoiUkFOR0UiLGY6Y30sNzp7bjoiV0lORE9XMSJ9LDg6e246IkNPTFcxIn0sOTp7bjoiV0lOVFdPIn0sMTA6e246IkNPTFcyIn0sMTE6e246Ik5BTUUifSwxMjp7bjoiQkxBTksifSwxMzp7bjoiSU5URUdFUiIsZjp4fSwxNDp7bjoiTlVNQkVSIixmOnZ9LDE1OntuOiJMQUJFTCIsZjpsfSwxNjp7bjoiRk9STVVMQSIsZjpnfSwyNDp7bjoiVEFCTEUifSwyNTp7bjoiT1JBTkdFIn0sMjY6e246IlBSQU5HRSJ9LDI3OntuOiJTUkFOR0UifSwyODp7bjoiRlJBTkdFIn0sMjk6e246IktSQU5HRTEifSwzMjp7bjoiSFJBTkdFIn0sMzU6e246IktSQU5HRTIifSwzNjp7bjoiUFJPVEVDIn0sMzc6e246IkZPT1RFUiJ9LDM4OntuOiJIRUFERVIifSwzOTp7bjoiU0VUVVAifSw0MDp7bjoiTUFSR0lOUyJ9LDQxOntuOiJMQUJFTEZNVCJ9LDQyOntuOiJUSVRMRVMifSw0Mzp7bjoiU0hFRVRKUyJ9LDQ1OntuOiJHUkFQSCJ9LDQ2OntuOiJOR1JBUEgifSw0Nzp7bjoiQ0FMQ0NPVU5UIn0sNDg6e246IlVORk9STUFUVEVEIn0sNDk6e246IkNVUlNPUlcxMiJ9LDUwOntuOiJXSU5ET1cifSw1MTp7bjoiU1RSSU5HIixmOmx9LDU1OntuOiJQQVNTV09SRCJ9LDU2OntuOiJMT0NLRUQifSw2MDp7bjoiUVVFUlkifSw2MTp7bjoiUVVFUllOQU1FIn0sNjI6e246IlBSSU5UIn0sNjM6e246IlBSSU5UTkFNRSJ9LDY0OntuOiJHUkFQSDIifSw2NTp7bjoiR1JBUEhOQU1FIn0sNjY6e246IlpPT00ifSw2Nzp7bjoiU1lNU1BMSVQifSw2ODp7bjoiTlNST1dTIn0sNjk6e246Ik5TQ09MUyJ9LDcwOntuOiJSVUxFUiJ9LDcxOntuOiJOTkFNRSJ9LDcyOntuOiJBQ09NTSJ9LDczOntuOiJBTUFDUk8ifSw3NDp7bjoiUEFSU0UifSwxMDI6e246IlBSQU5HRVM/PyJ9LDEwMzp7bjoiUlJBTkdFUz8/In0sMTA0OntuOiJGTkFNRT8/In0sMTA1OntuOiJNUkFOR0VTPz8ifSwyMDQ6e246IlNIRUVUTkFNRUNTIixmOnJlfSwyMjI6e246IlNIRUVUTkFNRUxQIixmOmNlfSw2NTUzNTp7bjoiIn19LGhlPXswOntuOiJCT0YifSwxOntuOiJFT0YifSwyOntuOiJQQVNTV09SRCJ9LDM6e246IkNBTENTRVQifSw0OntuOiJXSU5ET1dTRVQifSw1OntuOiJTSEVFVENFTExQVFIifSw2OntuOiJTSEVFVExBWU9VVCJ9LDc6e246IkNPTFVNTldJRFRIIn0sODp7bjoiSElEREVOQ09MVU1OIn0sOTp7bjoiVVNFUlJBTkdFIn0sMTA6e246IlNZU1RFTVJBTkdFIn0sMTE6e246IlpFUk9GT1JDRSJ9LDEyOntuOiJTT1JUS0VZRElSIn0sMTM6e246IkZJTEVTRUFMIn0sMTQ6e246IkRBVEFGSUxMTlVNUyJ9LDE1OntuOiJQUklOVE1BSU4ifSwxNjp7bjoiUFJJTlRTVFJJTkcifSwxNzp7bjoiR1JBUEhNQUlOIn0sMTg6e246IkdSQVBIU1RSSU5HIn0sMTk6e246Ij8/In0sMjA6e246IkVSUkNFTEwifSwyMTp7bjoiTkFDRUxMIn0sMjI6e246IkxBQkVMMTYiLGY6SX0sMjM6e246Ik5VTUJFUjE3IixmOkR9LDI0OntuOiJOVU1CRVIxOCIsZjpWfSwyNTp7bjoiRk9STVVMQTE5IixmOkd9LDI2OntuOiJGT1JNVUxBMUEifSwyNzp7bjoiWEZPUk1BVCIsZjpGZX0sMjg6e246IkRUTEFCRUxNSVNDIn0sMjk6e246IkRUTEFCRUxDRUxMIn0sMzA6e246IkdSQVBIV0lORE9XIn0sMzE6e246IkNQQSJ9LDMyOntuOiJMUExBVVRPIn0sMzM6e246IlFVRVJZIn0sMzQ6e246IkhJRERFTlNIRUVUIn0sMzU6e246Ij8/In0sMzc6e246Ik5VTUJFUjI1IixmOlB9LDM4OntuOiI/PyJ9LDM5OntuOiJOVU1CRVIyNyIsZjpKfSw0MDp7bjoiRk9STVVMQTI4IixmOmZlfSwxNDI6e246Ij8/In0sMTQ3OntuOiI/PyJ9LDE1MDp7bjoiPz8ifSwxNTE6e246Ij8/In0sMTUyOntuOiI/PyJ9LDE1Mzp7bjoiPz8ifSwxNTQ6e246Ij8/In0sMTU1OntuOiI/PyJ9LDE1Njp7bjoiPz8ifSwxNjM6e246Ij8/In0sMTc0OntuOiI/PyJ9LDE3NTp7bjoiPz8ifSwxNzY6e246Ij8/In0sMTc3OntuOiI/PyJ9LDE4NDp7bjoiPz8ifSwxODU6e246Ij8/In0sMTg2OntuOiI/PyJ9LDE4Nzp7bjoiPz8ifSwxODg6e246Ij8/In0sMTk1OntuOiI/PyJ9LDIwMTp7bjoiPz8ifSwyMDQ6e246IlNIRUVUTkFNRUNTIixmOnJlfSwyMDU6e246Ij8/In0sMjA2OntuOiI/PyJ9LDIwNzp7bjoiPz8ifSwyMDg6e246Ij8/In0sMjU2OntuOiI/PyJ9LDI1OTp7bjoiPz8ifSwyNjA6e246Ij8/In0sMjYxOntuOiI/PyJ9LDI2Mjp7bjoiPz8ifSwyNjM6e246Ij8/In0sMjY1OntuOiI/PyJ9LDI2Njp7bjoiPz8ifSwyNjc6e246Ij8/In0sMjY4OntuOiI/PyJ9LDI3MDp7bjoiPz8ifSwyNzE6e246Ij8/In0sMzg0OntuOiI/PyJ9LDM4OTp7bjoiPz8ifSwzOTA6e246Ij8/In0sMzkzOntuOiI/PyJ9LDM5Njp7bjoiPz8ifSw1MTI6e246Ij8/In0sNTE0OntuOiI/PyJ9LDUxMzp7bjoiPz8ifSw1MTY6e246Ij8/In0sNTE3OntuOiI/PyJ9LDY0MDp7bjoiPz8ifSw2NDE6e246Ij8/In0sNjQyOntuOiI/PyJ9LDY0Mzp7bjoiPz8ifSw2NDQ6e246Ij8/In0sNjQ1OntuOiI/PyJ9LDY0Njp7bjoiPz8ifSw2NDc6e246Ij8/In0sNjQ4OntuOiI/PyJ9LDY1ODp7bjoiPz8ifSw2NTk6e246Ij8/In0sNjYwOntuOiI/PyJ9LDY2MTp7bjoiPz8ifSw2NjI6e246Ij8/In0sNjY1OntuOiI/PyJ9LDY2Njp7bjoiPz8ifSw3Njg6e246Ij8/In0sNzcyOntuOiI/PyJ9LDE1Mzc6e246IlNIRUVUSU5GT1FQIixmOmllfSwxNjAwOntuOiI/PyJ9LDE2MDI6e246Ij8/In0sMTc5Mzp7bjoiPz8ifSwxNzk0OntuOiI/PyJ9LDE3OTU6e246Ij8/In0sMTc5Njp7bjoiPz8ifSwxOTIwOntuOiI/PyJ9LDIwNDg6e246Ij8/In0sMjA0OTp7bjoiPz8ifSwyMDUyOntuOiI/PyJ9LDI2ODg6e246Ij8/In0sMTA5OTg6e246Ij8/In0sMTI4NDk6e246Ij8/In0sMjgyMzM6e246Ij8/In0sMjg0ODQ6e246Ij8/In0sNjU1MzU6e246IiJ9fTtyZXR1cm57c2hlZXRfdG9fd2sxOm4sYm9va190b193azM6dCx0b193b3JrYm9vazphfX0oKTtmdW5jdGlvbiBSbyhlKXt2YXIgYT17fSxyPWUubWF0Y2goS2UpLG49MCx0PSExO2lmKHIpZm9yKDtuIT1yLmxlbmd0aDsrK24pe3ZhciBzPW9lKHJbbl0pO3N3aXRjaChzWzBdLnJlcGxhY2UoL1x3KjovZywiIikpe2Nhc2UiPGNvbmRlbnNlIjpicmVhaztjYXNlIjxleHRlbmQiOmJyZWFrO2Nhc2UiPHNoYWRvdyI6aWYoIXMudmFsKWJyZWFrO2Nhc2UiPHNoYWRvdz4iOmNhc2UiPHNoYWRvdy8+IjphLnNoYWRvdz0xO2JyZWFrO2Nhc2UiPC9zaGFkb3c+IjpicmVhaztjYXNlIjxjaGFyc2V0IjppZihzLnZhbD09IjEiKWJyZWFrO2EuY3A9U3RbcGFyc2VJbnQocy52YWwsMTApXTticmVhaztjYXNlIjxvdXRsaW5lIjppZighcy52YWwpYnJlYWs7Y2FzZSI8b3V0bGluZT4iOmNhc2UiPG91dGxpbmUvPiI6YS5vdXRsaW5lPTE7YnJlYWs7Y2FzZSI8L291dGxpbmU+IjpicmVhaztjYXNlIjxyRm9udCI6YS5uYW1lPXMudmFsO2JyZWFrO2Nhc2UiPHN6IjphLnN6PXMudmFsO2JyZWFrO2Nhc2UiPHN0cmlrZSI6aWYoIXMudmFsKWJyZWFrO2Nhc2UiPHN0cmlrZT4iOmNhc2UiPHN0cmlrZS8+IjphLnN0cmlrZT0xO2JyZWFrO2Nhc2UiPC9zdHJpa2U+IjpicmVhaztjYXNlIjx1IjppZighcy52YWwpYnJlYWs7c3dpdGNoKHMudmFsKXtjYXNlImRvdWJsZSI6YS51dmFsPSJkb3VibGUiO2JyZWFrO2Nhc2Uic2luZ2xlQWNjb3VudGluZyI6YS51dmFsPSJzaW5nbGUtYWNjb3VudGluZyI7YnJlYWs7Y2FzZSJkb3VibGVBY2NvdW50aW5nIjphLnV2YWw9ImRvdWJsZS1hY2NvdW50aW5nIjticmVha31jYXNlIjx1PiI6Y2FzZSI8dS8+IjphLnU9MTticmVhaztjYXNlIjwvdT4iOmJyZWFrO2Nhc2UiPGIiOmlmKHMudmFsPT0iMCIpYnJlYWs7Y2FzZSI8Yj4iOmNhc2UiPGIvPiI6YS5iPTE7YnJlYWs7Y2FzZSI8L2I+IjpicmVhaztjYXNlIjxpIjppZihzLnZhbD09IjAiKWJyZWFrO2Nhc2UiPGk+IjpjYXNlIjxpLz4iOmEuaT0xO2JyZWFrO2Nhc2UiPC9pPiI6YnJlYWs7Y2FzZSI8Y29sb3IiOnMucmdiJiYoYS5jb2xvcj1zLnJnYi5zbGljZSgyLDgpKTticmVhaztjYXNlIjxjb2xvcj4iOmNhc2UiPGNvbG9yLz4iOmNhc2UiPC9jb2xvcj4iOmJyZWFrO2Nhc2UiPGZhbWlseSI6YS5mYW1pbHk9cy52YWw7YnJlYWs7Y2FzZSI8ZmFtaWx5PiI6Y2FzZSI8ZmFtaWx5Lz4iOmNhc2UiPC9mYW1pbHk+IjpicmVhaztjYXNlIjx2ZXJ0QWxpZ24iOmEudmFsaWduPXMudmFsO2JyZWFrO2Nhc2UiPHZlcnRBbGlnbj4iOmNhc2UiPHZlcnRBbGlnbi8+IjpjYXNlIjwvdmVydEFsaWduPiI6YnJlYWs7Y2FzZSI8c2NoZW1lIjpicmVhaztjYXNlIjxzY2hlbWU+IjpjYXNlIjxzY2hlbWUvPiI6Y2FzZSI8L3NjaGVtZT4iOmJyZWFrO2Nhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4dExzdD4iOmJyZWFrO2Nhc2UiPGV4dCI6dD0hMDticmVhaztjYXNlIjwvZXh0PiI6dD0hMTticmVhaztkZWZhdWx0OmlmKHNbMF0uY2hhckNvZGVBdCgxKSE9PTQ3JiYhdCl0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCByaWNoIGZvcm1hdCAiK3NbMF0pfX1yZXR1cm4gYX12YXIgSW89ZnVuY3Rpb24oKXt2YXIgZT15YSgidCIpLGE9eWEoInJQciIpO2Z1bmN0aW9uIHIocyl7dmFyIGk9cy5tYXRjaChlKTtpZighaSlyZXR1cm57dDoicyIsdjoiIn07dmFyIGM9e3Q6InMiLHY6RWUoaVsxXSl9LGY9cy5tYXRjaChhKTtyZXR1cm4gZiYmKGMucz1SbyhmWzFdKSksY312YXIgbj0vPCg/Olx3KzopP3I+L2csdD0vPFwvKD86XHcrOik/cj4vO3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4gaS5yZXBsYWNlKG4sIiIpLnNwbGl0KHQpLm1hcChyKS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGMudn0pfX0oKSxObz1mdW5jdGlvbigpe3ZhciBhPS8oXHJcbnxcbikvZztmdW5jdGlvbiByKHQscyxpKXt2YXIgYz1bXTt0LnUmJmMucHVzaCgidGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IiksdC51dmFsJiZjLnB1c2goInRleHQtdW5kZXJsaW5lLXN0eWxlOiIrdC51dmFsKyI7IiksdC5zeiYmYy5wdXNoKCJmb250LXNpemU6Iit0LnN6KyJwdDsiKSx0Lm91dGxpbmUmJmMucHVzaCgidGV4dC1lZmZlY3Q6IG91dGxpbmU7IiksdC5zaGFkb3cmJmMucHVzaCgidGV4dC1zaGFkb3c6IGF1dG87Iikscy5wdXNoKCc8c3BhbiBzdHlsZT0iJytjLmpvaW4oIiIpKyciPicpLHQuYiYmKHMucHVzaCgiPGI+IiksaS5wdXNoKCI8L2I+IikpLHQuaSYmKHMucHVzaCgiPGk+IiksaS5wdXNoKCI8L2k+IikpLHQuc3RyaWtlJiYocy5wdXNoKCI8cz4iKSxpLnB1c2goIjwvcz4iKSk7dmFyIGY9dC52YWxpZ258fCIiO3JldHVybiBmPT0ic3VwZXJzY3JpcHQifHxmPT0ic3VwZXIiP2Y9InN1cCI6Zj09InN1YnNjcmlwdCImJihmPSJzdWIiKSxmIT0iIiYmKHMucHVzaCgiPCIrZisiPiIpLGkucHVzaCgiPC8iK2YrIj4iKSksaS5wdXNoKCI8L3NwYW4+IiksdH1mdW5jdGlvbiBuKHQpe3ZhciBzPVtbXSx0LnYsW11dO3JldHVybiB0LnY/KHQucyYmcih0LnMsc1swXSxzWzJdKSxzWzBdLmpvaW4oIiIpK3NbMV0ucmVwbGFjZShhLCI8YnIvPiIpK3NbMl0uam9pbigiIikpOiIifXJldHVybiBmdW5jdGlvbihzKXtyZXR1cm4gcy5tYXAobikuam9pbigiIil9fSgpLFBvPS88KD86XHcrOik/dFtePl0qPihbXjxdKik8XC8oPzpcdys6KT90Pi9nLExvPS88KD86XHcrOik/cj4vLE1vPS88KD86XHcrOik/clBoLio/PihbXHNcU10qPyk8XC8oPzpcdys6KT9yUGg+L2c7ZnVuY3Rpb24gWnQoZSxhKXt2YXIgcj1hP2EuY2VsbEhUTUw6ITAsbj17fTtyZXR1cm4gZT8oZS5tYXRjaCgvXlxzKjwoPzpcdys6KT90W14+XSo+Lyk/KG4udD1FZShBZShlLnNsaWNlKGUuaW5kZXhPZigiPiIpKzEpLnNwbGl0KC88XC8oPzpcdys6KT90Pi8pWzBdfHwiIikpLG4ucj1BZShlKSxyJiYobi5oPVB0KG4udCkpKTplLm1hdGNoKExvKSYmKG4ucj1BZShlKSxuLnQ9RWUoQWUoKGUucmVwbGFjZShNbywiIikubWF0Y2goUG8pfHxbXSkuam9pbigiIikucmVwbGFjZShLZSwiIikpKSxyJiYobi5oPU5vKElvKG4ucikpKSksbik6e3Q6IiJ9fXZhciBCbz0vPCg/Olx3KzopP3NzdChbXj5dKik+KFtcc1xTXSopPFwvKD86XHcrOik/c3N0Pi8sYm89LzwoPzpcdys6KT8oPzpzaXxzc3RJdGVtKT4vZyxVbz0vPFwvKD86XHcrOik/KD86c2l8c3N0SXRlbSk+LztmdW5jdGlvbiBIbyhlLGEpe3ZhciByPVtdLG49IiI7aWYoIWUpcmV0dXJuIHI7dmFyIHQ9ZS5tYXRjaChCbyk7aWYodCl7bj10WzJdLnJlcGxhY2UoYm8sIiIpLnNwbGl0KFVvKTtmb3IodmFyIHM9MDtzIT1uLmxlbmd0aDsrK3Mpe3ZhciBpPVp0KG5bc10udHJpbSgpLGEpO2khPW51bGwmJihyW3IubGVuZ3RoXT1pKX10PW9lKHRbMV0pLHIuQ291bnQ9dC5jb3VudCxyLlVuaXF1ZT10LnVuaXF1ZUNvdW50fXJldHVybiByfWZ1bmN0aW9uIFZvKGUpe3JldHVybltlLnJlYWRfc2hpZnQoNCksZS5yZWFkX3NoaWZ0KDQpXX1mdW5jdGlvbiBXbyhlLGEpe3ZhciByPVtdLG49ITE7cmV0dXJuIFByKGUsZnVuY3Rpb24ocyxpLGMpe3N3aXRjaChjKXtjYXNlIDE1OTpyLkNvdW50PXNbMF0sci5VbmlxdWU9c1sxXTticmVhaztjYXNlIDE5OnIucHVzaChzKTticmVhaztjYXNlIDE2MDpyZXR1cm4hMDtjYXNlIDM1Om49ITA7YnJlYWs7Y2FzZSAzNjpuPSExO2JyZWFrO2RlZmF1bHQ6aWYoaS5ULCFufHxhLldURil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgcmVjb3JkIDB4IitjLnRvU3RyaW5nKDE2KSl9fSkscn1mdW5jdGlvbiB1cyhlKXtmb3IodmFyIGE9W10scj1lLnNwbGl0KCIiKSxuPTA7bjxyLmxlbmd0aDsrK24pYVtuXT1yW25dLmNoYXJDb2RlQXQoMCk7cmV0dXJuIGF9ZnVuY3Rpb24gTXIoZSxhKXt2YXIgcj17fTtyZXR1cm4gci5NYWpvcj1lLnJlYWRfc2hpZnQoMiksci5NaW5vcj1lLnJlYWRfc2hpZnQoMiksYT49NCYmKGUubCs9YS00KSxyfWZ1bmN0aW9uIEdvKGUpe3ZhciBhPXt9O3JldHVybiBhLmlkPWUucmVhZF9zaGlmdCgwLCJscHA0IiksYS5SPU1yKGUsNCksYS5VPU1yKGUsNCksYS5XPU1yKGUsNCksYX1mdW5jdGlvbiBYbyhlKXtmb3IodmFyIGE9ZS5yZWFkX3NoaWZ0KDQpLHI9ZS5sK2EtNCxuPXt9LHQ9ZS5yZWFkX3NoaWZ0KDQpLHM9W107dC0tID4wOylzLnB1c2goe3Q6ZS5yZWFkX3NoaWZ0KDQpLHY6ZS5yZWFkX3NoaWZ0KDAsImxwcDQiKX0pO2lmKG4ubmFtZT1lLnJlYWRfc2hpZnQoMCwibHBwNCIpLG4uY29tcHM9cyxlLmwhPXIpdGhyb3cgbmV3IEVycm9yKCJCYWQgRGF0YVNwYWNlTWFwRW50cnk6ICIrZS5sKyIgIT0gIityKTtyZXR1cm4gbn1mdW5jdGlvbiAkbyhlKXt2YXIgYT1bXTtlLmwrPTQ7Zm9yKHZhciByPWUucmVhZF9zaGlmdCg0KTtyLS0gPjA7KWEucHVzaChYbyhlKSk7cmV0dXJuIGF9ZnVuY3Rpb24gem8oZSl7dmFyIGE9W107ZS5sKz00O2Zvcih2YXIgcj1lLnJlYWRfc2hpZnQoNCk7ci0tID4wOylhLnB1c2goZS5yZWFkX3NoaWZ0KDAsImxwcDQiKSk7cmV0dXJuIGF9ZnVuY3Rpb24gS28oZSl7dmFyIGE9e307cmV0dXJuIGUucmVhZF9zaGlmdCg0KSxlLmwrPTQsYS5pZD1lLnJlYWRfc2hpZnQoMCwibHBwNCIpLGEubmFtZT1lLnJlYWRfc2hpZnQoMCwibHBwNCIpLGEuUj1NcihlLDQpLGEuVT1NcihlLDQpLGEuVz1NcihlLDQpLGF9ZnVuY3Rpb24gWW8oZSl7dmFyIGE9S28oZSk7aWYoYS5lbmFtZT1lLnJlYWRfc2hpZnQoMCwiOGxwcDQiKSxhLmJsa3N6PWUucmVhZF9zaGlmdCg0KSxhLmNtb2RlPWUucmVhZF9zaGlmdCg0KSxlLnJlYWRfc2hpZnQoNCkhPTQpdGhyb3cgbmV3IEVycm9yKCJCYWQgIVByaW1hcnkgcmVjb3JkIik7cmV0dXJuIGF9ZnVuY3Rpb24geHMoZSxhKXt2YXIgcj1lLmwrYSxuPXt9O24uRmxhZ3M9ZS5yZWFkX3NoaWZ0KDQpJjYzLGUubCs9NCxuLkFsZ0lEPWUucmVhZF9zaGlmdCg0KTt2YXIgdD0hMTtzd2l0Y2gobi5BbGdJRCl7Y2FzZSAyNjEyNjpjYXNlIDI2MTI3OmNhc2UgMjYxMjg6dD1uLkZsYWdzPT0zNjticmVhaztjYXNlIDI2NjI1OnQ9bi5GbGFncz09NDticmVhaztjYXNlIDA6dD1uLkZsYWdzPT0xNnx8bi5GbGFncz09NHx8bi5GbGFncz09MzY7YnJlYWs7ZGVmYXVsdDp0aHJvdyJVbnJlY29nbml6ZWQgZW5jcnlwdGlvbiBhbGdvcml0aG06ICIrbi5BbGdJRH1pZighdCl0aHJvdyBuZXcgRXJyb3IoIkVuY3J5cHRpb24gRmxhZ3MvQWxnSUQgbWlzbWF0Y2giKTtyZXR1cm4gbi5BbGdJREhhc2g9ZS5yZWFkX3NoaWZ0KDQpLG4uS2V5U2l6ZT1lLnJlYWRfc2hpZnQoNCksbi5Qcm92aWRlclR5cGU9ZS5yZWFkX3NoaWZ0KDQpLGUubCs9OCxuLkNTUE5hbWU9ZS5yZWFkX3NoaWZ0KHItZS5sPj4xLCJ1dGYxNmxlIiksZS5sPXIsbn1mdW5jdGlvbiBkcyhlLGEpe3ZhciByPXt9LG49ZS5sK2E7cmV0dXJuIGUubCs9NCxyLlNhbHQ9ZS5zbGljZShlLmwsZS5sKzE2KSxlLmwrPTE2LHIuVmVyaWZpZXI9ZS5zbGljZShlLmwsZS5sKzE2KSxlLmwrPTE2LGUucmVhZF9zaGlmdCg0KSxyLlZlcmlmaWVySGFzaD1lLnNsaWNlKGUubCxuKSxlLmw9bixyfWZ1bmN0aW9uIGpvKGUpe3ZhciBhPU1yKGUpO3N3aXRjaChhLk1pbm9yKXtjYXNlIDI6cmV0dXJuW2EuTWlub3IsSm8oZSldO2Nhc2UgMzpyZXR1cm5bYS5NaW5vcixabygpXTtjYXNlIDQ6cmV0dXJuW2EuTWlub3IscW8oZSldfXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUgdW5yZWNvZ25pemVkIFZlcnNpb246ICIrYS5NaW5vcil9ZnVuY3Rpb24gSm8oZSl7dmFyIGE9ZS5yZWFkX3NoaWZ0KDQpO2lmKChhJjYzKSE9MzYpdGhyb3cgbmV3IEVycm9yKCJFbmNyeXB0aW9uSW5mbyBtaXNtYXRjaCIpO3ZhciByPWUucmVhZF9zaGlmdCg0KSxuPXhzKGUsciksdD1kcyhlLGUubGVuZ3RoLWUubCk7cmV0dXJue3Q6IlN0ZCIsaDpuLHY6dH19ZnVuY3Rpb24gWm8oKXt0aHJvdyBuZXcgRXJyb3IoIkZpbGUgaXMgcGFzc3dvcmQtcHJvdGVjdGVkOiBFQ01BLTM3NiBFeHRlbnNpYmxlIil9ZnVuY3Rpb24gcW8oZSl7dmFyIGE9WyJzYWx0U2l6ZSIsImJsb2NrU2l6ZSIsImtleUJpdHMiLCJoYXNoU2l6ZSIsImNpcGhlckFsZ29yaXRobSIsImNpcGhlckNoYWluaW5nIiwiaGFzaEFsZ29yaXRobSIsInNhbHRWYWx1ZSJdO2UubCs9NDt2YXIgcj1lLnJlYWRfc2hpZnQoZS5sZW5ndGgtZS5sLCJ1dGY4Iiksbj17fTtyZXR1cm4gci5yZXBsYWNlKEtlLGZ1bmN0aW9uKHMpe3ZhciBpPW9lKHMpO3N3aXRjaChDcihpWzBdKSl7Y2FzZSI8P3htbCI6YnJlYWs7Y2FzZSI8ZW5jcnlwdGlvbiI6Y2FzZSI8L2VuY3J5cHRpb24+IjpicmVhaztjYXNlIjxrZXlEYXRhIjphLmZvckVhY2goZnVuY3Rpb24oYyl7bltjXT1pW2NdfSk7YnJlYWs7Y2FzZSI8ZGF0YUludGVncml0eSI6bi5lbmNyeXB0ZWRIbWFjS2V5PWkuZW5jcnlwdGVkSG1hY0tleSxuLmVuY3J5cHRlZEhtYWNWYWx1ZT1pLmVuY3J5cHRlZEhtYWNWYWx1ZTticmVhaztjYXNlIjxrZXlFbmNyeXB0b3JzPiI6Y2FzZSI8a2V5RW5jcnlwdG9ycyI6bi5lbmNzPVtdO2JyZWFrO2Nhc2UiPC9rZXlFbmNyeXB0b3JzPiI6YnJlYWs7Y2FzZSI8a2V5RW5jcnlwdG9yIjpuLnVyaT1pLnVyaTticmVhaztjYXNlIjwva2V5RW5jcnlwdG9yPiI6YnJlYWs7Y2FzZSI8ZW5jcnlwdGVkS2V5IjpuLmVuY3MucHVzaChpKTticmVhaztkZWZhdWx0OnRocm93IGlbMF19fSksbn1mdW5jdGlvbiBRbyhlLGEpe3ZhciByPXt9LG49ci5FbmNyeXB0aW9uVmVyc2lvbkluZm89TXIoZSw0KTtpZihhLT00LG4uTWlub3IhPTIpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgbWlub3IgdmVyc2lvbiBjb2RlOiAiK24uTWlub3IpO2lmKG4uTWFqb3I+NHx8bi5NYWpvcjwyKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkIG1ham9yIHZlcnNpb24gY29kZTogIituLk1ham9yKTtyLkZsYWdzPWUucmVhZF9zaGlmdCg0KSxhLT00O3ZhciB0PWUucmVhZF9zaGlmdCg0KTtyZXR1cm4gYS09NCxyLkVuY3J5cHRpb25IZWFkZXI9eHMoZSx0KSxhLT10LHIuRW5jcnlwdGlvblZlcmlmaWVyPWRzKGUsYSkscn1mdW5jdGlvbiBlbChlKXt2YXIgYT17fSxyPWEuRW5jcnlwdGlvblZlcnNpb25JbmZvPU1yKGUsNCk7aWYoci5NYWpvciE9MXx8ci5NaW5vciE9MSl0aHJvdyJ1bnJlY29nbml6ZWQgdmVyc2lvbiBjb2RlICIrci5NYWpvcisiIDogIityLk1pbm9yO3JldHVybiBhLlNhbHQ9ZS5yZWFkX3NoaWZ0KDE2KSxhLkVuY3J5cHRlZFZlcmlmaWVyPWUucmVhZF9zaGlmdCgxNiksYS5FbmNyeXB0ZWRWZXJpZmllckhhc2g9ZS5yZWFkX3NoaWZ0KDE2KSxhfWZ1bmN0aW9uIHJsKGUpe3ZhciBhPTAscixuPXVzKGUpLHQ9bi5sZW5ndGgrMSxzLGksYyxmLG87Zm9yKHI9VnIodCksclswXT1uLmxlbmd0aCxzPTE7cyE9dDsrK3MpcltzXT1uW3MtMV07Zm9yKHM9dC0xO3M+PTA7LS1zKWk9cltzXSxjPWEmMTYzODQ/MTowLGY9YTw8MSYzMjc2NyxvPWN8ZixhPW9eaTtyZXR1cm4gYV41MjgxMX12YXIgdnM9ZnVuY3Rpb24oKXt2YXIgZT1bMTg3LDI1NSwyNTUsMTg2LDI1NSwyNTUsMTg1LDEyOCwwLDE5MCwxNSwwLDE5MSwxNSwwXSxhPVs1Nzg0MCw3NDM5LDUyMzgwLDMzOTg0LDQzNjQsMzYwMCw2MTkwMiwxMjYwNiw2MjU4LDU3NjU3LDU0Mjg3LDM0MDQxLDEwMjUyLDQzMzcwLDIwMTYzXSxyPVs0NDc5NiwxOTkyOSwzOTg1OCwxMDA1MywyMDEwNiw0MDIxMiwxMDc2MSwzMTU4NSw2MzE3MCw2NDkzMyw2MDI2Nyw1MDkzNSw0MDM5OSwxMTE5OSwxNzc2MywzNTUyNiwxNDUzLDI5MDYsNTgxMiwxMTYyNCwyMzI0OCw4ODUsMTc3MCwzNTQwLDcwODAsMTQxNjAsMjgzMjAsNTY2NDAsNTUzNjksNDExMzksMjA4MDcsNDE2MTQsMjE4MjEsNDM2NDIsMTc2MjEsMjg0ODUsNTY5NzAsNDQzNDEsMTkwMTksMzgwMzgsMTQ2MDUsMjkyMTAsNjAxOTUsNTA3OTEsNDAxNzUsMTA3NTEsMjE1MDIsNDMwMDQsMjQ1MzcsMTgzODcsMzY3NzQsMzk0OSw3ODk4LDE1Nzk2LDMxNTkyLDYzMTg0LDQ3MjAxLDI0ODAzLDQ5NjA2LDM3ODA1LDE0MjAzLDI4NDA2LDU2ODEyLDE3ODI0LDM1NjQ4LDE2OTcsMzM5NCw2Nzg4LDEzNTc2LDI3MTUyLDQzNjAxLDE3NTM5LDM1MDc4LDU1NywxMTE0LDIyMjgsNDQ1NiwzMDM4OCw2MDc3Niw1MTk1MywzNDI0Myw3MDc5LDE0MTU4LDI4MzE2LDE0MTI4LDI4MjU2LDU2NTEyLDQzNDI1LDE3MjUxLDM0NTAyLDc1OTcsMTMxMDUsMjYyMTAsNTI0MjAsMzUyNDEsODgzLDE3NjYsMzUzMiw0MTI5LDgyNTgsMTY1MTYsMzMwMzIsNDY1Nyw5MzE0LDE4NjI4XSxuPWZ1bmN0aW9uKGkpe3JldHVybihpLzJ8aSoxMjgpJjI1NX0sdD1mdW5jdGlvbihpLGMpe3JldHVybiBuKGleYyl9LHM9ZnVuY3Rpb24oaSl7Zm9yKHZhciBjPWFbaS5sZW5ndGgtMV0sZj0xMDQsbz1pLmxlbmd0aC0xO28+PTA7LS1vKWZvcih2YXIgbD1pW29dLGg9MDtoIT03OysraClsJjY0JiYoY149cltmXSksbCo9MiwtLWY7cmV0dXJuIGN9O3JldHVybiBmdW5jdGlvbihpKXtmb3IodmFyIGM9dXMoaSksZj1zKGMpLG89Yy5sZW5ndGgsbD1WcigxNiksaD0wO2ghPTE2OysraClsW2hdPTA7dmFyIHgsZCx2O2ZvcigobyYxKT09PTEmJih4PWY+PjgsbFtvXT10KGVbMF0seCksLS1vLHg9ZiYyNTUsZD1jW2MubGVuZ3RoLTFdLGxbb109dChkLHgpKTtvPjA7KS0tbyx4PWY+PjgsbFtvXT10KGNbb10seCksLS1vLHg9ZiYyNTUsbFtvXT10KGNbb10seCk7Zm9yKG89MTUsdj0xNS1jLmxlbmd0aDt2PjA7KXg9Zj4+OCxsW29dPXQoZVt2XSx4KSwtLW8sLS12LHg9ZiYyNTUsbFtvXT10KGNbb10seCksLS1vLC0tdjtyZXR1cm4gbH19KCksYWw9ZnVuY3Rpb24oZSxhLHIsbix0KXt0fHwodD1hKSxufHwobj12cyhlKSk7dmFyIHMsaTtmb3Iocz0wO3MhPWEubGVuZ3RoOysrcylpPWFbc10saV49bltyXSxpPShpPj41fGk8PDMpJjI1NSx0W3NdPWksKytyO3JldHVyblt0LHIsbl19LHRsPWZ1bmN0aW9uKGUpe3ZhciBhPTAscj12cyhlKTtyZXR1cm4gZnVuY3Rpb24obil7dmFyIHQ9YWwoIiIsbixhLHIpO3JldHVybiBhPXRbMV0sdFswXX19O2Z1bmN0aW9uIG5sKGUsYSxyLG4pe3ZhciB0PXtrZXk6TWUoZSksdmVyaWZpY2F0aW9uQnl0ZXM6TWUoZSl9O3JldHVybiByLnBhc3N3b3JkJiYodC52ZXJpZmllcj1ybChyLnBhc3N3b3JkKSksbi52YWxpZD10LnZlcmlmaWNhdGlvbkJ5dGVzPT09dC52ZXJpZmllcixuLnZhbGlkJiYobi5pbnNpdHU9dGwoci5wYXNzd29yZCkpLHR9ZnVuY3Rpb24gc2woZSxhLHIpe3ZhciBuPXJ8fHt9O3JldHVybiBuLkluZm89ZS5yZWFkX3NoaWZ0KDIpLGUubC09MixuLkluZm89PT0xP24uRGF0YT1lbChlKTpuLkRhdGE9UW8oZSxhKSxufWZ1bmN0aW9uIGlsKGUsYSxyKXt2YXIgbj17VHlwZTpyLmJpZmY+PTg/ZS5yZWFkX3NoaWZ0KDIpOjB9O3JldHVybiBuLlR5cGU/c2woZSxhLTIsbik6bmwoZSxyLmJpZmY+PTg/YTphLTIscixuKSxufXZhciBjbD1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxzKXtzd2l0Y2gocy50eXBlKXtjYXNlImJhc2U2NCI6cmV0dXJuIGEoZnIodCkscyk7Y2FzZSJiaW5hcnkiOnJldHVybiBhKHQscyk7Y2FzZSJidWZmZXIiOnJldHVybiBhKGdlJiZCdWZmZXIuaXNCdWZmZXIodCk/dC50b1N0cmluZygiYmluYXJ5Iik6WnIodCkscyk7Y2FzZSJhcnJheSI6cmV0dXJuIGEocmEodCkscyl9dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiK3MudHlwZSl9ZnVuY3Rpb24gYSh0LHMpe3ZhciBpPXN8fHt9LGM9aS5kZW5zZT9bXTp7fSxmPXQubWF0Y2goL1xcdHJvd2QuKj9cXHJvd1xiL2cpO2lmKCFmLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIlJURiBtaXNzaW5nIHRhYmxlIik7dmFyIG89e3M6e2M6MCxyOjB9LGU6e2M6MCxyOmYubGVuZ3RoLTF9fTtyZXR1cm4gZi5mb3JFYWNoKGZ1bmN0aW9uKGwsaCl7QXJyYXkuaXNBcnJheShjKSYmKGNbaF09W10pO2Zvcih2YXIgeD0vXFxcdytcYi9nLGQ9MCx2LHU9LTE7dj14LmV4ZWMobCk7KXtzd2l0Y2godlswXSl7Y2FzZSJcXGNlbGwiOnZhciBnPWwuc2xpY2UoZCx4Lmxhc3RJbmRleC12WzBdLmxlbmd0aCk7aWYoZ1swXT09IiAiJiYoZz1nLnNsaWNlKDEpKSwrK3UsZy5sZW5ndGgpe3ZhciBGPXt2OmcsdDoicyJ9O0FycmF5LmlzQXJyYXkoYyk/Y1toXVt1XT1GOmNbdWUoe3I6aCxjOnV9KV09Rn1icmVha31kPXgubGFzdEluZGV4fXU+by5lLmMmJihvLmUuYz11KX0pLGNbIiFyZWYiXT1fZShvKSxjfWZ1bmN0aW9uIHIodCxzKXtyZXR1cm4gWHIoZSh0LHMpLHMpfWZ1bmN0aW9uIG4odCl7Zm9yKHZhciBzPVsie1xccnRmMVxcYW5zaSJdLGk9T2UodFsiIXJlZiJdKSxjLGY9QXJyYXkuaXNBcnJheSh0KSxvPWkucy5yO288PWkuZS5yOysrbyl7cy5wdXNoKCJcXHRyb3dkXFx0cmF1dG9maXQxIik7Zm9yKHZhciBsPWkucy5jO2w8PWkuZS5jOysrbClzLnB1c2goIlxcY2VsbHgiKyhsKzEpKTtmb3Iocy5wdXNoKCJcXHBhcmRcXGludGJsIiksbD1pLnMuYztsPD1pLmUuYzsrK2wpe3ZhciBoPXVlKHtyOm8sYzpsfSk7Yz1mPyh0W29dfHxbXSlbbF06dFtoXSwhKCFjfHxjLnY9PW51bGwmJighYy5mfHxjLkYpKSYmKHMucHVzaCgiICIrKGMud3x8KExyKGMpLGMudykpKSxzLnB1c2goIlxcY2VsbCIpKX1zLnB1c2goIlxccGFyZFxcaW50YmxcXHJvdyIpfXJldHVybiBzLmpvaW4oIiIpKyJ9In1yZXR1cm57dG9fd29ya2Jvb2s6cix0b19zaGVldDplLGZyb21fc2hlZXQ6bn19KCk7ZnVuY3Rpb24gZmwoZSl7dmFyIGE9ZS5zbGljZShlWzBdPT09IiMiPzE6MCkuc2xpY2UoMCw2KTtyZXR1cm5bcGFyc2VJbnQoYS5zbGljZSgwLDIpLDE2KSxwYXJzZUludChhLnNsaWNlKDIsNCksMTYpLHBhcnNlSW50KGEuc2xpY2UoNCw2KSwxNildfWZ1bmN0aW9uIEhhKGUpe2Zvcih2YXIgYT0wLHI9MTthIT0zOysrYSlyPXIqMjU2KyhlW2FdPjI1NT8yNTU6ZVthXTwwPzA6ZVthXSk7cmV0dXJuIHIudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkuc2xpY2UoMSl9ZnVuY3Rpb24gb2woZSl7dmFyIGE9ZVswXS8yNTUscj1lWzFdLzI1NSxuPWVbMl0vMjU1LHQ9TWF0aC5tYXgoYSxyLG4pLHM9TWF0aC5taW4oYSxyLG4pLGk9dC1zO2lmKGk9PT0wKXJldHVyblswLDAsYV07dmFyIGM9MCxmPTAsbz10K3M7c3dpdGNoKGY9aS8obz4xPzItbzpvKSx0KXtjYXNlIGE6Yz0oKHItbikvaSs2KSU2O2JyZWFrO2Nhc2UgcjpjPShuLWEpL2krMjticmVhaztjYXNlIG46Yz0oYS1yKS9pKzQ7YnJlYWt9cmV0dXJuW2MvNixmLG8vMl19ZnVuY3Rpb24gbGwoZSl7dmFyIGE9ZVswXSxyPWVbMV0sbj1lWzJdLHQ9cioyKihuPC41P246MS1uKSxzPW4tdC8yLGk9W3MscyxzXSxjPTYqYSxmO2lmKHIhPT0wKXN3aXRjaChjfDApe2Nhc2UgMDpjYXNlIDY6Zj10KmMsaVswXSs9dCxpWzFdKz1mO2JyZWFrO2Nhc2UgMTpmPXQqKDItYyksaVswXSs9ZixpWzFdKz10O2JyZWFrO2Nhc2UgMjpmPXQqKGMtMiksaVsxXSs9dCxpWzJdKz1mO2JyZWFrO2Nhc2UgMzpmPXQqKDQtYyksaVsxXSs9ZixpWzJdKz10O2JyZWFrO2Nhc2UgNDpmPXQqKGMtNCksaVsyXSs9dCxpWzBdKz1mO2JyZWFrO2Nhc2UgNTpmPXQqKDYtYyksaVsyXSs9ZixpWzBdKz10O2JyZWFrfWZvcih2YXIgbz0wO28hPTM7KytvKWlbb109TWF0aC5yb3VuZChpW29dKjI1NSk7cmV0dXJuIGl9ZnVuY3Rpb24gcHQoZSxhKXtpZihhPT09MClyZXR1cm4gZTt2YXIgcj1vbChmbChlKSk7cmV0dXJuIGE8MD9yWzJdPXJbMl0qKDErYSk6clsyXT0xLSgxLXJbMl0pKigxLWEpLEhhKGxsKHIpKX12YXIgcHM9NixobD0xNSx1bD0xLHNyPXBzO2Z1bmN0aW9uIGd0KGUpe3JldHVybiBNYXRoLmZsb29yKChlK01hdGgucm91bmQoMTI4L3NyKS8yNTYpKnNyKX1mdW5jdGlvbiBtdChlKXtyZXR1cm4gTWF0aC5mbG9vcigoZS01KS9zcioxMDArLjUpLzEwMH1mdW5jdGlvbiBxdChlKXtyZXR1cm4gTWF0aC5yb3VuZCgoZSpzcis1KS9zcioyNTYpLzI1Nn1mdW5jdGlvbiBRdChlKXtyZXR1cm4gcXQobXQoZ3QoZSkpKX1mdW5jdGlvbiBlMChlKXt2YXIgYT1NYXRoLmFicyhlLVF0KGUpKSxyPXNyO2lmKGE+LjAwNSlmb3Ioc3I9dWw7c3I8aGw7KytzcilNYXRoLmFicyhlLVF0KGUpKTw9YSYmKGE9TWF0aC5hYnMoZS1RdChlKSkscj1zcik7c3I9cn1mdW5jdGlvbiBfYShlKXtlLndpZHRoPyhlLndweD1ndChlLndpZHRoKSxlLndjaD1tdChlLndweCksZS5NRFc9c3IpOmUud3B4PyhlLndjaD1tdChlLndweCksZS53aWR0aD1xdChlLndjaCksZS5NRFc9c3IpOnR5cGVvZiBlLndjaD09Im51bWJlciImJihlLndpZHRoPXF0KGUud2NoKSxlLndweD1ndChlLndpZHRoKSxlLk1EVz1zciksZS5jdXN0b21XaWR0aCYmZGVsZXRlIGUuY3VzdG9tV2lkdGh9dmFyIHhsPTk2LGdzPXhsO2Z1bmN0aW9uIG1zKGUpe3JldHVybiBlKjk2L2dzfWZ1bmN0aW9uIFZhKGUpe3JldHVybiBlKmdzLzk2fXZhciBkbD17Tm9uZToibm9uZSIsU29saWQ6InNvbGlkIixHcmF5NTA6Im1lZGl1bUdyYXkiLEdyYXk3NToiZGFya0dyYXkiLEdyYXkyNToibGlnaHRHcmF5IixIb3J6U3RyaXBlOiJkYXJrSG9yaXpvbnRhbCIsVmVydFN0cmlwZToiZGFya1ZlcnRpY2FsIixSZXZlcnNlRGlhZ1N0cmlwZToiZGFya0Rvd24iLERpYWdTdHJpcGU6ImRhcmtVcCIsRGlhZ0Nyb3NzOiJkYXJrR3JpZCIsVGhpY2tEaWFnQ3Jvc3M6ImRhcmtUcmVsbGlzIixUaGluSG9yelN0cmlwZToibGlnaHRIb3Jpem9udGFsIixUaGluVmVydFN0cmlwZToibGlnaHRWZXJ0aWNhbCIsVGhpblJldmVyc2VEaWFnU3RyaXBlOiJsaWdodERvd24iLFRoaW5Ib3J6Q3Jvc3M6ImxpZ2h0R3JpZCJ9O2Z1bmN0aW9uIHZsKGUsYSxyLG4pe2EuQm9yZGVycz1bXTt2YXIgdD17fSxzPSExOyhlWzBdLm1hdGNoKEtlKXx8W10pLmZvckVhY2goZnVuY3Rpb24oaSl7dmFyIGM9b2UoaSk7c3dpdGNoKENyKGNbMF0pKXtjYXNlIjxib3JkZXJzIjpjYXNlIjxib3JkZXJzPiI6Y2FzZSI8L2JvcmRlcnM+IjpicmVhaztjYXNlIjxib3JkZXIiOmNhc2UiPGJvcmRlcj4iOmNhc2UiPGJvcmRlci8+Ijp0PXt9LGMuZGlhZ29uYWxVcCYmKHQuZGlhZ29uYWxVcD1TZShjLmRpYWdvbmFsVXApKSxjLmRpYWdvbmFsRG93biYmKHQuZGlhZ29uYWxEb3duPVNlKGMuZGlhZ29uYWxEb3duKSksYS5Cb3JkZXJzLnB1c2godCk7YnJlYWs7Y2FzZSI8L2JvcmRlcj4iOmJyZWFrO2Nhc2UiPGxlZnQvPiI6YnJlYWs7Y2FzZSI8bGVmdCI6Y2FzZSI8bGVmdD4iOmJyZWFrO2Nhc2UiPC9sZWZ0PiI6YnJlYWs7Y2FzZSI8cmlnaHQvPiI6YnJlYWs7Y2FzZSI8cmlnaHQiOmNhc2UiPHJpZ2h0PiI6YnJlYWs7Y2FzZSI8L3JpZ2h0PiI6YnJlYWs7Y2FzZSI8dG9wLz4iOmJyZWFrO2Nhc2UiPHRvcCI6Y2FzZSI8dG9wPiI6YnJlYWs7Y2FzZSI8L3RvcD4iOmJyZWFrO2Nhc2UiPGJvdHRvbS8+IjpicmVhaztjYXNlIjxib3R0b20iOmNhc2UiPGJvdHRvbT4iOmJyZWFrO2Nhc2UiPC9ib3R0b20+IjpicmVhaztjYXNlIjxkaWFnb25hbCI6Y2FzZSI8ZGlhZ29uYWw+IjpjYXNlIjxkaWFnb25hbC8+IjpicmVhaztjYXNlIjwvZGlhZ29uYWw+IjpicmVhaztjYXNlIjxob3Jpem9udGFsIjpjYXNlIjxob3Jpem9udGFsPiI6Y2FzZSI8aG9yaXpvbnRhbC8+IjpicmVhaztjYXNlIjwvaG9yaXpvbnRhbD4iOmJyZWFrO2Nhc2UiPHZlcnRpY2FsIjpjYXNlIjx2ZXJ0aWNhbD4iOmNhc2UiPHZlcnRpY2FsLz4iOmJyZWFrO2Nhc2UiPC92ZXJ0aWNhbD4iOmJyZWFrO2Nhc2UiPHN0YXJ0IjpjYXNlIjxzdGFydD4iOmNhc2UiPHN0YXJ0Lz4iOmJyZWFrO2Nhc2UiPC9zdGFydD4iOmJyZWFrO2Nhc2UiPGVuZCI6Y2FzZSI8ZW5kPiI6Y2FzZSI8ZW5kLz4iOmJyZWFrO2Nhc2UiPC9lbmQ+IjpicmVhaztjYXNlIjxjb2xvciI6Y2FzZSI8Y29sb3I+IjpicmVhaztjYXNlIjxjb2xvci8+IjpjYXNlIjwvY29sb3I+IjpicmVhaztjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRMc3Q+IjpicmVhaztjYXNlIjxleHQiOnM9ITA7YnJlYWs7Y2FzZSI8L2V4dD4iOnM9ITE7YnJlYWs7ZGVmYXVsdDppZihuJiZuLldURiYmIXMpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitjWzBdKyIgaW4gYm9yZGVycyIpfX0pfWZ1bmN0aW9uIHBsKGUsYSxyLG4pe2EuRmlsbHM9W107dmFyIHQ9e30scz0hMTsoZVswXS5tYXRjaChLZSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3ZhciBjPW9lKGkpO3N3aXRjaChDcihjWzBdKSl7Y2FzZSI8ZmlsbHMiOmNhc2UiPGZpbGxzPiI6Y2FzZSI8L2ZpbGxzPiI6YnJlYWs7Y2FzZSI8ZmlsbD4iOmNhc2UiPGZpbGwiOmNhc2UiPGZpbGwvPiI6dD17fSxhLkZpbGxzLnB1c2godCk7YnJlYWs7Y2FzZSI8L2ZpbGw+IjpicmVhaztjYXNlIjxncmFkaWVudEZpbGw+IjpicmVhaztjYXNlIjxncmFkaWVudEZpbGwiOmNhc2UiPC9ncmFkaWVudEZpbGw+IjphLkZpbGxzLnB1c2godCksdD17fTticmVhaztjYXNlIjxwYXR0ZXJuRmlsbCI6Y2FzZSI8cGF0dGVybkZpbGw+IjpjLnBhdHRlcm5UeXBlJiYodC5wYXR0ZXJuVHlwZT1jLnBhdHRlcm5UeXBlKTticmVhaztjYXNlIjxwYXR0ZXJuRmlsbC8+IjpjYXNlIjwvcGF0dGVybkZpbGw+IjpicmVhaztjYXNlIjxiZ0NvbG9yIjp0LmJnQ29sb3J8fCh0LmJnQ29sb3I9e30pLGMuaW5kZXhlZCYmKHQuYmdDb2xvci5pbmRleGVkPXBhcnNlSW50KGMuaW5kZXhlZCwxMCkpLGMudGhlbWUmJih0LmJnQ29sb3IudGhlbWU9cGFyc2VJbnQoYy50aGVtZSwxMCkpLGMudGludCYmKHQuYmdDb2xvci50aW50PXBhcnNlRmxvYXQoYy50aW50KSksYy5yZ2ImJih0LmJnQ29sb3IucmdiPWMucmdiLnNsaWNlKC02KSk7YnJlYWs7Y2FzZSI8YmdDb2xvci8+IjpjYXNlIjwvYmdDb2xvcj4iOmJyZWFrO2Nhc2UiPGZnQ29sb3IiOnQuZmdDb2xvcnx8KHQuZmdDb2xvcj17fSksYy50aGVtZSYmKHQuZmdDb2xvci50aGVtZT1wYXJzZUludChjLnRoZW1lLDEwKSksYy50aW50JiYodC5mZ0NvbG9yLnRpbnQ9cGFyc2VGbG9hdChjLnRpbnQpKSxjLnJnYiE9bnVsbCYmKHQuZmdDb2xvci5yZ2I9Yy5yZ2Iuc2xpY2UoLTYpKTticmVhaztjYXNlIjxmZ0NvbG9yLz4iOmNhc2UiPC9mZ0NvbG9yPiI6YnJlYWs7Y2FzZSI8c3RvcCI6Y2FzZSI8c3RvcC8+IjpicmVhaztjYXNlIjwvc3RvcD4iOmJyZWFrO2Nhc2UiPGNvbG9yIjpjYXNlIjxjb2xvci8+IjpicmVhaztjYXNlIjwvY29sb3I+IjpicmVhaztjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRMc3Q+IjpicmVhaztjYXNlIjxleHQiOnM9ITA7YnJlYWs7Y2FzZSI8L2V4dD4iOnM9ITE7YnJlYWs7ZGVmYXVsdDppZihuJiZuLldURiYmIXMpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitjWzBdKyIgaW4gZmlsbHMiKX19KX1mdW5jdGlvbiBnbChlLGEscixuKXthLkZvbnRzPVtdO3ZhciB0PXt9LHM9ITE7KGVbMF0ubWF0Y2goS2UpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihpKXt2YXIgYz1vZShpKTtzd2l0Y2goQ3IoY1swXSkpe2Nhc2UiPGZvbnRzIjpjYXNlIjxmb250cz4iOmNhc2UiPC9mb250cz4iOmJyZWFrO2Nhc2UiPGZvbnQiOmNhc2UiPGZvbnQ+IjpicmVhaztjYXNlIjwvZm9udD4iOmNhc2UiPGZvbnQvPiI6YS5Gb250cy5wdXNoKHQpLHQ9e307YnJlYWs7Y2FzZSI8bmFtZSI6Yy52YWwmJih0Lm5hbWU9QWUoYy52YWwpKTticmVhaztjYXNlIjxuYW1lLz4iOmNhc2UiPC9uYW1lPiI6YnJlYWs7Y2FzZSI8YiI6dC5ib2xkPWMudmFsP1NlKGMudmFsKToxO2JyZWFrO2Nhc2UiPGIvPiI6dC5ib2xkPTE7YnJlYWs7Y2FzZSI8aSI6dC5pdGFsaWM9Yy52YWw/U2UoYy52YWwpOjE7YnJlYWs7Y2FzZSI8aS8+Ijp0Lml0YWxpYz0xO2JyZWFrO2Nhc2UiPHUiOnN3aXRjaChjLnZhbCl7Y2FzZSJub25lIjp0LnVuZGVybGluZT0wO2JyZWFrO2Nhc2Uic2luZ2xlIjp0LnVuZGVybGluZT0xO2JyZWFrO2Nhc2UiZG91YmxlIjp0LnVuZGVybGluZT0yO2JyZWFrO2Nhc2Uic2luZ2xlQWNjb3VudGluZyI6dC51bmRlcmxpbmU9MzM7YnJlYWs7Y2FzZSJkb3VibGVBY2NvdW50aW5nIjp0LnVuZGVybGluZT0zNDticmVha31icmVhaztjYXNlIjx1Lz4iOnQudW5kZXJsaW5lPTE7YnJlYWs7Y2FzZSI8c3RyaWtlIjp0LnN0cmlrZT1jLnZhbD9TZShjLnZhbCk6MTticmVhaztjYXNlIjxzdHJpa2UvPiI6dC5zdHJpa2U9MTticmVhaztjYXNlIjxvdXRsaW5lIjp0Lm91dGxpbmU9Yy52YWw/U2UoYy52YWwpOjE7YnJlYWs7Y2FzZSI8b3V0bGluZS8+Ijp0Lm91dGxpbmU9MTticmVhaztjYXNlIjxzaGFkb3ciOnQuc2hhZG93PWMudmFsP1NlKGMudmFsKToxO2JyZWFrO2Nhc2UiPHNoYWRvdy8+Ijp0LnNoYWRvdz0xO2JyZWFrO2Nhc2UiPGNvbmRlbnNlIjp0LmNvbmRlbnNlPWMudmFsP1NlKGMudmFsKToxO2JyZWFrO2Nhc2UiPGNvbmRlbnNlLz4iOnQuY29uZGVuc2U9MTticmVhaztjYXNlIjxleHRlbmQiOnQuZXh0ZW5kPWMudmFsP1NlKGMudmFsKToxO2JyZWFrO2Nhc2UiPGV4dGVuZC8+Ijp0LmV4dGVuZD0xO2JyZWFrO2Nhc2UiPHN6IjpjLnZhbCYmKHQuc3o9K2MudmFsKTticmVhaztjYXNlIjxzei8+IjpjYXNlIjwvc3o+IjpicmVhaztjYXNlIjx2ZXJ0QWxpZ24iOmMudmFsJiYodC52ZXJ0QWxpZ249Yy52YWwpO2JyZWFrO2Nhc2UiPHZlcnRBbGlnbi8+IjpjYXNlIjwvdmVydEFsaWduPiI6YnJlYWs7Y2FzZSI8ZmFtaWx5IjpjLnZhbCYmKHQuZmFtaWx5PXBhcnNlSW50KGMudmFsLDEwKSk7YnJlYWs7Y2FzZSI8ZmFtaWx5Lz4iOmNhc2UiPC9mYW1pbHk+IjpicmVhaztjYXNlIjxzY2hlbWUiOmMudmFsJiYodC5zY2hlbWU9Yy52YWwpO2JyZWFrO2Nhc2UiPHNjaGVtZS8+IjpjYXNlIjwvc2NoZW1lPiI6YnJlYWs7Y2FzZSI8Y2hhcnNldCI6aWYoYy52YWw9PSIxIilicmVhaztjLmNvZGVwYWdlPVN0W3BhcnNlSW50KGMudmFsLDEwKV07YnJlYWs7Y2FzZSI8Y29sb3IiOmlmKHQuY29sb3J8fCh0LmNvbG9yPXt9KSxjLmF1dG8mJih0LmNvbG9yLmF1dG89U2UoYy5hdXRvKSksYy5yZ2IpdC5jb2xvci5yZ2I9Yy5yZ2Iuc2xpY2UoLTYpO2Vsc2UgaWYoYy5pbmRleGVkKXt0LmNvbG9yLmluZGV4PXBhcnNlSW50KGMuaW5kZXhlZCwxMCk7dmFyIGY9c2FbdC5jb2xvci5pbmRleF07dC5jb2xvci5pbmRleD09ODEmJihmPXNhWzFdKSxmfHwoZj1zYVsxXSksdC5jb2xvci5yZ2I9ZlswXS50b1N0cmluZygxNikrZlsxXS50b1N0cmluZygxNikrZlsyXS50b1N0cmluZygxNil9ZWxzZSBjLnRoZW1lJiYodC5jb2xvci50aGVtZT1wYXJzZUludChjLnRoZW1lLDEwKSxjLnRpbnQmJih0LmNvbG9yLnRpbnQ9cGFyc2VGbG9hdChjLnRpbnQpKSxjLnRoZW1lJiZyLnRoZW1lRWxlbWVudHMmJnIudGhlbWVFbGVtZW50cy5jbHJTY2hlbWUmJih0LmNvbG9yLnJnYj1wdChyLnRoZW1lRWxlbWVudHMuY2xyU2NoZW1lW3QuY29sb3IudGhlbWVdLnJnYix0LmNvbG9yLnRpbnR8fDApKSk7YnJlYWs7Y2FzZSI8Y29sb3IvPiI6Y2FzZSI8L2NvbG9yPiI6YnJlYWs7Y2FzZSI8QWx0ZXJuYXRlQ29udGVudCI6cz0hMDticmVhaztjYXNlIjwvQWx0ZXJuYXRlQ29udGVudD4iOnM9ITE7YnJlYWs7Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6YnJlYWs7Y2FzZSI8ZXh0IjpzPSEwO2JyZWFrO2Nhc2UiPC9leHQ+IjpzPSExO2JyZWFrO2RlZmF1bHQ6aWYobiYmbi5XVEYmJiFzKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIrY1swXSsiIGluIGZvbnRzIil9fSl9ZnVuY3Rpb24gbWwoZSxhLHIpe2EuTnVtYmVyRm10PVtdO2Zvcih2YXIgbj1TcihkZSksdD0wO3Q8bi5sZW5ndGg7Kyt0KWEuTnVtYmVyRm10W25bdF1dPWRlW25bdF1dO3ZhciBzPWVbMF0ubWF0Y2goS2UpO2lmKHMpZm9yKHQ9MDt0PHMubGVuZ3RoOysrdCl7dmFyIGk9b2Uoc1t0XSk7c3dpdGNoKENyKGlbMF0pKXtjYXNlIjxudW1GbXRzIjpjYXNlIjwvbnVtRm10cz4iOmNhc2UiPG51bUZtdHMvPiI6Y2FzZSI8bnVtRm10cz4iOmJyZWFrO2Nhc2UiPG51bUZtdCI6e3ZhciBjPUVlKEFlKGkuZm9ybWF0Q29kZSkpLGY9cGFyc2VJbnQoaS5udW1GbXRJZCwxMCk7aWYoYS5OdW1iZXJGbXRbZl09YyxmPjApe2lmKGY+MzkyKXtmb3IoZj0zOTI7Zj42MCYmYS5OdW1iZXJGbXRbZl0hPW51bGw7LS1mKTthLk51bWJlckZtdFtmXT1jfWVhKGMsZil9fWJyZWFrO2Nhc2UiPC9udW1GbXQ+IjpicmVhaztkZWZhdWx0OmlmKHIuV1RGKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIraVswXSsiIGluIG51bUZtdHMiKX19fXZhciBfdD1bIm51bUZtdElkIiwiZmlsbElkIiwiZm9udElkIiwiYm9yZGVySWQiLCJ4ZklkIl0sRXQ9WyJhcHBseUFsaWdubWVudCIsImFwcGx5Qm9yZGVyIiwiYXBwbHlGaWxsIiwiYXBwbHlGb250IiwiYXBwbHlOdW1iZXJGb3JtYXQiLCJhcHBseVByb3RlY3Rpb24iLCJwaXZvdEJ1dHRvbiIsInF1b3RlUHJlZml4Il07ZnVuY3Rpb24gX2woZSxhLHIpe2EuQ2VsbFhmPVtdO3ZhciBuLHQ9ITE7KGVbMF0ubWF0Y2goS2UpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihzKXt2YXIgaT1vZShzKSxjPTA7c3dpdGNoKENyKGlbMF0pKXtjYXNlIjxjZWxsWGZzIjpjYXNlIjxjZWxsWGZzPiI6Y2FzZSI8Y2VsbFhmcy8+IjpjYXNlIjwvY2VsbFhmcz4iOmJyZWFrO2Nhc2UiPHhmIjpjYXNlIjx4Zi8+Ijpmb3Iobj1pLGRlbGV0ZSBuWzBdLGM9MDtjPF90Lmxlbmd0aDsrK2MpbltfdFtjXV0mJihuW190W2NdXT1wYXJzZUludChuW190W2NdXSwxMCkpO2ZvcihjPTA7YzxFdC5sZW5ndGg7KytjKW5bRXRbY11dJiYobltFdFtjXV09U2UobltFdFtjXV0pKTtpZihhLk51bWJlckZtdCYmbi5udW1GbXRJZD4zOTIpe2ZvcihjPTM5MjtjPjYwOy0tYylpZihhLk51bWJlckZtdFtuLm51bUZtdElkXT09YS5OdW1iZXJGbXRbY10pe24ubnVtRm10SWQ9YzticmVha319YS5DZWxsWGYucHVzaChuKTticmVhaztjYXNlIjwveGY+IjpicmVhaztjYXNlIjxhbGlnbm1lbnQiOmNhc2UiPGFsaWdubWVudC8+Ijp2YXIgZj17fTtpLnZlcnRpY2FsJiYoZi52ZXJ0aWNhbD1pLnZlcnRpY2FsKSxpLmhvcml6b250YWwmJihmLmhvcml6b250YWw9aS5ob3Jpem9udGFsKSxpLnRleHRSb3RhdGlvbiE9bnVsbCYmKGYudGV4dFJvdGF0aW9uPWkudGV4dFJvdGF0aW9uKSxpLmluZGVudCYmKGYuaW5kZW50PWkuaW5kZW50KSxpLndyYXBUZXh0JiYoZi53cmFwVGV4dD1TZShpLndyYXBUZXh0KSksbi5hbGlnbm1lbnQ9ZjticmVhaztjYXNlIjwvYWxpZ25tZW50PiI6YnJlYWs7Y2FzZSI8cHJvdGVjdGlvbiI6YnJlYWs7Y2FzZSI8L3Byb3RlY3Rpb24+IjpjYXNlIjxwcm90ZWN0aW9uLz4iOmJyZWFrO2Nhc2UiPEFsdGVybmF0ZUNvbnRlbnQiOnQ9ITA7YnJlYWs7Y2FzZSI8L0FsdGVybmF0ZUNvbnRlbnQ+Ijp0PSExO2JyZWFrO2Nhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4dExzdD4iOmJyZWFrO2Nhc2UiPGV4dCI6dD0hMDticmVhaztjYXNlIjwvZXh0PiI6dD0hMTticmVhaztkZWZhdWx0OmlmKHImJnIuV1RGJiYhdCl0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK2lbMF0rIiBpbiBjZWxsWGZzIil9fSl9dmFyIEVsPWZ1bmN0aW9uKCl7dmFyIGE9LzwoPzpcdys6KT9udW1GbXRzKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP251bUZtdHM+LyxyPS88KD86XHcrOik/Y2VsbFhmcyhbXj5dKik+W1xTXHNdKj88XC8oPzpcdys6KT9jZWxsWGZzPi8sbj0vPCg/Olx3KzopP2ZpbGxzKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP2ZpbGxzPi8sdD0vPCg/Olx3KzopP2ZvbnRzKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP2ZvbnRzPi8scz0vPCg/Olx3KzopP2JvcmRlcnMoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/Ym9yZGVycz4vO3JldHVybiBmdW5jdGlvbihjLGYsbyl7dmFyIGw9e307aWYoIWMpcmV0dXJuIGw7Yz1jLnJlcGxhY2UoLzwhLS0oW1xzXFNdKj8pLS0+L21nLCIiKS5yZXBsYWNlKC88IURPQ1RZUEVbXlxbXSpcW1teXF1dKlxdPi9nbSwiIik7dmFyIGg7cmV0dXJuKGg9Yy5tYXRjaChhKSkmJm1sKGgsbCxvKSwoaD1jLm1hdGNoKHQpKSYmZ2woaCxsLGYsbyksKGg9Yy5tYXRjaChuKSkmJnBsKGgsbCxmLG8pLChoPWMubWF0Y2gocykpJiZ2bChoLGwsZixvKSwoaD1jLm1hdGNoKHIpKSYmX2woaCxsLG8pLGx9fSgpO2Z1bmN0aW9uIFRsKGUsYSl7dmFyIHI9ZS5yZWFkX3NoaWZ0KDIpLG49amUoZSk7cmV0dXJuW3Isbl19ZnVuY3Rpb24ga2woZSxhLHIpe3ZhciBuPXt9O24uc3o9ZS5yZWFkX3NoaWZ0KDIpLzIwO3ZhciB0PU9jKGUpO3QuZkl0YWxpYyYmKG4uaXRhbGljPTEpLHQuZkNvbmRlbnNlJiYobi5jb25kZW5zZT0xKSx0LmZFeHRlbmQmJihuLmV4dGVuZD0xKSx0LmZTaGFkb3cmJihuLnNoYWRvdz0xKSx0LmZPdXRsaW5lJiYobi5vdXRsaW5lPTEpLHQuZlN0cmlrZW91dCYmKG4uc3RyaWtlPTEpO3ZhciBzPWUucmVhZF9zaGlmdCgyKTtzd2l0Y2gocz09PTcwMCYmKG4uYm9sZD0xKSxlLnJlYWRfc2hpZnQoMikpe2Nhc2UgMTpuLnZlcnRBbGlnbj0ic3VwZXJzY3JpcHQiO2JyZWFrO2Nhc2UgMjpuLnZlcnRBbGlnbj0ic3Vic2NyaXB0IjticmVha312YXIgaT1lLnJlYWRfc2hpZnQoMSk7aSE9MCYmKG4udW5kZXJsaW5lPWkpO3ZhciBjPWUucmVhZF9zaGlmdCgxKTtjPjAmJihuLmZhbWlseT1jKTt2YXIgZj1lLnJlYWRfc2hpZnQoMSk7c3dpdGNoKGY+MCYmKG4uY2hhcnNldD1mKSxlLmwrKyxuLmNvbG9yPURjKGUpLGUucmVhZF9zaGlmdCgxKSl7Y2FzZSAxOm4uc2NoZW1lPSJtYWpvciI7YnJlYWs7Y2FzZSAyOm4uc2NoZW1lPSJtaW5vciI7YnJlYWt9cmV0dXJuIG4ubmFtZT1qZShlKSxufXZhciB3bD1ZZTtmdW5jdGlvbiBBbChlLGEpe3ZhciByPWUubCthLG49ZS5yZWFkX3NoaWZ0KDIpLHQ9ZS5yZWFkX3NoaWZ0KDIpO3JldHVybiBlLmw9cix7aXhmZTpuLG51bUZtdElkOnR9fXZhciBGbD1ZZTtmdW5jdGlvbiBTbChlLGEscil7dmFyIG49e307bi5OdW1iZXJGbXQ9W107Zm9yKHZhciB0IGluIGRlKW4uTnVtYmVyRm10W3RdPWRlW3RdO24uQ2VsbFhmPVtdLG4uRm9udHM9W107dmFyIHM9W10saT0hMTtyZXR1cm4gUHIoZSxmdW5jdGlvbihmLG8sbCl7c3dpdGNoKGwpe2Nhc2UgNDQ6bi5OdW1iZXJGbXRbZlswXV09ZlsxXSxlYShmWzFdLGZbMF0pO2JyZWFrO2Nhc2UgNDM6bi5Gb250cy5wdXNoKGYpLGYuY29sb3IudGhlbWUhPW51bGwmJmEmJmEudGhlbWVFbGVtZW50cyYmYS50aGVtZUVsZW1lbnRzLmNsclNjaGVtZSYmKGYuY29sb3IucmdiPXB0KGEudGhlbWVFbGVtZW50cy5jbHJTY2hlbWVbZi5jb2xvci50aGVtZV0ucmdiLGYuY29sb3IudGludHx8MCkpO2JyZWFrO2Nhc2UgMTAyNTpicmVhaztjYXNlIDQ1OmJyZWFrO2Nhc2UgNDY6YnJlYWs7Y2FzZSA0NzpzW3MubGVuZ3RoLTFdPT02MTcmJm4uQ2VsbFhmLnB1c2goZik7YnJlYWs7Y2FzZSA0ODpjYXNlIDUwNzpjYXNlIDU3MjpjYXNlIDQ3NTpicmVhaztjYXNlIDExNzE6Y2FzZSAyMTAyOmNhc2UgMTEzMDpjYXNlIDUxMjpjYXNlIDIwOTU6Y2FzZSAzMDcyOmJyZWFrO2Nhc2UgMzU6aT0hMDticmVhaztjYXNlIDM2Omk9ITE7YnJlYWs7Y2FzZSAzNzpzLnB1c2gobCksaT0hMDticmVhaztjYXNlIDM4OnMucG9wKCksaT0hMTticmVhaztkZWZhdWx0OmlmKG8uVD4wKXMucHVzaChsKTtlbHNlIGlmKG8uVDwwKXMucG9wKCk7ZWxzZSBpZighaXx8ci5XVEYmJnNbcy5sZW5ndGgtMV0hPTM3KXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCByZWNvcmQgMHgiK2wudG9TdHJpbmcoMTYpKX19KSxufXZhciBDbD1bIjwvYTpsdDE+IiwiPC9hOmRrMT4iLCI8L2E6bHQyPiIsIjwvYTpkazI+IiwiPC9hOmFjY2VudDE+IiwiPC9hOmFjY2VudDI+IiwiPC9hOmFjY2VudDM+IiwiPC9hOmFjY2VudDQ+IiwiPC9hOmFjY2VudDU+IiwiPC9hOmFjY2VudDY+IiwiPC9hOmhsaW5rPiIsIjwvYTpmb2xIbGluaz4iXTtmdW5jdGlvbiB5bChlLGEscil7YS50aGVtZUVsZW1lbnRzLmNsclNjaGVtZT1bXTt2YXIgbj17fTsoZVswXS5tYXRjaChLZSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBzPW9lKHQpO3N3aXRjaChzWzBdKXtjYXNlIjxhOmNsclNjaGVtZSI6Y2FzZSI8L2E6Y2xyU2NoZW1lPiI6YnJlYWs7Y2FzZSI8YTpzcmdiQ2xyIjpuLnJnYj1zLnZhbDticmVhaztjYXNlIjxhOnN5c0NsciI6bi5yZ2I9cy5sYXN0Q2xyO2JyZWFrO2Nhc2UiPGE6ZGsxPiI6Y2FzZSI8L2E6ZGsxPiI6Y2FzZSI8YTpsdDE+IjpjYXNlIjwvYTpsdDE+IjpjYXNlIjxhOmRrMj4iOmNhc2UiPC9hOmRrMj4iOmNhc2UiPGE6bHQyPiI6Y2FzZSI8L2E6bHQyPiI6Y2FzZSI8YTphY2NlbnQxPiI6Y2FzZSI8L2E6YWNjZW50MT4iOmNhc2UiPGE6YWNjZW50Mj4iOmNhc2UiPC9hOmFjY2VudDI+IjpjYXNlIjxhOmFjY2VudDM+IjpjYXNlIjwvYTphY2NlbnQzPiI6Y2FzZSI8YTphY2NlbnQ0PiI6Y2FzZSI8L2E6YWNjZW50ND4iOmNhc2UiPGE6YWNjZW50NT4iOmNhc2UiPC9hOmFjY2VudDU+IjpjYXNlIjxhOmFjY2VudDY+IjpjYXNlIjwvYTphY2NlbnQ2PiI6Y2FzZSI8YTpobGluaz4iOmNhc2UiPC9hOmhsaW5rPiI6Y2FzZSI8YTpmb2xIbGluaz4iOmNhc2UiPC9hOmZvbEhsaW5rPiI6c1swXS5jaGFyQXQoMSk9PT0iLyI/KGEudGhlbWVFbGVtZW50cy5jbHJTY2hlbWVbQ2wuaW5kZXhPZihzWzBdKV09bixuPXt9KTpuLm5hbWU9c1swXS5zbGljZSgzLHNbMF0ubGVuZ3RoLTEpO2JyZWFrO2RlZmF1bHQ6aWYociYmci5XVEYpdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgIitzWzBdKyIgaW4gY2xyU2NoZW1lIil9fSl9ZnVuY3Rpb24gRGwoKXt9ZnVuY3Rpb24gT2woKXt9dmFyIFJsPS88YTpjbHJTY2hlbWUoW14+XSopPltcc1xTXSo8XC9hOmNsclNjaGVtZT4vLElsPS88YTpmb250U2NoZW1lKFtePl0qKT5bXHNcU10qPFwvYTpmb250U2NoZW1lPi8sTmw9LzxhOmZtdFNjaGVtZShbXj5dKik+W1xzXFNdKjxcL2E6Zm10U2NoZW1lPi87ZnVuY3Rpb24gUGwoZSxhLHIpe2EudGhlbWVFbGVtZW50cz17fTt2YXIgbjtbWyJjbHJTY2hlbWUiLFJsLHlsXSxbImZvbnRTY2hlbWUiLElsLERsXSxbImZtdFNjaGVtZSIsTmwsT2xdXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKCEobj1lLm1hdGNoKHRbMV0pKSl0aHJvdyBuZXcgRXJyb3IodFswXSsiIG5vdCBmb3VuZCBpbiB0aGVtZUVsZW1lbnRzIik7dFsyXShuLGEscil9KX12YXIgTGw9LzxhOnRoZW1lRWxlbWVudHMoW14+XSopPltcc1xTXSo8XC9hOnRoZW1lRWxlbWVudHM+LztmdW5jdGlvbiBfcyhlLGEpeyghZXx8ZS5sZW5ndGg9PT0wKSYmKGU9TWwoKSk7dmFyIHIsbj17fTtpZighKHI9ZS5tYXRjaChMbCkpKXRocm93IG5ldyBFcnJvcigidGhlbWVFbGVtZW50cyBub3QgZm91bmQgaW4gdGhlbWUiKTtyZXR1cm4gUGwoclswXSxuLGEpLG4ucmF3PWUsbn1mdW5jdGlvbiBNbChlLGEpe3ZhciByPVt0bl07cmV0dXJuIHJbci5sZW5ndGhdPSc8YTp0aGVtZSB4bWxuczphPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvZHJhd2luZ21sLzIwMDYvbWFpbiIgbmFtZT0iT2ZmaWNlIFRoZW1lIj4nLHJbci5sZW5ndGhdPSI8YTp0aGVtZUVsZW1lbnRzPiIscltyLmxlbmd0aF09JzxhOmNsclNjaGVtZSBuYW1lPSJPZmZpY2UiPicscltyLmxlbmd0aF09JzxhOmRrMT48YTpzeXNDbHIgdmFsPSJ3aW5kb3dUZXh0IiBsYXN0Q2xyPSIwMDAwMDAiLz48L2E6ZGsxPicscltyLmxlbmd0aF09JzxhOmx0MT48YTpzeXNDbHIgdmFsPSJ3aW5kb3ciIGxhc3RDbHI9IkZGRkZGRiIvPjwvYTpsdDE+JyxyW3IubGVuZ3RoXT0nPGE6ZGsyPjxhOnNyZ2JDbHIgdmFsPSIxRjQ5N0QiLz48L2E6ZGsyPicscltyLmxlbmd0aF09JzxhOmx0Mj48YTpzcmdiQ2xyIHZhbD0iRUVFQ0UxIi8+PC9hOmx0Mj4nLHJbci5sZW5ndGhdPSc8YTphY2NlbnQxPjxhOnNyZ2JDbHIgdmFsPSI0RjgxQkQiLz48L2E6YWNjZW50MT4nLHJbci5sZW5ndGhdPSc8YTphY2NlbnQyPjxhOnNyZ2JDbHIgdmFsPSJDMDUwNEQiLz48L2E6YWNjZW50Mj4nLHJbci5sZW5ndGhdPSc8YTphY2NlbnQzPjxhOnNyZ2JDbHIgdmFsPSI5QkJCNTkiLz48L2E6YWNjZW50Mz4nLHJbci5sZW5ndGhdPSc8YTphY2NlbnQ0PjxhOnNyZ2JDbHIgdmFsPSI4MDY0QTIiLz48L2E6YWNjZW50ND4nLHJbci5sZW5ndGhdPSc8YTphY2NlbnQ1PjxhOnNyZ2JDbHIgdmFsPSI0QkFDQzYiLz48L2E6YWNjZW50NT4nLHJbci5sZW5ndGhdPSc8YTphY2NlbnQ2PjxhOnNyZ2JDbHIgdmFsPSJGNzk2NDYiLz48L2E6YWNjZW50Nj4nLHJbci5sZW5ndGhdPSc8YTpobGluaz48YTpzcmdiQ2xyIHZhbD0iMDAwMEZGIi8+PC9hOmhsaW5rPicscltyLmxlbmd0aF09JzxhOmZvbEhsaW5rPjxhOnNyZ2JDbHIgdmFsPSI4MDAwODAiLz48L2E6Zm9sSGxpbms+JyxyW3IubGVuZ3RoXT0iPC9hOmNsclNjaGVtZT4iLHJbci5sZW5ndGhdPSc8YTpmb250U2NoZW1lIG5hbWU9Ik9mZmljZSI+JyxyW3IubGVuZ3RoXT0iPGE6bWFqb3JGb250PiIscltyLmxlbmd0aF09JzxhOmxhdGluIHR5cGVmYWNlPSJDYW1icmlhIi8+JyxyW3IubGVuZ3RoXT0nPGE6ZWEgdHlwZWZhY2U9IiIvPicscltyLmxlbmd0aF09JzxhOmNzIHR5cGVmYWNlPSIiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSnBhbiIgdHlwZWZhY2U9Iu+8re+8syDvvLDjgrTjgrfjg4Pjgq8iLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSGFuZyIgdHlwZWZhY2U9IuunkeydgCDqs6DrlJUiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSGFucyIgdHlwZWZhY2U9IuWui+S9kyIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJIYW50IiB0eXBlZmFjZT0i5paw57Sw5piO6auUIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkFyYWIiIHR5cGVmYWNlPSJUaW1lcyBOZXcgUm9tYW4iLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSGViciIgdHlwZWZhY2U9IlRpbWVzIE5ldyBSb21hbiIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUaGFpIiB0eXBlZmFjZT0iVGFob21hIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkV0aGkiIHR5cGVmYWNlPSJOeWFsYSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJCZW5nIiB0eXBlZmFjZT0iVnJpbmRhIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ikd1anIiIHR5cGVmYWNlPSJTaHJ1dGkiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iS2htciIgdHlwZWZhY2U9Ik1vb2xCb3JhbiIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJLbmRhIiB0eXBlZmFjZT0iVHVuZ2EiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iR3VydSIgdHlwZWZhY2U9IlJhYXZpIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkNhbnMiIHR5cGVmYWNlPSJFdXBoZW1pYSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJDaGVyIiB0eXBlZmFjZT0iUGxhbnRhZ2VuZXQgQ2hlcm9rZWUiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iWWlpaSIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBZaSBCYWl0aSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUaWJ0IiB0eXBlZmFjZT0iTWljcm9zb2Z0IEhpbWFsYXlhIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlRoYWEiIHR5cGVmYWNlPSJNViBCb2xpIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkRldmEiIHR5cGVmYWNlPSJNYW5nYWwiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGVsdSIgdHlwZWZhY2U9IkdhdXRhbWkiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGFtbCIgdHlwZWZhY2U9IkxhdGhhIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlN5cmMiIHR5cGVmYWNlPSJFc3RyYW5nZWxvIEVkZXNzYSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJPcnlhIiB0eXBlZmFjZT0iS2FsaW5nYSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJNbHltIiB0eXBlZmFjZT0iS2FydGlrYSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJMYW9vIiB0eXBlZmFjZT0iRG9rQ2hhbXBhIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlNpbmgiIHR5cGVmYWNlPSJJc2tvb2xhIFBvdGEiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iTW9uZyIgdHlwZWZhY2U9Ik1vbmdvbGlhbiBCYWl0aSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJWaWV0IiB0eXBlZmFjZT0iVGltZXMgTmV3IFJvbWFuIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlVpZ2giIHR5cGVmYWNlPSJNaWNyb3NvZnQgVWlnaHVyIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ikdlb3IiIHR5cGVmYWNlPSJTeWxmYWVuIi8+JyxyW3IubGVuZ3RoXT0iPC9hOm1ham9yRm9udD4iLHJbci5sZW5ndGhdPSI8YTptaW5vckZvbnQ+IixyW3IubGVuZ3RoXT0nPGE6bGF0aW4gdHlwZWZhY2U9IkNhbGlicmkiLz4nLHJbci5sZW5ndGhdPSc8YTplYSB0eXBlZmFjZT0iIi8+JyxyW3IubGVuZ3RoXT0nPGE6Y3MgdHlwZWZhY2U9IiIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJKcGFuIiB0eXBlZmFjZT0i77yt77yzIO+8sOOCtOOCt+ODg+OCryIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJIYW5nIiB0eXBlZmFjZT0i66eR7J2AIOqzoOuUlSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJIYW5zIiB0eXBlZmFjZT0i5a6L5L2TIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkhhbnQiIHR5cGVmYWNlPSLmlrDntLDmmI7pq5QiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iQXJhYiIgdHlwZWZhY2U9IkFyaWFsIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkhlYnIiIHR5cGVmYWNlPSJBcmlhbCIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUaGFpIiB0eXBlZmFjZT0iVGFob21hIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkV0aGkiIHR5cGVmYWNlPSJOeWFsYSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJCZW5nIiB0eXBlZmFjZT0iVnJpbmRhIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ikd1anIiIHR5cGVmYWNlPSJTaHJ1dGkiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iS2htciIgdHlwZWZhY2U9IkRhdW5QZW5oIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IktuZGEiIHR5cGVmYWNlPSJUdW5nYSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJHdXJ1IiB0eXBlZmFjZT0iUmFhdmkiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iQ2FucyIgdHlwZWZhY2U9IkV1cGhlbWlhIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkNoZXIiIHR5cGVmYWNlPSJQbGFudGFnZW5ldCBDaGVyb2tlZSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJZaWlpIiB0eXBlZmFjZT0iTWljcm9zb2Z0IFlpIEJhaXRpIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlRpYnQiIHR5cGVmYWNlPSJNaWNyb3NvZnQgSGltYWxheWEiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGhhYSIgdHlwZWZhY2U9Ik1WIEJvbGkiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iRGV2YSIgdHlwZWZhY2U9Ik1hbmdhbCIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUZWx1IiB0eXBlZmFjZT0iR2F1dGFtaSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUYW1sIiB0eXBlZmFjZT0iTGF0aGEiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iU3lyYyIgdHlwZWZhY2U9IkVzdHJhbmdlbG8gRWRlc3NhIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ik9yeWEiIHR5cGVmYWNlPSJLYWxpbmdhIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ik1seW0iIHR5cGVmYWNlPSJLYXJ0aWthIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ikxhb28iIHR5cGVmYWNlPSJEb2tDaGFtcGEiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iU2luaCIgdHlwZWZhY2U9Iklza29vbGEgUG90YSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJNb25nIiB0eXBlZmFjZT0iTW9uZ29saWFuIEJhaXRpIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlZpZXQiIHR5cGVmYWNlPSJBcmlhbCIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJVaWdoIiB0eXBlZmFjZT0iTWljcm9zb2Z0IFVpZ2h1ciIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJHZW9yIiB0eXBlZmFjZT0iU3lsZmFlbiIvPicscltyLmxlbmd0aF09IjwvYTptaW5vckZvbnQ+IixyW3IubGVuZ3RoXT0iPC9hOmZvbnRTY2hlbWU+IixyW3IubGVuZ3RoXT0nPGE6Zm10U2NoZW1lIG5hbWU9Ik9mZmljZSI+JyxyW3IubGVuZ3RoXT0iPGE6ZmlsbFN0eWxlTHN0PiIscltyLmxlbmd0aF09JzxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPSJwaENsciIvPjwvYTpzb2xpZEZpbGw+JyxyW3IubGVuZ3RoXT0nPGE6Z3JhZEZpbGwgcm90V2l0aFNoYXBlPSIxIj4nLHJbci5sZW5ndGhdPSI8YTpnc0xzdD4iLHJbci5sZW5ndGhdPSc8YTpncyBwb3M9IjAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTp0aW50IHZhbD0iNTAwMDAiLz48YTpzYXRNb2QgdmFsPSIzMDAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLHJbci5sZW5ndGhdPSc8YTpncyBwb3M9IjM1MDAwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9IjM3MDAwIi8+PGE6c2F0TW9kIHZhbD0iMzAwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+JyxyW3IubGVuZ3RoXT0nPGE6Z3MgcG9zPSIxMDAwMDAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTp0aW50IHZhbD0iMTUwMDAiLz48YTpzYXRNb2QgdmFsPSIzNTAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLHJbci5sZW5ndGhdPSI8L2E6Z3NMc3Q+IixyW3IubGVuZ3RoXT0nPGE6bGluIGFuZz0iMTYyMDAwMDAiIHNjYWxlZD0iMSIvPicscltyLmxlbmd0aF09IjwvYTpncmFkRmlsbD4iLHJbci5sZW5ndGhdPSc8YTpncmFkRmlsbCByb3RXaXRoU2hhcGU9IjEiPicscltyLmxlbmd0aF09IjxhOmdzTHN0PiIscltyLmxlbmd0aF09JzxhOmdzIHBvcz0iMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSIxMDAwMDAiLz48YTpzaGFkZSB2YWw9IjEwMDAwMCIvPjxhOnNhdE1vZCB2YWw9IjEzMDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPicscltyLmxlbmd0aF09JzxhOmdzIHBvcz0iMTAwMDAwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9IjUwMDAwIi8+PGE6c2hhZGUgdmFsPSIxMDAwMDAiLz48YTpzYXRNb2QgdmFsPSIzNTAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLHJbci5sZW5ndGhdPSI8L2E6Z3NMc3Q+IixyW3IubGVuZ3RoXT0nPGE6bGluIGFuZz0iMTYyMDAwMDAiIHNjYWxlZD0iMCIvPicscltyLmxlbmd0aF09IjwvYTpncmFkRmlsbD4iLHJbci5sZW5ndGhdPSI8L2E6ZmlsbFN0eWxlTHN0PiIscltyLmxlbmd0aF09IjxhOmxuU3R5bGVMc3Q+IixyW3IubGVuZ3RoXT0nPGE6bG4gdz0iOTUyNSIgY2FwPSJmbGF0IiBjbXBkPSJzbmciIGFsZ249ImN0ciI+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTpzaGFkZSB2YWw9Ijk1MDAwIi8+PGE6c2F0TW9kIHZhbD0iMTA1MDAwIi8+PC9hOnNjaGVtZUNscj48L2E6c29saWRGaWxsPjxhOnByc3REYXNoIHZhbD0ic29saWQiLz48L2E6bG4+JyxyW3IubGVuZ3RoXT0nPGE6bG4gdz0iMjU0MDAiIGNhcD0iZmxhdCIgY21wZD0ic25nIiBhbGduPSJjdHIiPjxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPSJwaENsciIvPjwvYTpzb2xpZEZpbGw+PGE6cHJzdERhc2ggdmFsPSJzb2xpZCIvPjwvYTpsbj4nLHJbci5sZW5ndGhdPSc8YTpsbiB3PSIzODEwMCIgY2FwPSJmbGF0IiBjbXBkPSJzbmciIGFsZ249ImN0ciI+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIi8+PC9hOnNvbGlkRmlsbD48YTpwcnN0RGFzaCB2YWw9InNvbGlkIi8+PC9hOmxuPicscltyLmxlbmd0aF09IjwvYTpsblN0eWxlTHN0PiIscltyLmxlbmd0aF09IjxhOmVmZmVjdFN0eWxlTHN0PiIscltyLmxlbmd0aF09IjxhOmVmZmVjdFN0eWxlPiIscltyLmxlbmd0aF09IjxhOmVmZmVjdExzdD4iLHJbci5sZW5ndGhdPSc8YTpvdXRlclNoZHcgYmx1clJhZD0iNDAwMDAiIGRpc3Q9IjIwMDAwIiBkaXI9IjU0MDAwMDAiIHJvdFdpdGhTaGFwZT0iMCI+PGE6c3JnYkNsciB2YWw9IjAwMDAwMCI+PGE6YWxwaGEgdmFsPSIzODAwMCIvPjwvYTpzcmdiQ2xyPjwvYTpvdXRlclNoZHc+JyxyW3IubGVuZ3RoXT0iPC9hOmVmZmVjdExzdD4iLHJbci5sZW5ndGhdPSI8L2E6ZWZmZWN0U3R5bGU+IixyW3IubGVuZ3RoXT0iPGE6ZWZmZWN0U3R5bGU+IixyW3IubGVuZ3RoXT0iPGE6ZWZmZWN0THN0PiIscltyLmxlbmd0aF09JzxhOm91dGVyU2hkdyBibHVyUmFkPSI0MDAwMCIgZGlzdD0iMjMwMDAiIGRpcj0iNTQwMDAwMCIgcm90V2l0aFNoYXBlPSIwIj48YTpzcmdiQ2xyIHZhbD0iMDAwMDAwIj48YTphbHBoYSB2YWw9IjM1MDAwIi8+PC9hOnNyZ2JDbHI+PC9hOm91dGVyU2hkdz4nLHJbci5sZW5ndGhdPSI8L2E6ZWZmZWN0THN0PiIscltyLmxlbmd0aF09IjwvYTplZmZlY3RTdHlsZT4iLHJbci5sZW5ndGhdPSI8YTplZmZlY3RTdHlsZT4iLHJbci5sZW5ndGhdPSI8YTplZmZlY3RMc3Q+IixyW3IubGVuZ3RoXT0nPGE6b3V0ZXJTaGR3IGJsdXJSYWQ9IjQwMDAwIiBkaXN0PSIyMzAwMCIgZGlyPSI1NDAwMDAwIiByb3RXaXRoU2hhcGU9IjAiPjxhOnNyZ2JDbHIgdmFsPSIwMDAwMDAiPjxhOmFscGhhIHZhbD0iMzUwMDAiLz48L2E6c3JnYkNscj48L2E6b3V0ZXJTaGR3PicscltyLmxlbmd0aF09IjwvYTplZmZlY3RMc3Q+IixyW3IubGVuZ3RoXT0nPGE6c2NlbmUzZD48YTpjYW1lcmEgcHJzdD0ib3J0aG9ncmFwaGljRnJvbnQiPjxhOnJvdCBsYXQ9IjAiIGxvbj0iMCIgcmV2PSIwIi8+PC9hOmNhbWVyYT48YTpsaWdodFJpZyByaWc9InRocmVlUHQiIGRpcj0idCI+PGE6cm90IGxhdD0iMCIgbG9uPSIwIiByZXY9IjEyMDAwMDAiLz48L2E6bGlnaHRSaWc+PC9hOnNjZW5lM2Q+JyxyW3IubGVuZ3RoXT0nPGE6c3AzZD48YTpiZXZlbFQgdz0iNjM1MDAiIGg9IjI1NDAwIi8+PC9hOnNwM2Q+JyxyW3IubGVuZ3RoXT0iPC9hOmVmZmVjdFN0eWxlPiIscltyLmxlbmd0aF09IjwvYTplZmZlY3RTdHlsZUxzdD4iLHJbci5sZW5ndGhdPSI8YTpiZ0ZpbGxTdHlsZUxzdD4iLHJbci5sZW5ndGhdPSc8YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiLz48L2E6c29saWRGaWxsPicscltyLmxlbmd0aF09JzxhOmdyYWRGaWxsIHJvdFdpdGhTaGFwZT0iMSI+JyxyW3IubGVuZ3RoXT0iPGE6Z3NMc3Q+IixyW3IubGVuZ3RoXT0nPGE6Z3MgcG9zPSIwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9IjQwMDAwIi8+PGE6c2F0TW9kIHZhbD0iMzUwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+JyxyW3IubGVuZ3RoXT0nPGE6Z3MgcG9zPSI0MDAwMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSI0NTAwMCIvPjxhOnNoYWRlIHZhbD0iOTkwMDAiLz48YTpzYXRNb2QgdmFsPSIzNTAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLHJbci5sZW5ndGhdPSc8YTpncyBwb3M9IjEwMDAwMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnNoYWRlIHZhbD0iMjAwMDAiLz48YTpzYXRNb2QgdmFsPSIyNTUwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLHJbci5sZW5ndGhdPSI8L2E6Z3NMc3Q+IixyW3IubGVuZ3RoXT0nPGE6cGF0aCBwYXRoPSJjaXJjbGUiPjxhOmZpbGxUb1JlY3QgbD0iNTAwMDAiIHQ9Ii04MDAwMCIgcj0iNTAwMDAiIGI9IjE4MDAwMCIvPjwvYTpwYXRoPicscltyLmxlbmd0aF09IjwvYTpncmFkRmlsbD4iLHJbci5sZW5ndGhdPSc8YTpncmFkRmlsbCByb3RXaXRoU2hhcGU9IjEiPicscltyLmxlbmd0aF09IjxhOmdzTHN0PiIscltyLmxlbmd0aF09JzxhOmdzIHBvcz0iMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSI4MDAwMCIvPjxhOnNhdE1vZCB2YWw9IjMwMDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPicscltyLmxlbmd0aF09JzxhOmdzIHBvcz0iMTAwMDAwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6c2hhZGUgdmFsPSIzMDAwMCIvPjxhOnNhdE1vZCB2YWw9IjIwMDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPicscltyLmxlbmd0aF09IjwvYTpnc0xzdD4iLHJbci5sZW5ndGhdPSc8YTpwYXRoIHBhdGg9ImNpcmNsZSI+PGE6ZmlsbFRvUmVjdCBsPSI1MDAwMCIgdD0iNTAwMDAiIHI9IjUwMDAwIiBiPSI1MDAwMCIvPjwvYTpwYXRoPicscltyLmxlbmd0aF09IjwvYTpncmFkRmlsbD4iLHJbci5sZW5ndGhdPSI8L2E6YmdGaWxsU3R5bGVMc3Q+IixyW3IubGVuZ3RoXT0iPC9hOmZtdFNjaGVtZT4iLHJbci5sZW5ndGhdPSI8L2E6dGhlbWVFbGVtZW50cz4iLHJbci5sZW5ndGhdPSI8YTpvYmplY3REZWZhdWx0cz4iLHJbci5sZW5ndGhdPSI8YTpzcERlZj4iLHJbci5sZW5ndGhdPSc8YTpzcFByLz48YTpib2R5UHIvPjxhOmxzdFN0eWxlLz48YTpzdHlsZT48YTpsblJlZiBpZHg9IjEiPjxhOnNjaGVtZUNsciB2YWw9ImFjY2VudDEiLz48L2E6bG5SZWY+PGE6ZmlsbFJlZiBpZHg9IjMiPjxhOnNjaGVtZUNsciB2YWw9ImFjY2VudDEiLz48L2E6ZmlsbFJlZj48YTplZmZlY3RSZWYgaWR4PSIyIj48YTpzY2hlbWVDbHIgdmFsPSJhY2NlbnQxIi8+PC9hOmVmZmVjdFJlZj48YTpmb250UmVmIGlkeD0ibWlub3IiPjxhOnNjaGVtZUNsciB2YWw9Imx0MSIvPjwvYTpmb250UmVmPjwvYTpzdHlsZT4nLHJbci5sZW5ndGhdPSI8L2E6c3BEZWY+IixyW3IubGVuZ3RoXT0iPGE6bG5EZWY+IixyW3IubGVuZ3RoXT0nPGE6c3BQci8+PGE6Ym9keVByLz48YTpsc3RTdHlsZS8+PGE6c3R5bGU+PGE6bG5SZWYgaWR4PSIyIj48YTpzY2hlbWVDbHIgdmFsPSJhY2NlbnQxIi8+PC9hOmxuUmVmPjxhOmZpbGxSZWYgaWR4PSIwIj48YTpzY2hlbWVDbHIgdmFsPSJhY2NlbnQxIi8+PC9hOmZpbGxSZWY+PGE6ZWZmZWN0UmVmIGlkeD0iMSI+PGE6c2NoZW1lQ2xyIHZhbD0iYWNjZW50MSIvPjwvYTplZmZlY3RSZWY+PGE6Zm9udFJlZiBpZHg9Im1pbm9yIj48YTpzY2hlbWVDbHIgdmFsPSJ0eDEiLz48L2E6Zm9udFJlZj48L2E6c3R5bGU+JyxyW3IubGVuZ3RoXT0iPC9hOmxuRGVmPiIscltyLmxlbmd0aF09IjwvYTpvYmplY3REZWZhdWx0cz4iLHJbci5sZW5ndGhdPSI8YTpleHRyYUNsclNjaGVtZUxzdC8+IixyW3IubGVuZ3RoXT0iPC9hOnRoZW1lPiIsci5qb2luKCIiKX1mdW5jdGlvbiBCbChlLGEscil7dmFyIG49ZS5sK2EsdD1lLnJlYWRfc2hpZnQoNCk7aWYodCE9PTEyNDIyNil7aWYoIXIuY2VsbFN0eWxlcyl7ZS5sPW47cmV0dXJufXZhciBzPWUuc2xpY2UoZS5sKTtlLmw9bjt2YXIgaTt0cnl7aT1hbihzLHt0eXBlOiJhcnJheSJ9KX1jYXRjaHtyZXR1cm59dmFyIGM9b3IoaSwidGhlbWUvdGhlbWUvdGhlbWUxLnhtbCIsITApO2lmKGMpcmV0dXJuIF9zKGMscil9fWZ1bmN0aW9uIGJsKGUpe3JldHVybiBlLnJlYWRfc2hpZnQoNCl9ZnVuY3Rpb24gVWwoZSl7dmFyIGE9e307c3dpdGNoKGEueGNsclR5cGU9ZS5yZWFkX3NoaWZ0KDIpLGEublRpbnRTaGFkZT1lLnJlYWRfc2hpZnQoMiksYS54Y2xyVHlwZSl7Y2FzZSAwOmUubCs9NDticmVhaztjYXNlIDE6YS54Y2xyVmFsdWU9SGwoZSw0KTticmVhaztjYXNlIDI6YS54Y2xyVmFsdWU9Wm4oZSk7YnJlYWs7Y2FzZSAzOmEueGNsclZhbHVlPWJsKGUpO2JyZWFrO2Nhc2UgNDplLmwrPTQ7YnJlYWt9cmV0dXJuIGUubCs9OCxhfWZ1bmN0aW9uIEhsKGUsYSl7cmV0dXJuIFllKGUsYSl9ZnVuY3Rpb24gVmwoZSxhKXtyZXR1cm4gWWUoZSxhKX1mdW5jdGlvbiBXbChlKXt2YXIgYT1lLnJlYWRfc2hpZnQoMikscj1lLnJlYWRfc2hpZnQoMiktNCxuPVthXTtzd2l0Y2goYSl7Y2FzZSA0OmNhc2UgNTpjYXNlIDc6Y2FzZSA4OmNhc2UgOTpjYXNlIDEwOmNhc2UgMTE6Y2FzZSAxMzpuWzFdPVVsKGUpO2JyZWFrO2Nhc2UgNjpuWzFdPVZsKGUscik7YnJlYWs7Y2FzZSAxNDpjYXNlIDE1Om5bMV09ZS5yZWFkX3NoaWZ0KHI9PT0xPzE6Mik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBFeHRQcm9wIHR5cGU6ICIrYSsiICIrcil9cmV0dXJuIG59ZnVuY3Rpb24gR2woZSxhKXt2YXIgcj1lLmwrYTtlLmwrPTI7dmFyIG49ZS5yZWFkX3NoaWZ0KDIpO2UubCs9Mjtmb3IodmFyIHQ9ZS5yZWFkX3NoaWZ0KDIpLHM9W107dC0tID4wOylzLnB1c2goV2woZSxyLWUubCkpO3JldHVybntpeGZlOm4sZXh0OnN9fWZ1bmN0aW9uIFhsKGUsYSl7YS5mb3JFYWNoKGZ1bmN0aW9uKHIpe3N3aXRjaChyWzBdKXt9fSl9ZnVuY3Rpb24gJGwoZSxhKXtyZXR1cm57ZmxhZ3M6ZS5yZWFkX3NoaWZ0KDQpLHZlcnNpb246ZS5yZWFkX3NoaWZ0KDQpLG5hbWU6amUoZSl9fWZ1bmN0aW9uIHpsKGUpe2Zvcih2YXIgYT1bXSxyPWUucmVhZF9zaGlmdCg0KTtyLS0gPjA7KWEucHVzaChbZS5yZWFkX3NoaWZ0KDQpLGUucmVhZF9zaGlmdCg0KV0pO3JldHVybiBhfWZ1bmN0aW9uIEtsKGUpe3JldHVybiBlLmwrPTQsZS5yZWFkX3NoaWZ0KDQpIT0wfWZ1bmN0aW9uIFlsKGUsYSxyKXt2YXIgbj17VHlwZXM6W10sQ2VsbDpbXSxWYWx1ZTpbXX0sdD1yfHx7fSxzPVtdLGk9ITEsYz0yO3JldHVybiBQcihlLGZ1bmN0aW9uKGYsbyxsKXtzd2l0Y2gobCl7Y2FzZSAzMzU6bi5UeXBlcy5wdXNoKHtuYW1lOmYubmFtZX0pO2JyZWFrO2Nhc2UgNTE6Zi5mb3JFYWNoKGZ1bmN0aW9uKGgpe2M9PTE/bi5DZWxsLnB1c2goe3R5cGU6bi5UeXBlc1toWzBdLTFdLm5hbWUsaW5kZXg6aFsxXX0pOmM9PTAmJm4uVmFsdWUucHVzaCh7dHlwZTpuLlR5cGVzW2hbMF0tMV0ubmFtZSxpbmRleDpoWzFdfSl9KTticmVhaztjYXNlIDMzNzpjPWY/MTowO2JyZWFrO2Nhc2UgMzM4OmM9MjticmVhaztjYXNlIDM1OnMucHVzaChsKSxpPSEwO2JyZWFrO2Nhc2UgMzY6cy5wb3AoKSxpPSExO2JyZWFrO2RlZmF1bHQ6aWYoIW8uVCl7aWYoIWl8fHQuV1RGJiZzW3MubGVuZ3RoLTFdIT0zNSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgcmVjb3JkIDB4IitsLnRvU3RyaW5nKDE2KSl9fX0pLG59ZnVuY3Rpb24gamwoZSxhLHIpe3ZhciBuPXtUeXBlczpbXSxDZWxsOltdLFZhbHVlOltdfTtpZighZSlyZXR1cm4gbjt2YXIgdD0hMSxzPTIsaTtyZXR1cm4gZS5yZXBsYWNlKEtlLGZ1bmN0aW9uKGMpe3ZhciBmPW9lKGMpO3N3aXRjaChDcihmWzBdKSl7Y2FzZSI8P3htbCI6YnJlYWs7Y2FzZSI8bWV0YWRhdGEiOmNhc2UiPC9tZXRhZGF0YT4iOmJyZWFrO2Nhc2UiPG1ldGFkYXRhVHlwZXMiOmNhc2UiPC9tZXRhZGF0YVR5cGVzPiI6YnJlYWs7Y2FzZSI8bWV0YWRhdGFUeXBlIjpuLlR5cGVzLnB1c2goe25hbWU6Zi5uYW1lfSk7YnJlYWs7Y2FzZSI8L21ldGFkYXRhVHlwZT4iOmJyZWFrO2Nhc2UiPGZ1dHVyZU1ldGFkYXRhIjpmb3IodmFyIG89MDtvPG4uVHlwZXMubGVuZ3RoOysrbyluLlR5cGVzW29dLm5hbWU9PWYubmFtZSYmKGk9bi5UeXBlc1tvXSk7YnJlYWs7Y2FzZSI8L2Z1dHVyZU1ldGFkYXRhPiI6YnJlYWs7Y2FzZSI8Yms+IjpicmVhaztjYXNlIjwvYms+IjpicmVhaztjYXNlIjxyYyI6cz09MT9uLkNlbGwucHVzaCh7dHlwZTpuLlR5cGVzW2YudC0xXS5uYW1lLGluZGV4OitmLnZ9KTpzPT0wJiZuLlZhbHVlLnB1c2goe3R5cGU6bi5UeXBlc1tmLnQtMV0ubmFtZSxpbmRleDorZi52fSk7YnJlYWs7Y2FzZSI8L3JjPiI6YnJlYWs7Y2FzZSI8Y2VsbE1ldGFkYXRhIjpzPTE7YnJlYWs7Y2FzZSI8L2NlbGxNZXRhZGF0YT4iOnM9MjticmVhaztjYXNlIjx2YWx1ZU1ldGFkYXRhIjpzPTA7YnJlYWs7Y2FzZSI8L3ZhbHVlTWV0YWRhdGE+IjpzPTI7YnJlYWs7Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6Y2FzZSI8ZXh0THN0Lz4iOmJyZWFrO2Nhc2UiPGV4dCI6dD0hMDticmVhaztjYXNlIjwvZXh0PiI6dD0hMTticmVhaztjYXNlIjxydmIiOmlmKCFpKWJyZWFrO2kub2Zmc2V0c3x8KGkub2Zmc2V0cz1bXSksaS5vZmZzZXRzLnB1c2goK2YuaSk7YnJlYWs7ZGVmYXVsdDppZighdCYmci5XVEYpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitmWzBdKyIgaW4gbWV0YWRhdGEiKX1yZXR1cm4gY30pLG59ZnVuY3Rpb24gSmwoZSl7dmFyIGE9W107aWYoIWUpcmV0dXJuIGE7dmFyIHI9MTtyZXR1cm4oZS5tYXRjaChLZSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciB0PW9lKG4pO3N3aXRjaCh0WzBdKXtjYXNlIjw/eG1sIjpicmVhaztjYXNlIjxjYWxjQ2hhaW4iOmNhc2UiPGNhbGNDaGFpbj4iOmNhc2UiPC9jYWxjQ2hhaW4+IjpicmVhaztjYXNlIjxjIjpkZWxldGUgdFswXSx0Lmk/cj10Lmk6dC5pPXIsYS5wdXNoKHQpO2JyZWFrfX0pLGF9ZnVuY3Rpb24gWmwoZSl7dmFyIGE9e307YS5pPWUucmVhZF9zaGlmdCg0KTt2YXIgcj17fTtyLnI9ZS5yZWFkX3NoaWZ0KDQpLHIuYz1lLnJlYWRfc2hpZnQoNCksYS5yPXVlKHIpO3ZhciBuPWUucmVhZF9zaGlmdCgxKTtyZXR1cm4gbiYyJiYoYS5sPSIxIiksbiY4JiYoYS5hPSIxIiksYX1mdW5jdGlvbiBxbChlLGEscil7dmFyIG49W107cmV0dXJuIFByKGUsZnVuY3Rpb24ocyxpLGMpe3N3aXRjaChjKXtjYXNlIDYzOm4ucHVzaChzKTticmVhaztkZWZhdWx0OmlmKCFpLlQpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHJlY29yZCAweCIrYy50b1N0cmluZygxNikpfX0pLG59ZnVuY3Rpb24gT2QoKXt9ZnVuY3Rpb24gUWwoZSxhLHIsbil7aWYoIWUpcmV0dXJuIGU7dmFyIHQ9bnx8e30scz0hMTtQcihlLGZ1bmN0aW9uKGMsZixvKXtzd2l0Y2gobyl7Y2FzZSAzNTk6Y2FzZSAzNjM6Y2FzZSAzNjQ6Y2FzZSAzNjY6Y2FzZSAzNjc6Y2FzZSAzNjg6Y2FzZSAzNjk6Y2FzZSAzNzA6Y2FzZSAzNzE6Y2FzZSA0NzI6Y2FzZSA1Nzc6Y2FzZSA1Nzg6Y2FzZSA1Nzk6Y2FzZSA1ODA6Y2FzZSA1ODE6Y2FzZSA1ODI6Y2FzZSA1ODM6Y2FzZSA1ODQ6Y2FzZSA1ODU6Y2FzZSA1ODY6Y2FzZSA1ODc6YnJlYWs7Y2FzZSAzNTpzPSEwO2JyZWFrO2Nhc2UgMzY6cz0hMTticmVhaztkZWZhdWx0OmlmKCFmLlQpe2lmKCFzfHx0LldURil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgcmVjb3JkIDB4IitvLnRvU3RyaW5nKDE2KSl9fX0sdCl9ZnVuY3Rpb24gZTEoZSxhKXtpZighZSlyZXR1cm4iPz8iO3ZhciByPShlLm1hdGNoKC88YzpjaGFydCBbXj5dKnI6aWQ9IihbXiJdKikiLyl8fFsiIiwiIl0pWzFdO3JldHVybiBhWyIhaWQiXVtyXS5UYXJnZXR9ZnVuY3Rpb24gRXMoZSxhLHIsbil7dmFyIHQ9QXJyYXkuaXNBcnJheShlKSxzO2EuZm9yRWFjaChmdW5jdGlvbihpKXt2YXIgYz1ucihpLnJlZik7aWYodD8oZVtjLnJdfHwoZVtjLnJdPVtdKSxzPWVbYy5yXVtjLmNdKTpzPWVbaS5yZWZdLCFzKXtzPXt0OiJ6In0sdD9lW2Mucl1bYy5jXT1zOmVbaS5yZWZdPXM7dmFyIGY9T2UoZVsiIXJlZiJdfHwiQkRXR08xMDAwMDAxOkExIik7Zi5zLnI+Yy5yJiYoZi5zLnI9Yy5yKSxmLmUucjxjLnImJihmLmUucj1jLnIpLGYucy5jPmMuYyYmKGYucy5jPWMuYyksZi5lLmM8Yy5jJiYoZi5lLmM9Yy5jKTt2YXIgbz1fZShmKTtvIT09ZVsiIXJlZiJdJiYoZVsiIXJlZiJdPW8pfXMuY3x8KHMuYz1bXSk7dmFyIGw9e2E6aS5hdXRob3IsdDppLnQscjppLnIsVDpyfTtpLmgmJihsLmg9aS5oKTtmb3IodmFyIGg9cy5jLmxlbmd0aC0xO2g+PTA7LS1oKXtpZighciYmcy5jW2hdLlQpcmV0dXJuO3ImJiFzLmNbaF0uVCYmcy5jLnNwbGljZShoLDEpfWlmKHImJm4pe2ZvcihoPTA7aDxuLmxlbmd0aDsrK2gpaWYobC5hPT1uW2hdLmlkKXtsLmE9bltoXS5uYW1lfHxsLmE7YnJlYWt9fXMuYy5wdXNoKGwpfSl9ZnVuY3Rpb24gcjEoZSxhKXtpZihlLm1hdGNoKC88KD86XHcrOik/Y29tbWVudHMgKlwvPi8pKXJldHVybltdO3ZhciByPVtdLG49W10sdD1lLm1hdGNoKC88KD86XHcrOik/YXV0aG9ycz4oW1xzXFNdKik8XC8oPzpcdys6KT9hdXRob3JzPi8pO3QmJnRbMV0mJnRbMV0uc3BsaXQoLzxcL1x3Kjo/YXV0aG9yPi8pLmZvckVhY2goZnVuY3Rpb24oaSl7aWYoIShpPT09IiJ8fGkudHJpbSgpPT09IiIpKXt2YXIgYz1pLm1hdGNoKC88KD86XHcrOik/YXV0aG9yW14+XSo+KC4qKS8pO2MmJnIucHVzaChjWzFdKX19KTt2YXIgcz1lLm1hdGNoKC88KD86XHcrOik/Y29tbWVudExpc3Q+KFtcc1xTXSopPFwvKD86XHcrOik/Y29tbWVudExpc3Q+Lyk7cmV0dXJuIHMmJnNbMV0mJnNbMV0uc3BsaXQoLzxcL1x3Kjo/Y29tbWVudD4vKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe2lmKCEoaT09PSIifHxpLnRyaW0oKT09PSIiKSl7dmFyIGM9aS5tYXRjaCgvPCg/Olx3KzopP2NvbW1lbnRbXj5dKj4vKTtpZihjKXt2YXIgZj1vZShjWzBdKSxvPXthdXRob3I6Zi5hdXRob3JJZCYmcltmLmF1dGhvcklkXXx8InNoZWV0anNnaG9zdCIscmVmOmYucmVmLGd1aWQ6Zi5ndWlkfSxsPW5yKGYucmVmKTtpZighKGEuc2hlZXRSb3dzJiZhLnNoZWV0Um93czw9bC5yKSl7dmFyIGg9aS5tYXRjaCgvPCg/Olx3KzopP3RleHQ+KFtcc1xTXSopPFwvKD86XHcrOik/dGV4dD4vKSx4PSEhaCYmISFoWzFdJiZadChoWzFdKXx8e3I6IiIsdDoiIixoOiIifTtvLnI9eC5yLHgucj09Ijx0PjwvdD4iJiYoeC50PXguaD0iIiksby50PSh4LnR8fCIiKS5yZXBsYWNlKC9cclxuL2csYApgKS5yZXBsYWNlKC9cci9nLGAKYCksYS5jZWxsSFRNTCYmKG8uaD14LmgpLG4ucHVzaChvKX19fX0pLG59ZnVuY3Rpb24gYTEoZSxhKXt2YXIgcj1bXSxuPSExLHQ9e30scz0wO3JldHVybiBlLnJlcGxhY2UoS2UsZnVuY3Rpb24oYyxmKXt2YXIgbz1vZShjKTtzd2l0Y2goQ3Iob1swXSkpe2Nhc2UiPD94bWwiOmJyZWFrO2Nhc2UiPFRocmVhZGVkQ29tbWVudHMiOmJyZWFrO2Nhc2UiPC9UaHJlYWRlZENvbW1lbnRzPiI6YnJlYWs7Y2FzZSI8dGhyZWFkZWRDb21tZW50Ijp0PXthdXRob3I6by5wZXJzb25JZCxndWlkOm8uaWQscmVmOm8ucmVmLFQ6MX07YnJlYWs7Y2FzZSI8L3RocmVhZGVkQ29tbWVudD4iOnQudCE9bnVsbCYmci5wdXNoKHQpO2JyZWFrO2Nhc2UiPHRleHQ+IjpjYXNlIjx0ZXh0IjpzPWYrYy5sZW5ndGg7YnJlYWs7Y2FzZSI8L3RleHQ+Ijp0LnQ9ZS5zbGljZShzLGYpLnJlcGxhY2UoL1xyXG4vZyxgCmApLnJlcGxhY2UoL1xyL2csYApgKTticmVhaztjYXNlIjxtZW50aW9ucyI6Y2FzZSI8bWVudGlvbnM+IjpuPSEwO2JyZWFrO2Nhc2UiPC9tZW50aW9ucz4iOm49ITE7YnJlYWs7Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6Y2FzZSI8ZXh0THN0Lz4iOmJyZWFrO2Nhc2UiPGV4dCI6bj0hMDticmVhaztjYXNlIjwvZXh0PiI6bj0hMTticmVhaztkZWZhdWx0OmlmKCFuJiZhLldURil0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK29bMF0rIiBpbiB0aHJlYWRlZCBjb21tZW50cyIpfXJldHVybiBjfSkscn1mdW5jdGlvbiB0MShlLGEpe3ZhciByPVtdLG49ITE7cmV0dXJuIGUucmVwbGFjZShLZSxmdW5jdGlvbihzKXt2YXIgaT1vZShzKTtzd2l0Y2goQ3IoaVswXSkpe2Nhc2UiPD94bWwiOmJyZWFrO2Nhc2UiPHBlcnNvbkxpc3QiOmJyZWFrO2Nhc2UiPC9wZXJzb25MaXN0PiI6YnJlYWs7Y2FzZSI8cGVyc29uIjpyLnB1c2goe25hbWU6aS5kaXNwbGF5bmFtZSxpZDppLmlkfSk7YnJlYWs7Y2FzZSI8L3BlcnNvbj4iOmJyZWFrO2Nhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4dExzdD4iOmNhc2UiPGV4dExzdC8+IjpicmVhaztjYXNlIjxleHQiOm49ITA7YnJlYWs7Y2FzZSI8L2V4dD4iOm49ITE7YnJlYWs7ZGVmYXVsdDppZighbiYmYS5XVEYpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitpWzBdKyIgaW4gdGhyZWFkZWQgY29tbWVudHMiKX1yZXR1cm4gc30pLHJ9ZnVuY3Rpb24gbjEoZSl7dmFyIGE9e307YS5pYXV0aG9yPWUucmVhZF9zaGlmdCg0KTt2YXIgcj1uYShlKTtyZXR1cm4gYS5yZng9ci5zLGEucmVmPXVlKHIucyksZS5sKz0xNixhfXZhciBzMT1qZTtmdW5jdGlvbiBpMShlLGEpe3ZhciByPVtdLG49W10sdD17fSxzPSExO3JldHVybiBQcihlLGZ1bmN0aW9uKGMsZixvKXtzd2l0Y2gobyl7Y2FzZSA2MzI6bi5wdXNoKGMpO2JyZWFrO2Nhc2UgNjM1OnQ9YzticmVhaztjYXNlIDYzNzp0LnQ9Yy50LHQuaD1jLmgsdC5yPWMucjticmVhaztjYXNlIDYzNjppZih0LmF1dGhvcj1uW3QuaWF1dGhvcl0sZGVsZXRlIHQuaWF1dGhvcixhLnNoZWV0Um93cyYmdC5yZngmJmEuc2hlZXRSb3dzPD10LnJmeC5yKWJyZWFrO3QudHx8KHQudD0iIiksZGVsZXRlIHQucmZ4LHIucHVzaCh0KTticmVhaztjYXNlIDMwNzI6YnJlYWs7Y2FzZSAzNTpzPSEwO2JyZWFrO2Nhc2UgMzY6cz0hMTticmVhaztjYXNlIDM3OmJyZWFrO2Nhc2UgMzg6YnJlYWs7ZGVmYXVsdDppZighZi5UKXtpZighc3x8YS5XVEYpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHJlY29yZCAweCIrby50b1N0cmluZygxNikpfX19KSxyfXZhciBjMT0iYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS52YmFQcm9qZWN0IjtmdW5jdGlvbiBmMShlKXt2YXIgYT1tZS51dGlscy5jZmJfbmV3KHtyb290OiJSIn0pO3JldHVybiBlLkZ1bGxQYXRocy5mb3JFYWNoKGZ1bmN0aW9uKHIsbil7aWYoIShyLnNsaWNlKC0xKT09PSIvInx8IXIubWF0Y2goL19WQkFfUFJPSkVDVF9DVVIvKSkpe3ZhciB0PXIucmVwbGFjZSgvXlteXC9dKi8sIlIiKS5yZXBsYWNlKC9cL19WQkFfUFJPSkVDVF9DVVJcdTAwMDAqLywiIik7bWUudXRpbHMuY2ZiX2FkZChhLHQsZS5GaWxlSW5kZXhbbl0uY29udGVudCl9fSksbWUud3JpdGUoYSl9ZnVuY3Rpb24gbzEoKXtyZXR1cm57IiF0eXBlIjoiZGlhbG9nIn19ZnVuY3Rpb24gbDEoKXtyZXR1cm57IiF0eXBlIjoiZGlhbG9nIn19ZnVuY3Rpb24gaDEoKXtyZXR1cm57IiF0eXBlIjoibWFjcm8ifX1mdW5jdGlvbiB1MSgpe3JldHVybnsiIXR5cGUiOiJtYWNybyJ9fXZhciBFYT1mdW5jdGlvbigpe3ZhciBlPS8oXnxbXkEtWmEtel9dKVIoXFs/LT9cZCtcXXxbMS05XVxkKnwpQyhcWz8tP1xkK1xdfFsxLTldXGQqfCkoPyFbQS1aYS16MC05X10pL2csYT17cjowLGM6MH07ZnVuY3Rpb24gcihuLHQscyxpKXt2YXIgYz0hMSxmPSExO3MubGVuZ3RoPT0wP2Y9ITA6cy5jaGFyQXQoMCk9PSJbIiYmKGY9ITAscz1zLnNsaWNlKDEsLTEpKSxpLmxlbmd0aD09MD9jPSEwOmkuY2hhckF0KDApPT0iWyImJihjPSEwLGk9aS5zbGljZSgxLC0xKSk7dmFyIG89cy5sZW5ndGg+MD9wYXJzZUludChzLDEwKXwwOjAsbD1pLmxlbmd0aD4wP3BhcnNlSW50KGksMTApfDA6MDtyZXR1cm4gYz9sKz1hLmM6LS1sLGY/bys9YS5yOi0tbyx0KyhjPyIiOiIkIikrVWUobCkrKGY/IiI6IiQiKSt6ZShvKX1yZXR1cm4gZnVuY3Rpb24odCxzKXtyZXR1cm4gYT1zLHQucmVwbGFjZShlLHIpfX0oKSxUcz0vKF58W14uX0EtWjAtOV0pKFskXT8pKFtBLVpdezEsMn18W0EtV11bQS1aXXsyfXxYW0EtRV1bQS1aXXxYRltBLURdKShbJF0/KSgxMFswLTNdXGR7NH18MTA0WzAtN11cZHszfXwxMDQ4WzAtNF1cZHsyfXwxMDQ4NVswLTZdXGR8MTA0ODU3WzAtNl18WzEtOV1cZHswLDV9KSg/IVtfLlwoQS1aYS16MC05XSkvZyx4MT1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihhLHIpe3JldHVybiBhLnJlcGxhY2UoVHMsZnVuY3Rpb24obix0LHMsaSxjLGYpe3ZhciBvPVZ0KGkpLShzPzA6ci5jKSxsPUh0KGYpLShjPzA6ci5yKSxoPWw9PTA/IiI6Yz9sKzE6IlsiK2wrIl0iLHg9bz09MD8iIjpzP28rMToiWyIrbysiXSI7cmV0dXJuIHQrIlIiK2grIkMiK3h9KX19KCk7ZnVuY3Rpb24ga3MoZSxhKXtyZXR1cm4gZS5yZXBsYWNlKFRzLGZ1bmN0aW9uKHIsbix0LHMsaSxjKXtyZXR1cm4gbisodD09IiQiP3QrczpVZShWdChzKSthLmMpKSsoaT09IiQiP2krYzp6ZShIdChjKSthLnIpKX0pfWZ1bmN0aW9uIGQxKGUsYSxyKXt2YXIgbj1wYShhKSx0PW4ucyxzPW5yKHIpLGk9e3I6cy5yLXQucixjOnMuYy10LmN9O3JldHVybiBrcyhlLGkpfWZ1bmN0aW9uIHYxKGUpe3JldHVybiBlLmxlbmd0aCE9MX1mdW5jdGlvbiB3cyhlKXtyZXR1cm4gZS5yZXBsYWNlKC9feGxmblwuL2csIiIpfWZ1bmN0aW9uIEJlKGUpe2UubCs9MX1mdW5jdGlvbiB6cihlLGEpe3ZhciByPWUucmVhZF9zaGlmdCgyKTtyZXR1cm5bciYxNjM4MyxyPj4xNCYxLHI+PjE1JjFdfWZ1bmN0aW9uIEFzKGUsYSxyKXt2YXIgbj0yO2lmKHIpe2lmKHIuYmlmZj49MiYmci5iaWZmPD01KXJldHVybiBGcyhlKTtyLmJpZmY9PTEyJiYobj00KX12YXIgdD1lLnJlYWRfc2hpZnQobikscz1lLnJlYWRfc2hpZnQobiksaT16cihlKSxjPXpyKGUpO3JldHVybntzOntyOnQsYzppWzBdLGNSZWw6aVsxXSxyUmVsOmlbMl19LGU6e3I6cyxjOmNbMF0sY1JlbDpjWzFdLHJSZWw6Y1syXX19fWZ1bmN0aW9uIEZzKGUpe3ZhciBhPXpyKGUpLHI9enIoZSksbj1lLnJlYWRfc2hpZnQoMSksdD1lLnJlYWRfc2hpZnQoMSk7cmV0dXJue3M6e3I6YVswXSxjOm4sY1JlbDphWzFdLHJSZWw6YVsyXX0sZTp7cjpyWzBdLGM6dCxjUmVsOnJbMV0sclJlbDpyWzJdfX19ZnVuY3Rpb24gcDEoZSxhLHIpe2lmKHIuYmlmZjw4KXJldHVybiBGcyhlKTt2YXIgbj1lLnJlYWRfc2hpZnQoci5iaWZmPT0xMj80OjIpLHQ9ZS5yZWFkX3NoaWZ0KHIuYmlmZj09MTI/NDoyKSxzPXpyKGUpLGk9enIoZSk7cmV0dXJue3M6e3I6bixjOnNbMF0sY1JlbDpzWzFdLHJSZWw6c1syXX0sZTp7cjp0LGM6aVswXSxjUmVsOmlbMV0sclJlbDppWzJdfX19ZnVuY3Rpb24gU3MoZSxhLHIpe2lmKHImJnIuYmlmZj49MiYmci5iaWZmPD01KXJldHVybiBnMShlKTt2YXIgbj1lLnJlYWRfc2hpZnQociYmci5iaWZmPT0xMj80OjIpLHQ9enIoZSk7cmV0dXJue3I6bixjOnRbMF0sY1JlbDp0WzFdLHJSZWw6dFsyXX19ZnVuY3Rpb24gZzEoZSl7dmFyIGE9enIoZSkscj1lLnJlYWRfc2hpZnQoMSk7cmV0dXJue3I6YVswXSxjOnIsY1JlbDphWzFdLHJSZWw6YVsyXX19ZnVuY3Rpb24gbTEoZSl7dmFyIGE9ZS5yZWFkX3NoaWZ0KDIpLHI9ZS5yZWFkX3NoaWZ0KDIpO3JldHVybntyOmEsYzpyJjI1NSxmUXVvdGVkOiEhKHImMTYzODQpLGNSZWw6cj4+MTUsclJlbDpyPj4xNX19ZnVuY3Rpb24gXzEoZSxhLHIpe3ZhciBuPXImJnIuYmlmZj9yLmJpZmY6ODtpZihuPj0yJiZuPD01KXJldHVybiBFMShlKTt2YXIgdD1lLnJlYWRfc2hpZnQobj49MTI/NDoyKSxzPWUucmVhZF9zaGlmdCgyKSxpPShzJjE2Mzg0KT4+MTQsYz0ocyYzMjc2OCk+PjE1O2lmKHMmPTE2MzgzLGM9PTEpZm9yKDt0PjUyNDI4NzspdC09MTA0ODU3NjtpZihpPT0xKWZvcig7cz44MTkxOylzPXMtMTYzODQ7cmV0dXJue3I6dCxjOnMsY1JlbDppLHJSZWw6Y319ZnVuY3Rpb24gRTEoZSl7dmFyIGE9ZS5yZWFkX3NoaWZ0KDIpLHI9ZS5yZWFkX3NoaWZ0KDEpLG49KGEmMzI3NjgpPj4xNSx0PShhJjE2Mzg0KT4+MTQ7cmV0dXJuIGEmPTE2MzgzLG49PTEmJmE+PTgxOTImJihhPWEtMTYzODQpLHQ9PTEmJnI+PTEyOCYmKHI9ci0yNTYpLHtyOmEsYzpyLGNSZWw6dCxyUmVsOm59fWZ1bmN0aW9uIFQxKGUsYSxyKXt2YXIgbj0oZVtlLmwrK10mOTYpPj41LHQ9QXMoZSxyLmJpZmY+PTImJnIuYmlmZjw9NT82Ojgscik7cmV0dXJuW24sdF19ZnVuY3Rpb24gazEoZSxhLHIpe3ZhciBuPShlW2UubCsrXSY5Nik+PjUsdD1lLnJlYWRfc2hpZnQoMiwiaSIpLHM9ODtpZihyKXN3aXRjaChyLmJpZmYpe2Nhc2UgNTplLmwrPTEyLHM9NjticmVhaztjYXNlIDEyOnM9MTI7YnJlYWt9dmFyIGk9QXMoZSxzLHIpO3JldHVybltuLHQsaV19ZnVuY3Rpb24gdzEoZSxhLHIpe3ZhciBuPShlW2UubCsrXSY5Nik+PjU7cmV0dXJuIGUubCs9ciYmci5iaWZmPjg/MTI6ci5iaWZmPDg/Njo4LFtuXX1mdW5jdGlvbiBBMShlLGEscil7dmFyIG49KGVbZS5sKytdJjk2KT4+NSx0PWUucmVhZF9zaGlmdCgyKSxzPTg7aWYocilzd2l0Y2goci5iaWZmKXtjYXNlIDU6ZS5sKz0xMixzPTY7YnJlYWs7Y2FzZSAxMjpzPTEyO2JyZWFrfXJldHVybiBlLmwrPXMsW24sdF19ZnVuY3Rpb24gRjEoZSxhLHIpe3ZhciBuPShlW2UubCsrXSY5Nik+PjUsdD1wMShlLGEtMSxyKTtyZXR1cm5bbix0XX1mdW5jdGlvbiBTMShlLGEscil7dmFyIG49KGVbZS5sKytdJjk2KT4+NTtyZXR1cm4gZS5sKz1yLmJpZmY9PTI/NjpyLmJpZmY9PTEyPzE0OjcsW25dfWZ1bmN0aW9uIENzKGUpe3ZhciBhPWVbZS5sKzFdJjEscj0xO3JldHVybiBlLmwrPTQsW2Escl19ZnVuY3Rpb24gQzEoZSxhLHIpe2UubCs9Mjtmb3IodmFyIG49ZS5yZWFkX3NoaWZ0KHImJnIuYmlmZj09Mj8xOjIpLHQ9W10scz0wO3M8PW47KytzKXQucHVzaChlLnJlYWRfc2hpZnQociYmci5iaWZmPT0yPzE6MikpO3JldHVybiB0fWZ1bmN0aW9uIHkxKGUsYSxyKXt2YXIgbj1lW2UubCsxXSYyNTU/MTowO3JldHVybiBlLmwrPTIsW24sZS5yZWFkX3NoaWZ0KHImJnIuYmlmZj09Mj8xOjIpXX1mdW5jdGlvbiBEMShlLGEscil7dmFyIG49ZVtlLmwrMV0mMjU1PzE6MDtyZXR1cm4gZS5sKz0yLFtuLGUucmVhZF9zaGlmdChyJiZyLmJpZmY9PTI/MToyKV19ZnVuY3Rpb24gTzEoZSl7dmFyIGE9ZVtlLmwrMV0mMjU1PzE6MDtyZXR1cm4gZS5sKz0yLFthLGUucmVhZF9zaGlmdCgyKV19ZnVuY3Rpb24gUjEoZSxhLHIpe3ZhciBuPWVbZS5sKzFdJjI1NT8xOjA7cmV0dXJuIGUubCs9ciYmci5iaWZmPT0yPzM6NCxbbl19ZnVuY3Rpb24geXMoZSl7dmFyIGE9ZS5yZWFkX3NoaWZ0KDEpLHI9ZS5yZWFkX3NoaWZ0KDEpO3JldHVyblthLHJdfWZ1bmN0aW9uIEkxKGUpe3JldHVybiBlLnJlYWRfc2hpZnQoMikseXMoZSl9ZnVuY3Rpb24gTjEoZSl7cmV0dXJuIGUucmVhZF9zaGlmdCgyKSx5cyhlKX1mdW5jdGlvbiBQMShlLGEscil7dmFyIG49KGVbZS5sXSY5Nik+PjU7ZS5sKz0xO3ZhciB0PVNzKGUsMCxyKTtyZXR1cm5bbix0XX1mdW5jdGlvbiBMMShlLGEscil7dmFyIG49KGVbZS5sXSY5Nik+PjU7ZS5sKz0xO3ZhciB0PV8xKGUsMCxyKTtyZXR1cm5bbix0XX1mdW5jdGlvbiBNMShlLGEscil7dmFyIG49KGVbZS5sXSY5Nik+PjU7ZS5sKz0xO3ZhciB0PWUucmVhZF9zaGlmdCgyKTtyJiZyLmJpZmY9PTUmJihlLmwrPTEyKTt2YXIgcz1TcyhlLDAscik7cmV0dXJuW24sdCxzXX1mdW5jdGlvbiBCMShlLGEscil7dmFyIG49KGVbZS5sXSY5Nik+PjU7ZS5sKz0xO3ZhciB0PWUucmVhZF9zaGlmdChyJiZyLmJpZmY8PTM/MToyKTtyZXR1cm5bYmhbdF0sTnNbdF0sbl19ZnVuY3Rpb24gYjEoZSxhLHIpe3ZhciBuPWVbZS5sKytdLHQ9ZS5yZWFkX3NoaWZ0KDEpLHM9ciYmci5iaWZmPD0zP1tuPT04OD8tMTowLGUucmVhZF9zaGlmdCgxKV06VTEoZSk7cmV0dXJuW3QsKHNbMF09PT0wP05zOkJoKVtzWzFdXV19ZnVuY3Rpb24gVTEoZSl7cmV0dXJuW2VbZS5sKzFdPj43LGUucmVhZF9zaGlmdCgyKSYzMjc2N119ZnVuY3Rpb24gSDEoZSxhLHIpe2UubCs9ciYmci5iaWZmPT0yPzM6NH1mdW5jdGlvbiBWMShlLGEscil7aWYoZS5sKyssciYmci5iaWZmPT0xMilyZXR1cm5bZS5yZWFkX3NoaWZ0KDQsImkiKSwwXTt2YXIgbj1lLnJlYWRfc2hpZnQoMiksdD1lLnJlYWRfc2hpZnQociYmci5iaWZmPT0yPzE6Mik7cmV0dXJuW24sdF19ZnVuY3Rpb24gVzEoZSl7cmV0dXJuIGUubCsrLGlhW2UucmVhZF9zaGlmdCgxKV19ZnVuY3Rpb24gRzEoZSl7cmV0dXJuIGUubCsrLGUucmVhZF9zaGlmdCgyKX1mdW5jdGlvbiBYMShlKXtyZXR1cm4gZS5sKyssZS5yZWFkX3NoaWZ0KDEpIT09MH1mdW5jdGlvbiAkMShlKXtyZXR1cm4gZS5sKyssSmUoZSl9ZnVuY3Rpb24gejEoZSxhLHIpe3JldHVybiBlLmwrKyxNYShlLGEtMSxyKX1mdW5jdGlvbiBLMShlLGEpe3ZhciByPVtlLnJlYWRfc2hpZnQoMSldO2lmKGE9PTEyKXN3aXRjaChyWzBdKXtjYXNlIDI6clswXT00O2JyZWFrO2Nhc2UgNDpyWzBdPTE2O2JyZWFrO2Nhc2UgMDpyWzBdPTE7YnJlYWs7Y2FzZSAxOnJbMF09MjticmVha31zd2l0Y2goclswXSl7Y2FzZSA0OnJbMV09UmUoZSwxKT8iVFJVRSI6IkZBTFNFIixhIT0xMiYmKGUubCs9Nyk7YnJlYWs7Y2FzZSAzNzpjYXNlIDE2OnJbMV09aWFbZVtlLmxdXSxlLmwrPWE9PTEyPzQ6ODticmVhaztjYXNlIDA6ZS5sKz04O2JyZWFrO2Nhc2UgMTpyWzFdPUplKGUpO2JyZWFrO2Nhc2UgMjpyWzFdPWZhKGUsMCx7YmlmZjphPjAmJmE8OD8yOmF9KTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiQmFkIFNlckFyOiAiK3JbMF0pfXJldHVybiByfWZ1bmN0aW9uIFkxKGUsYSxyKXtmb3IodmFyIG49ZS5yZWFkX3NoaWZ0KHIuYmlmZj09MTI/NDoyKSx0PVtdLHM9MDtzIT1uOysrcyl0LnB1c2goKHIuYmlmZj09MTI/bmE6ZHQpKGUpKTtyZXR1cm4gdH1mdW5jdGlvbiBqMShlLGEscil7dmFyIG49MCx0PTA7ci5iaWZmPT0xMj8obj1lLnJlYWRfc2hpZnQoNCksdD1lLnJlYWRfc2hpZnQoNCkpOih0PTErZS5yZWFkX3NoaWZ0KDEpLG49MStlLnJlYWRfc2hpZnQoMikpLHIuYmlmZj49MiYmci5iaWZmPDgmJigtLW4sLS10PT0wJiYodD0yNTYpKTtmb3IodmFyIHM9MCxpPVtdO3MhPW4mJihpW3NdPVtdKTsrK3MpZm9yKHZhciBjPTA7YyE9dDsrK2MpaVtzXVtjXT1LMShlLHIuYmlmZik7cmV0dXJuIGl9ZnVuY3Rpb24gSjEoZSxhLHIpe3ZhciBuPWUucmVhZF9zaGlmdCgxKT4+PjUmMyx0PSFyfHxyLmJpZmY+PTg/NDoyLHM9ZS5yZWFkX3NoaWZ0KHQpO3N3aXRjaChyLmJpZmYpe2Nhc2UgMjplLmwrPTU7YnJlYWs7Y2FzZSAzOmNhc2UgNDplLmwrPTg7YnJlYWs7Y2FzZSA1OmUubCs9MTI7YnJlYWt9cmV0dXJuW24sMCxzXX1mdW5jdGlvbiBaMShlLGEscil7aWYoci5iaWZmPT01KXJldHVybiBxMShlKTt2YXIgbj1lLnJlYWRfc2hpZnQoMSk+Pj41JjMsdD1lLnJlYWRfc2hpZnQoMikscz1lLnJlYWRfc2hpZnQoNCk7cmV0dXJuW24sdCxzXX1mdW5jdGlvbiBxMShlKXt2YXIgYT1lLnJlYWRfc2hpZnQoMSk+Pj41JjMscj1lLnJlYWRfc2hpZnQoMiwiaSIpO2UubCs9ODt2YXIgbj1lLnJlYWRfc2hpZnQoMik7cmV0dXJuIGUubCs9MTIsW2EscixuXX1mdW5jdGlvbiBRMShlLGEscil7dmFyIG49ZS5yZWFkX3NoaWZ0KDEpPj4+NSYzO2UubCs9ciYmci5iaWZmPT0yPzM6NDt2YXIgdD1lLnJlYWRfc2hpZnQociYmci5iaWZmPT0yPzE6Mik7cmV0dXJuW24sdF19ZnVuY3Rpb24gZWgoZSxhLHIpe3ZhciBuPWUucmVhZF9zaGlmdCgxKT4+PjUmMyx0PWUucmVhZF9zaGlmdChyJiZyLmJpZmY9PTI/MToyKTtyZXR1cm5bbix0XX1mdW5jdGlvbiByaChlLGEscil7dmFyIG49ZS5yZWFkX3NoaWZ0KDEpPj4+NSYzO3JldHVybiBlLmwrPTQsci5iaWZmPDgmJmUubC0tLHIuYmlmZj09MTImJihlLmwrPTIpLFtuXX1mdW5jdGlvbiBhaChlLGEscil7dmFyIG49KGVbZS5sKytdJjk2KT4+NSx0PWUucmVhZF9zaGlmdCgyKSxzPTQ7aWYocilzd2l0Y2goci5iaWZmKXtjYXNlIDU6cz0xNTticmVhaztjYXNlIDEyOnM9NjticmVha31yZXR1cm4gZS5sKz1zLFtuLHRdfXZhciB0aD1ZZSxuaD1ZZSxzaD1ZZTtmdW5jdGlvbiBXYShlLGEscil7cmV0dXJuIGUubCs9MixbbTEoZSldfWZ1bmN0aW9uIHIwKGUpe3JldHVybiBlLmwrPTYsW119dmFyIGloPVdhLGNoPXIwLGZoPXIwLG9oPVdhO2Z1bmN0aW9uIERzKGUpe3JldHVybiBlLmwrPTIsW01lKGUpLGUucmVhZF9zaGlmdCgyKSYxXX12YXIgbGg9V2EsaGg9RHMsdWg9cjAseGg9V2EsZGg9V2Esdmg9WyJEYXRhIiwiQWxsIiwiSGVhZGVycyIsIj8/IiwiP0RhdGEyIiwiPz8iLCI/RGF0YUhlYWRlcnMiLCI/PyIsIlRvdGFscyIsIj8/IiwiPz8iLCI/PyIsIj9EYXRhVG90YWxzIiwiPz8iLCI/PyIsIj8/IiwiP0N1cnJlbnQiXTtmdW5jdGlvbiBwaChlKXtlLmwrPTI7dmFyIGE9ZS5yZWFkX3NoaWZ0KDIpLHI9ZS5yZWFkX3NoaWZ0KDIpLG49ZS5yZWFkX3NoaWZ0KDQpLHQ9ZS5yZWFkX3NoaWZ0KDIpLHM9ZS5yZWFkX3NoaWZ0KDIpLGk9dmhbcj4+MiYzMV07cmV0dXJue2l4dGk6YSxjb2x0eXBlOnImMyxydDppLGlkeDpuLGM6dCxDOnN9fWZ1bmN0aW9uIGdoKGUpe3JldHVybiBlLmwrPTIsW2UucmVhZF9zaGlmdCg0KV19ZnVuY3Rpb24gbWgoZSxhLHIpe3JldHVybiBlLmwrPTUsZS5sKz0yLGUubCs9ci5iaWZmPT0yPzE6NCxbIlBUR1NIRUVUIl19ZnVuY3Rpb24gX2goZSxhLHIpe3JldHVybiBlLmwrPXIuYmlmZj09Mj80OjUsWyJQVEdFTkRTSEVFVCJdfWZ1bmN0aW9uIEVoKGUpe3ZhciBhPWUucmVhZF9zaGlmdCgxKT4+PjUmMyxyPWUucmVhZF9zaGlmdCgyKTtyZXR1cm5bYSxyXX1mdW5jdGlvbiBUaChlKXt2YXIgYT1lLnJlYWRfc2hpZnQoMSk+Pj41JjMscj1lLnJlYWRfc2hpZnQoMik7cmV0dXJuW2Escl19ZnVuY3Rpb24ga2goZSl7cmV0dXJuIGUubCs9NCxbMCwwXX12YXIgT3M9ezE6e246IlB0Z0V4cCIsZjpWMX0sMjp7bjoiUHRnVGJsIixmOnNofSwzOntuOiJQdGdBZGQiLGY6QmV9LDQ6e246IlB0Z1N1YiIsZjpCZX0sNTp7bjoiUHRnTXVsIixmOkJlfSw2OntuOiJQdGdEaXYiLGY6QmV9LDc6e246IlB0Z1Bvd2VyIixmOkJlfSw4OntuOiJQdGdDb25jYXQiLGY6QmV9LDk6e246IlB0Z0x0IixmOkJlfSwxMDp7bjoiUHRnTGUiLGY6QmV9LDExOntuOiJQdGdFcSIsZjpCZX0sMTI6e246IlB0Z0dlIixmOkJlfSwxMzp7bjoiUHRnR3QiLGY6QmV9LDE0OntuOiJQdGdOZSIsZjpCZX0sMTU6e246IlB0Z0lzZWN0IixmOkJlfSwxNjp7bjoiUHRnVW5pb24iLGY6QmV9LDE3OntuOiJQdGdSYW5nZSIsZjpCZX0sMTg6e246IlB0Z1VwbHVzIixmOkJlfSwxOTp7bjoiUHRnVW1pbnVzIixmOkJlfSwyMDp7bjoiUHRnUGVyY2VudCIsZjpCZX0sMjE6e246IlB0Z1BhcmVuIixmOkJlfSwyMjp7bjoiUHRnTWlzc0FyZyIsZjpCZX0sMjM6e246IlB0Z1N0ciIsZjp6MX0sMjY6e246IlB0Z1NoZWV0IixmOm1ofSwyNzp7bjoiUHRnRW5kU2hlZXQiLGY6X2h9LDI4OntuOiJQdGdFcnIiLGY6VzF9LDI5OntuOiJQdGdCb29sIixmOlgxfSwzMDp7bjoiUHRnSW50IixmOkcxfSwzMTp7bjoiUHRnTnVtIixmOiQxfSwzMjp7bjoiUHRnQXJyYXkiLGY6UzF9LDMzOntuOiJQdGdGdW5jIixmOkIxfSwzNDp7bjoiUHRnRnVuY1ZhciIsZjpiMX0sMzU6e246IlB0Z05hbWUiLGY6SjF9LDM2OntuOiJQdGdSZWYiLGY6UDF9LDM3OntuOiJQdGdBcmVhIixmOlQxfSwzODp7bjoiUHRnTWVtQXJlYSIsZjpRMX0sMzk6e246IlB0Z01lbUVyciIsZjp0aH0sNDA6e246IlB0Z01lbU5vTWVtIixmOm5ofSw0MTp7bjoiUHRnTWVtRnVuYyIsZjplaH0sNDI6e246IlB0Z1JlZkVyciIsZjpyaH0sNDM6e246IlB0Z0FyZWFFcnIiLGY6dzF9LDQ0OntuOiJQdGdSZWZOIixmOkwxfSw0NTp7bjoiUHRnQXJlYU4iLGY6RjF9LDQ2OntuOiJQdGdNZW1BcmVhTiIsZjpFaH0sNDc6e246IlB0Z01lbU5vTWVtTiIsZjpUaH0sNTc6e246IlB0Z05hbWVYIixmOloxfSw1ODp7bjoiUHRnUmVmM2QiLGY6TTF9LDU5OntuOiJQdGdBcmVhM2QiLGY6azF9LDYwOntuOiJQdGdSZWZFcnIzZCIsZjphaH0sNjE6e246IlB0Z0FyZWFFcnIzZCIsZjpBMX0sMjU1Ont9fSx3aD17NjQ6MzIsOTY6MzIsNjU6MzMsOTc6MzMsNjY6MzQsOTg6MzQsNjc6MzUsOTk6MzUsNjg6MzYsMTAwOjM2LDY5OjM3LDEwMTozNyw3MDozOCwxMDI6MzgsNzE6MzksMTAzOjM5LDcyOjQwLDEwNDo0MCw3Mzo0MSwxMDU6NDEsNzQ6NDIsMTA2OjQyLDc1OjQzLDEwNzo0Myw3Njo0NCwxMDg6NDQsNzc6NDUsMTA5OjQ1LDc4OjQ2LDExMDo0Niw3OTo0NywxMTE6NDcsODg6MzQsMTIwOjM0LDg5OjU3LDEyMTo1Nyw5MDo1OCwxMjI6NTgsOTE6NTksMTIzOjU5LDkyOjYwLDEyNDo2MCw5Mzo2MSwxMjU6NjF9LEFoPXsxOntuOiJQdGdFbGZMZWwiLGY6RHN9LDI6e246IlB0Z0VsZlJ3IixmOnhofSwzOntuOiJQdGdFbGZDb2wiLGY6aWh9LDY6e246IlB0Z0VsZlJ3ViIsZjpkaH0sNzp7bjoiUHRnRWxmQ29sViIsZjpvaH0sMTA6e246IlB0Z0VsZlJhZGljYWwiLGY6bGh9LDExOntuOiJQdGdFbGZSYWRpY2FsUyIsZjp1aH0sMTM6e246IlB0Z0VsZkNvbFMiLGY6Y2h9LDE1OntuOiJQdGdFbGZDb2xTViIsZjpmaH0sMTY6e246IlB0Z0VsZlJhZGljYWxMZWwiLGY6aGh9LDI1OntuOiJQdGdMaXN0IixmOnBofSwyOTp7bjoiUHRnU3hOYW1lIixmOmdofSwyNTU6e319LEZoPXswOntuOiJQdGdBdHRyTm9vcCIsZjpraH0sMTp7bjoiUHRnQXR0clNlbWkiLGY6UjF9LDI6e246IlB0Z0F0dHJJZiIsZjpEMX0sNDp7bjoiUHRnQXR0ckNob29zZSIsZjpDMX0sODp7bjoiUHRnQXR0ckdvdG8iLGY6eTF9LDE2OntuOiJQdGdBdHRyU3VtIixmOkgxfSwzMjp7bjoiUHRnQXR0ckJheGNlbCIsZjpDc30sMzM6e246IlB0Z0F0dHJCYXhjZWwiLGY6Q3N9LDY0OntuOiJQdGdBdHRyU3BhY2UiLGY6STF9LDY1OntuOiJQdGdBdHRyU3BhY2VTZW1pIixmOk4xfSwxMjg6e246IlB0Z0F0dHJJZkVycm9yIixmOk8xfSwyNTU6e319O2Z1bmN0aW9uIEdhKGUsYSxyLG4pe2lmKG4uYmlmZjw4KXJldHVybiBZZShlLGEpO2Zvcih2YXIgdD1lLmwrYSxzPVtdLGk9MDtpIT09ci5sZW5ndGg7KytpKXN3aXRjaChyW2ldWzBdKXtjYXNlIlB0Z0FycmF5IjpyW2ldWzFdPWoxKGUsMCxuKSxzLnB1c2gocltpXVsxXSk7YnJlYWs7Y2FzZSJQdGdNZW1BcmVhIjpyW2ldWzJdPVkxKGUscltpXVsxXSxuKSxzLnB1c2gocltpXVsyXSk7YnJlYWs7Y2FzZSJQdGdFeHAiOm4mJm4uYmlmZj09MTImJihyW2ldWzFdWzFdPWUucmVhZF9zaGlmdCg0KSxzLnB1c2gocltpXVsxXSkpO2JyZWFrO2Nhc2UiUHRnTGlzdCI6Y2FzZSJQdGdFbGZSYWRpY2FsUyI6Y2FzZSJQdGdFbGZDb2xTIjpjYXNlIlB0Z0VsZkNvbFNWIjp0aHJvdyJVbnN1cHBvcnRlZCAiK3JbaV1bMF19cmV0dXJuIGE9dC1lLmwsYSE9PTAmJnMucHVzaChZZShlLGEpKSxzfWZ1bmN0aW9uIFhhKGUsYSxyKXtmb3IodmFyIG49ZS5sK2EsdCxzLGk9W107biE9ZS5sOylhPW4tZS5sLHM9ZVtlLmxdLHQ9T3Nbc118fE9zW3doW3NdXSwocz09PTI0fHxzPT09MjUpJiYodD0ocz09PTI0P0FoOkZoKVtlW2UubCsxXV0pLCF0fHwhdC5mP1llKGUsYSk6aS5wdXNoKFt0Lm4sdC5mKGUsYSxyKV0pO3JldHVybiBpfWZ1bmN0aW9uIFNoKGUpe2Zvcih2YXIgYT1bXSxyPTA7cjxlLmxlbmd0aDsrK3Ipe2Zvcih2YXIgbj1lW3JdLHQ9W10scz0wO3M8bi5sZW5ndGg7KytzKXt2YXIgaT1uW3NdO2lmKGkpc3dpdGNoKGlbMF0pe2Nhc2UgMjp0LnB1c2goJyInK2lbMV0ucmVwbGFjZSgvIi9nLCciIicpKyciJyk7YnJlYWs7ZGVmYXVsdDp0LnB1c2goaVsxXSl9ZWxzZSB0LnB1c2goIiIpfWEucHVzaCh0LmpvaW4oIiwiKSl9cmV0dXJuIGEuam9pbigiOyIpfXZhciBDaD17UHRnQWRkOiIrIixQdGdDb25jYXQ6IiYiLFB0Z0RpdjoiLyIsUHRnRXE6Ij0iLFB0Z0dlOiI+PSIsUHRnR3Q6Ij4iLFB0Z0xlOiI8PSIsUHRnTHQ6IjwiLFB0Z011bDoiKiIsUHRnTmU6Ijw+IixQdGdQb3dlcjoiXiIsUHRnU3ViOiItIn07ZnVuY3Rpb24geWgoZSxhKXtpZighZSYmIShhJiZhLmJpZmY8PTUmJmEuYmlmZj49MikpdGhyb3cgbmV3IEVycm9yKCJlbXB0eSBzaGVldCBuYW1lIik7cmV0dXJuL1teXHdcdTRFMDAtXHU5RkZGXHUzMDQwLVx1MzBGRl0vLnRlc3QoZSk/IiciK2UrIiciOmV9ZnVuY3Rpb24gUnMoZSxhLHIpe2lmKCFlKXJldHVybiJTSDMzVEpTRVJSMCI7aWYoci5iaWZmPjgmJighZS5YVEl8fCFlLlhUSVthXSkpcmV0dXJuIGUuU2hlZXROYW1lc1thXTtpZighZS5YVEkpcmV0dXJuIlNIMzNUSlNFUlI2Ijt2YXIgbj1lLlhUSVthXTtpZihyLmJpZmY8OClyZXR1cm4gYT4xZTQmJihhLT02NTUzNiksYTwwJiYoYT0tYSksYT09MD8iIjplLlhUSVthLTFdO2lmKCFuKXJldHVybiJTSDMzVEpTRVJSMSI7dmFyIHQ9IiI7aWYoci5iaWZmPjgpc3dpdGNoKGVbblswXV1bMF0pe2Nhc2UgMzU3OnJldHVybiB0PW5bMV09PS0xPyIjUkVGIjplLlNoZWV0TmFtZXNbblsxXV0sblsxXT09blsyXT90OnQrIjoiK2UuU2hlZXROYW1lc1tuWzJdXTtjYXNlIDM1ODpyZXR1cm4gci5TSUQhPW51bGw/ZS5TaGVldE5hbWVzW3IuU0lEXToiU0gzM1RKU1NBTUUiK2VbblswXV1bMF07Y2FzZSAzNTU6ZGVmYXVsdDpyZXR1cm4iU0gzM1RKU1NSQyIrZVtuWzBdXVswXX1zd2l0Y2goZVtuWzBdXVswXVswXSl7Y2FzZSAxMDI1OnJldHVybiB0PW5bMV09PS0xPyIjUkVGIjplLlNoZWV0TmFtZXNbblsxXV18fCJTSDMzVEpTRVJSMyIsblsxXT09blsyXT90OnQrIjoiK2UuU2hlZXROYW1lc1tuWzJdXTtjYXNlIDE0ODQ5OnJldHVybiBlW25bMF1dLnNsaWNlKDEpLm1hcChmdW5jdGlvbihzKXtyZXR1cm4gcy5OYW1lfSkuam9pbigiOzsiKTtkZWZhdWx0OnJldHVybiBlW25bMF1dWzBdWzNdPyh0PW5bMV09PS0xPyIjUkVGIjplW25bMF1dWzBdWzNdW25bMV1dfHwiU0gzM1RKU0VSUjQiLG5bMV09PW5bMl0/dDp0KyI6IitlW25bMF1dWzBdWzNdW25bMl1dKToiU0gzM1RKU0VSUjIifX1mdW5jdGlvbiBJcyhlLGEscil7dmFyIG49UnMoZSxhLHIpO3JldHVybiBuPT0iI1JFRiI/bjp5aChuLHIpfWZ1bmN0aW9uIHFlKGUsYSxyLG4sdCl7dmFyIHM9dCYmdC5iaWZmfHw4LGk9e3M6e2M6MCxyOjB9fSxjPVtdLGYsbyxsLGg9MCx4PTAsZCx2PSIiO2lmKCFlWzBdfHwhZVswXVswXSlyZXR1cm4iIjtmb3IodmFyIHU9LTEsZz0iIixGPTAseT1lWzBdLmxlbmd0aDtGPHk7KytGKXt2YXIgXz1lWzBdW0ZdO3N3aXRjaChfWzBdKXtjYXNlIlB0Z1VtaW51cyI6Yy5wdXNoKCItIitjLnBvcCgpKTticmVhaztjYXNlIlB0Z1VwbHVzIjpjLnB1c2goIisiK2MucG9wKCkpO2JyZWFrO2Nhc2UiUHRnUGVyY2VudCI6Yy5wdXNoKGMucG9wKCkrIiUiKTticmVhaztjYXNlIlB0Z0FkZCI6Y2FzZSJQdGdDb25jYXQiOmNhc2UiUHRnRGl2IjpjYXNlIlB0Z0VxIjpjYXNlIlB0Z0dlIjpjYXNlIlB0Z0d0IjpjYXNlIlB0Z0xlIjpjYXNlIlB0Z0x0IjpjYXNlIlB0Z011bCI6Y2FzZSJQdGdOZSI6Y2FzZSJQdGdQb3dlciI6Y2FzZSJQdGdTdWIiOmlmKGY9Yy5wb3AoKSxvPWMucG9wKCksdT49MCl7c3dpdGNoKGVbMF1bdV1bMV1bMF0pe2Nhc2UgMDpnPURlKCIgIixlWzBdW3VdWzFdWzFdKTticmVhaztjYXNlIDE6Zz1EZSgiXHIiLGVbMF1bdV1bMV1bMV0pO2JyZWFrO2RlZmF1bHQ6aWYoZz0iIix0LldURil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgUHRnQXR0clNwYWNlVHlwZSAiK2VbMF1bdV1bMV1bMF0pfW89bytnLHU9LTF9Yy5wdXNoKG8rQ2hbX1swXV0rZik7YnJlYWs7Y2FzZSJQdGdJc2VjdCI6Zj1jLnBvcCgpLG89Yy5wb3AoKSxjLnB1c2gobysiICIrZik7YnJlYWs7Y2FzZSJQdGdVbmlvbiI6Zj1jLnBvcCgpLG89Yy5wb3AoKSxjLnB1c2gobysiLCIrZik7YnJlYWs7Y2FzZSJQdGdSYW5nZSI6Zj1jLnBvcCgpLG89Yy5wb3AoKSxjLnB1c2gobysiOiIrZik7YnJlYWs7Y2FzZSJQdGdBdHRyQ2hvb3NlIjpicmVhaztjYXNlIlB0Z0F0dHJHb3RvIjpicmVhaztjYXNlIlB0Z0F0dHJJZiI6YnJlYWs7Y2FzZSJQdGdBdHRySWZFcnJvciI6YnJlYWs7Y2FzZSJQdGdSZWYiOmw9SWEoX1sxXVsxXSxpLHQpLGMucHVzaChOYShsLHMpKTticmVhaztjYXNlIlB0Z1JlZk4iOmw9cj9JYShfWzFdWzFdLHIsdCk6X1sxXVsxXSxjLnB1c2goTmEobCxzKSk7YnJlYWs7Y2FzZSJQdGdSZWYzZCI6aD1fWzFdWzFdLGw9SWEoX1sxXVsyXSxpLHQpLHY9SXMobixoLHQpLGMucHVzaCh2KyIhIitOYShsLHMpKTticmVhaztjYXNlIlB0Z0Z1bmMiOmNhc2UiUHRnRnVuY1ZhciI6dmFyIE49X1sxXVswXSxiPV9bMV1bMV07Tnx8KE49MCksTiY9MTI3O3ZhciBJPU49PTA/W106Yy5zbGljZSgtTik7Yy5sZW5ndGgtPU4sYj09PSJVc2VyIiYmKGI9SS5zaGlmdCgpKSxjLnB1c2goYisiKCIrSS5qb2luKCIsIikrIikiKTticmVhaztjYXNlIlB0Z0Jvb2wiOmMucHVzaChfWzFdPyJUUlVFIjoiRkFMU0UiKTticmVhaztjYXNlIlB0Z0ludCI6Yy5wdXNoKF9bMV0pO2JyZWFrO2Nhc2UiUHRnTnVtIjpjLnB1c2goU3RyaW5nKF9bMV0pKTticmVhaztjYXNlIlB0Z1N0ciI6Yy5wdXNoKCciJytfWzFdLnJlcGxhY2UoLyIvZywnIiInKSsnIicpO2JyZWFrO2Nhc2UiUHRnRXJyIjpjLnB1c2goX1sxXSk7YnJlYWs7Y2FzZSJQdGdBcmVhTiI6ZD1SbihfWzFdWzFdLHI/e3M6cn06aSx0KSxjLnB1c2goVXQoZCx0KSk7YnJlYWs7Y2FzZSJQdGdBcmVhIjpkPVJuKF9bMV1bMV0saSx0KSxjLnB1c2goVXQoZCx0KSk7YnJlYWs7Y2FzZSJQdGdBcmVhM2QiOmg9X1sxXVsxXSxkPV9bMV1bMl0sdj1JcyhuLGgsdCksYy5wdXNoKHYrIiEiK1V0KGQsdCkpO2JyZWFrO2Nhc2UiUHRnQXR0clN1bSI6Yy5wdXNoKCJTVU0oIitjLnBvcCgpKyIpIik7YnJlYWs7Y2FzZSJQdGdBdHRyQmF4Y2VsIjpjYXNlIlB0Z0F0dHJTZW1pIjpicmVhaztjYXNlIlB0Z05hbWUiOng9X1sxXVsyXTt2YXIgQT0obi5uYW1lc3x8W10pW3gtMV18fChuWzBdfHxbXSlbeF0sVj1BP0EuTmFtZToiU0gzM1RKU05BTUUiK1N0cmluZyh4KTtWJiZWLnNsaWNlKDAsNik9PSJfeGxmbi4iJiYhdC54bGZuJiYoVj1WLnNsaWNlKDYpKSxjLnB1c2goVik7YnJlYWs7Y2FzZSJQdGdOYW1lWCI6dmFyIEQ9X1sxXVsxXTt4PV9bMV1bMl07dmFyIHo7aWYodC5iaWZmPD01KUQ8MCYmKEQ9LUQpLG5bRF0mJih6PW5bRF1beF0pO2Vsc2V7dmFyIEc9IiI7aWYoKChuW0RdfHxbXSlbMF18fFtdKVswXT09MTQ4NDl8fCgoKG5bRF18fFtdKVswXXx8W10pWzBdPT0xMDI1P25bRF1beF0mJm5bRF1beF0uaXRhYj4wJiYoRz1uLlNoZWV0TmFtZXNbbltEXVt4XS5pdGFiLTFdKyIhIik6Rz1uLlNoZWV0TmFtZXNbeC0xXSsiISIpLG5bRF0mJm5bRF1beF0pRys9bltEXVt4XS5OYW1lO2Vsc2UgaWYoblswXSYmblswXVt4XSlHKz1uWzBdW3hdLk5hbWU7ZWxzZXt2YXIgUD0oUnMobixELHQpfHwiIikuc3BsaXQoIjs7Iik7UFt4LTFdP0c9UFt4LTFdOkcrPSJTSDMzVEpTRVJSWCJ9Yy5wdXNoKEcpO2JyZWFrfXp8fCh6PXtOYW1lOiJTSDMzVEpTRVJSWSJ9KSxjLnB1c2goei5OYW1lKTticmVhaztjYXNlIlB0Z1BhcmVuIjp2YXIgSj0iKCIsZmU9IikiO2lmKHU+PTApe3N3aXRjaChnPSIiLGVbMF1bdV1bMV1bMF0pe2Nhc2UgMjpKPURlKCIgIixlWzBdW3VdWzFdWzFdKStKO2JyZWFrO2Nhc2UgMzpKPURlKCJcciIsZVswXVt1XVsxXVsxXSkrSjticmVhaztjYXNlIDQ6ZmU9RGUoIiAiLGVbMF1bdV1bMV1bMV0pK2ZlO2JyZWFrO2Nhc2UgNTpmZT1EZSgiXHIiLGVbMF1bdV1bMV1bMV0pK2ZlO2JyZWFrO2RlZmF1bHQ6aWYodC5XVEYpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIFB0Z0F0dHJTcGFjZVR5cGUgIitlWzBdW3VdWzFdWzBdKX11PS0xfWMucHVzaChKK2MucG9wKCkrZmUpO2JyZWFrO2Nhc2UiUHRnUmVmRXJyIjpjLnB1c2goIiNSRUYhIik7YnJlYWs7Y2FzZSJQdGdSZWZFcnIzZCI6Yy5wdXNoKCIjUkVGISIpO2JyZWFrO2Nhc2UiUHRnRXhwIjpsPXtjOl9bMV1bMV0scjpfWzFdWzBdfTt2YXIgcmU9e2M6ci5jLHI6ci5yfTtpZihuLnNoYXJlZGZbdWUobCldKXt2YXIgY2U9bi5zaGFyZWRmW3VlKGwpXTtjLnB1c2gocWUoY2UsaSxyZSxuLHQpKX1lbHNle3ZhciBpZT0hMTtmb3IoZj0wO2YhPW4uYXJyYXlmLmxlbmd0aDsrK2YpaWYobz1uLmFycmF5ZltmXSwhKGwuYzxvWzBdLnMuY3x8bC5jPm9bMF0uZS5jKSYmIShsLnI8b1swXS5zLnJ8fGwucj5vWzBdLmUucikpe2MucHVzaChxZShvWzFdLGkscmUsbix0KSksaWU9ITA7YnJlYWt9aWV8fGMucHVzaChfWzFdKX1icmVhaztjYXNlIlB0Z0FycmF5IjpjLnB1c2goInsiK1NoKF9bMV0pKyJ9Iik7YnJlYWs7Y2FzZSJQdGdNZW1BcmVhIjpicmVhaztjYXNlIlB0Z0F0dHJTcGFjZSI6Y2FzZSJQdGdBdHRyU3BhY2VTZW1pIjp1PUY7YnJlYWs7Y2FzZSJQdGdUYmwiOmJyZWFrO2Nhc2UiUHRnTWVtRXJyIjpicmVhaztjYXNlIlB0Z01pc3NBcmciOmMucHVzaCgiIik7YnJlYWs7Y2FzZSJQdGdBcmVhRXJyIjpjLnB1c2goIiNSRUYhIik7YnJlYWs7Y2FzZSJQdGdBcmVhRXJyM2QiOmMucHVzaCgiI1JFRiEiKTticmVhaztjYXNlIlB0Z0xpc3QiOmMucHVzaCgiVGFibGUiK19bMV0uaWR4KyJbIyIrX1sxXS5ydCsiXSIpO2JyZWFrO2Nhc2UiUHRnTWVtQXJlYU4iOmNhc2UiUHRnTWVtTm9NZW1OIjpjYXNlIlB0Z0F0dHJOb29wIjpjYXNlIlB0Z1NoZWV0IjpjYXNlIlB0Z0VuZFNoZWV0IjpicmVhaztjYXNlIlB0Z01lbUZ1bmMiOmJyZWFrO2Nhc2UiUHRnTWVtTm9NZW0iOmJyZWFrO2Nhc2UiUHRnRWxmQ29sIjpjYXNlIlB0Z0VsZkNvbFMiOmNhc2UiUHRnRWxmQ29sU1YiOmNhc2UiUHRnRWxmQ29sViI6Y2FzZSJQdGdFbGZMZWwiOmNhc2UiUHRnRWxmUmFkaWNhbCI6Y2FzZSJQdGdFbGZSYWRpY2FsTGVsIjpjYXNlIlB0Z0VsZlJhZGljYWxTIjpjYXNlIlB0Z0VsZlJ3IjpjYXNlIlB0Z0VsZlJ3ViI6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBFTEZzIik7Y2FzZSJQdGdTeE5hbWUiOnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIEZvcm11bGEgVG9rZW46ICIrU3RyaW5nKF8pKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIEZvcm11bGEgVG9rZW46ICIrU3RyaW5nKF8pKX12YXIgRmU9WyJQdGdBdHRyU3BhY2UiLCJQdGdBdHRyU3BhY2VTZW1pIiwiUHRnQXR0ckdvdG8iXTtpZih0LmJpZmYhPTMmJnU+PTAmJkZlLmluZGV4T2YoZVswXVtGXVswXSk9PS0xKXtfPWVbMF1bdV07dmFyIFc9ITA7c3dpdGNoKF9bMV1bMF0pe2Nhc2UgNDpXPSExO2Nhc2UgMDpnPURlKCIgIixfWzFdWzFdKTticmVhaztjYXNlIDU6Vz0hMTtjYXNlIDE6Zz1EZSgiXHIiLF9bMV1bMV0pO2JyZWFrO2RlZmF1bHQ6aWYoZz0iIix0LldURil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgUHRnQXR0clNwYWNlVHlwZSAiK19bMV1bMF0pfWMucHVzaCgoVz9nOiIiKStjLnBvcCgpKyhXPyIiOmcpKSx1PS0xfX1pZihjLmxlbmd0aD4xJiZ0LldURil0aHJvdyBuZXcgRXJyb3IoImJhZCBmb3JtdWxhIHN0YWNrIik7cmV0dXJuIGNbMF19ZnVuY3Rpb24gRGgoZSxhLHIpe3ZhciBuPWUubCthLHQ9ci5iaWZmPT0yPzE6MixzLGk9ZS5yZWFkX3NoaWZ0KHQpO2lmKGk9PTY1NTM1KXJldHVybltbXSxZZShlLGEtMildO3ZhciBjPVhhKGUsaSxyKTtyZXR1cm4gYSE9PWkrdCYmKHM9R2EoZSxhLWktdCxjLHIpKSxlLmw9bixbYyxzXX1mdW5jdGlvbiBPaChlLGEscil7dmFyIG49ZS5sK2EsdD1yLmJpZmY9PTI/MToyLHMsaT1lLnJlYWRfc2hpZnQodCk7aWYoaT09NjU1MzUpcmV0dXJuW1tdLFllKGUsYS0yKV07dmFyIGM9WGEoZSxpLHIpO3JldHVybiBhIT09aSt0JiYocz1HYShlLGEtaS10LGMscikpLGUubD1uLFtjLHNdfWZ1bmN0aW9uIFJoKGUsYSxyLG4pe3ZhciB0PWUubCthLHM9WGEoZSxuLHIpLGk7cmV0dXJuIHQhPT1lLmwmJihpPUdhKGUsdC1lLmwscyxyKSksW3MsaV19ZnVuY3Rpb24gSWgoZSxhLHIpe3ZhciBuPWUubCthLHQscz1lLnJlYWRfc2hpZnQoMiksaT1YYShlLHMscik7cmV0dXJuIHM9PTY1NTM1P1tbXSxZZShlLGEtMildOihhIT09cysyJiYodD1HYShlLG4tcy0yLGkscikpLFtpLHRdKX1mdW5jdGlvbiBOaChlKXt2YXIgYTtpZihOcihlLGUubCs2KSE9PTY1NTM1KXJldHVybltKZShlKSwibiJdO3N3aXRjaChlW2UubF0pe2Nhc2UgMDpyZXR1cm4gZS5sKz04LFsiU3RyaW5nIiwicyJdO2Nhc2UgMTpyZXR1cm4gYT1lW2UubCsyXT09PTEsZS5sKz04LFthLCJiIl07Y2FzZSAyOnJldHVybiBhPWVbZS5sKzJdLGUubCs9OCxbYSwiZSJdO2Nhc2UgMzpyZXR1cm4gZS5sKz04LFsiIiwicyJdfXJldHVybltdfWZ1bmN0aW9uIGEwKGUsYSxyKXt2YXIgbj1lLmwrYSx0PXlyKGUpO3IuYmlmZj09MiYmKytlLmw7dmFyIHM9TmgoZSksaT1lLnJlYWRfc2hpZnQoMSk7ci5iaWZmIT0yJiYoZS5yZWFkX3NoaWZ0KDEpLHIuYmlmZj49NSYmZS5yZWFkX3NoaWZ0KDQpKTt2YXIgYz1PaChlLG4tZS5sLHIpO3JldHVybntjZWxsOnQsdmFsOnNbMF0sZm9ybXVsYTpjLHNoYXJlZDppPj4zJjEsdHQ6c1sxXX19ZnVuY3Rpb24gVHQoZSxhLHIpe3ZhciBuPWUucmVhZF9zaGlmdCg0KSx0PVhhKGUsbixyKSxzPWUucmVhZF9zaGlmdCg0KSxpPXM+MD9HYShlLHMsdCxyKTpudWxsO3JldHVyblt0LGldfXZhciBQaD1UdCxrdD1UdCxMaD1UdCxNaD1UdCxCaD17MDoiQkVFUCIsMToiT1BFTiIsMjoiT1BFTi5MSU5LUyIsMzoiQ0xPU0UuQUxMIiw0OiJTQVZFIiw1OiJTQVZFLkFTIiw2OiJGSUxFLkRFTEVURSIsNzoiUEFHRS5TRVRVUCIsODoiUFJJTlQiLDk6IlBSSU5URVIuU0VUVVAiLDEwOiJRVUlUIiwxMToiTkVXLldJTkRPVyIsMTI6IkFSUkFOR0UuQUxMIiwxMzoiV0lORE9XLlNJWkUiLDE0OiJXSU5ET1cuTU9WRSIsMTU6IkZVTEwiLDE2OiJDTE9TRSIsMTc6IlJVTiIsMjI6IlNFVC5QUklOVC5BUkVBIiwyMzoiU0VULlBSSU5ULlRJVExFUyIsMjQ6IlNFVC5QQUdFLkJSRUFLIiwyNToiUkVNT1ZFLlBBR0UuQlJFQUsiLDI2OiJGT05UIiwyNzoiRElTUExBWSIsMjg6IlBST1RFQ1QuRE9DVU1FTlQiLDI5OiJQUkVDSVNJT04iLDMwOiJBMS5SMUMxIiwzMToiQ0FMQ1VMQVRFLk5PVyIsMzI6IkNBTENVTEFUSU9OIiwzNDoiREFUQS5GSU5EIiwzNToiRVhUUkFDVCIsMzY6IkRBVEEuREVMRVRFIiwzNzoiU0VULkRBVEFCQVNFIiwzODoiU0VULkNSSVRFUklBIiwzOToiU09SVCIsNDA6IkRBVEEuU0VSSUVTIiw0MToiVEFCTEUiLDQyOiJGT1JNQVQuTlVNQkVSIiw0MzoiQUxJR05NRU5UIiw0NDoiU1RZTEUiLDQ1OiJCT1JERVIiLDQ2OiJDRUxMLlBST1RFQ1RJT04iLDQ3OiJDT0xVTU4uV0lEVEgiLDQ4OiJVTkRPIiw0OToiQ1VUIiw1MDoiQ09QWSIsNTE6IlBBU1RFIiw1MjoiQ0xFQVIiLDUzOiJQQVNURS5TUEVDSUFMIiw1NDoiRURJVC5ERUxFVEUiLDU1OiJJTlNFUlQiLDU2OiJGSUxMLlJJR0hUIiw1NzoiRklMTC5ET1dOIiw2MToiREVGSU5FLk5BTUUiLDYyOiJDUkVBVEUuTkFNRVMiLDYzOiJGT1JNVUxBLkdPVE8iLDY0OiJGT1JNVUxBLkZJTkQiLDY1OiJTRUxFQ1QuTEFTVC5DRUxMIiw2NjoiU0hPVy5BQ1RJVkUuQ0VMTCIsNjc6IkdBTExFUlkuQVJFQSIsNjg6IkdBTExFUlkuQkFSIiw2OToiR0FMTEVSWS5DT0xVTU4iLDcwOiJHQUxMRVJZLkxJTkUiLDcxOiJHQUxMRVJZLlBJRSIsNzI6IkdBTExFUlkuU0NBVFRFUiIsNzM6IkNPTUJJTkFUSU9OIiw3NDoiUFJFRkVSUkVEIiw3NToiQURELk9WRVJMQVkiLDc2OiJHUklETElORVMiLDc3OiJTRVQuUFJFRkVSUkVEIiw3ODoiQVhFUyIsNzk6IkxFR0VORCIsODA6IkFUVEFDSC5URVhUIiw4MToiQURELkFSUk9XIiw4MjoiU0VMRUNULkNIQVJUIiw4MzoiU0VMRUNULlBMT1QuQVJFQSIsODQ6IlBBVFRFUk5TIiw4NToiTUFJTi5DSEFSVCIsODY6Ik9WRVJMQVkiLDg3OiJTQ0FMRSIsODg6IkZPUk1BVC5MRUdFTkQiLDg5OiJGT1JNQVQuVEVYVCIsOTA6IkVESVQuUkVQRUFUIiw5MToiUEFSU0UiLDkyOiJKVVNUSUZZIiw5MzoiSElERSIsOTQ6IlVOSElERSIsOTU6IldPUktTUEFDRSIsOTY6IkZPUk1VTEEiLDk3OiJGT1JNVUxBLkZJTEwiLDk4OiJGT1JNVUxBLkFSUkFZIiw5OToiREFUQS5GSU5ELk5FWFQiLDEwMDoiREFUQS5GSU5ELlBSRVYiLDEwMToiRk9STVVMQS5GSU5ELk5FWFQiLDEwMjoiRk9STVVMQS5GSU5ELlBSRVYiLDEwMzoiQUNUSVZBVEUiLDEwNDoiQUNUSVZBVEUuTkVYVCIsMTA1OiJBQ1RJVkFURS5QUkVWIiwxMDY6IlVOTE9DS0VELk5FWFQiLDEwNzoiVU5MT0NLRUQuUFJFViIsMTA4OiJDT1BZLlBJQ1RVUkUiLDEwOToiU0VMRUNUIiwxMTA6IkRFTEVURS5OQU1FIiwxMTE6IkRFTEVURS5GT1JNQVQiLDExMjoiVkxJTkUiLDExMzoiSExJTkUiLDExNDoiVlBBR0UiLDExNToiSFBBR0UiLDExNjoiVlNDUk9MTCIsMTE3OiJIU0NST0xMIiwxMTg6IkFMRVJUIiwxMTk6Ik5FVyIsMTIwOiJDQU5DRUwuQ09QWSIsMTIxOiJTSE9XLkNMSVBCT0FSRCIsMTIyOiJNRVNTQUdFIiwxMjQ6IlBBU1RFLkxJTksiLDEyNToiQVBQLkFDVElWQVRFIiwxMjY6IkRFTEVURS5BUlJPVyIsMTI3OiJST1cuSEVJR0hUIiwxMjg6IkZPUk1BVC5NT1ZFIiwxMjk6IkZPUk1BVC5TSVpFIiwxMzA6IkZPUk1VTEEuUkVQTEFDRSIsMTMxOiJTRU5ELktFWVMiLDEzMjoiU0VMRUNULlNQRUNJQUwiLDEzMzoiQVBQTFkuTkFNRVMiLDEzNDoiUkVQTEFDRS5GT05UIiwxMzU6IkZSRUVaRS5QQU5FUyIsMTM2OiJTSE9XLklORk8iLDEzNzoiU1BMSVQiLDEzODoiT04uV0lORE9XIiwxMzk6Ik9OLkRBVEEiLDE0MDoiRElTQUJMRS5JTlBVVCIsMTQyOiJPVVRMSU5FIiwxNDM6IkxJU1QuTkFNRVMiLDE0NDoiRklMRS5DTE9TRSIsMTQ1OiJTQVZFLldPUktCT09LIiwxNDY6IkRBVEEuRk9STSIsMTQ3OiJDT1BZLkNIQVJUIiwxNDg6Ik9OLlRJTUUiLDE0OToiV0FJVCIsMTUwOiJGT1JNQVQuRk9OVCIsMTUxOiJGSUxMLlVQIiwxNTI6IkZJTEwuTEVGVCIsMTUzOiJERUxFVEUuT1ZFUkxBWSIsMTU1OiJTSE9SVC5NRU5VUyIsMTU5OiJTRVQuVVBEQVRFLlNUQVRVUyIsMTYxOiJDT0xPUi5QQUxFVFRFIiwxNjI6IkRFTEVURS5TVFlMRSIsMTYzOiJXSU5ET1cuUkVTVE9SRSIsMTY0OiJXSU5ET1cuTUFYSU1JWkUiLDE2NjoiQ0hBTkdFLkxJTksiLDE2NzoiQ0FMQ1VMQVRFLkRPQ1VNRU5UIiwxNjg6Ik9OLktFWSIsMTY5OiJBUFAuUkVTVE9SRSIsMTcwOiJBUFAuTU9WRSIsMTcxOiJBUFAuU0laRSIsMTcyOiJBUFAuTUlOSU1JWkUiLDE3MzoiQVBQLk1BWElNSVpFIiwxNzQ6IkJSSU5HLlRPLkZST05UIiwxNzU6IlNFTkQuVE8uQkFDSyIsMTg1OiJNQUlOLkNIQVJULlRZUEUiLDE4NjoiT1ZFUkxBWS5DSEFSVC5UWVBFIiwxODc6IlNFTEVDVC5FTkQiLDE4ODoiT1BFTi5NQUlMIiwxODk6IlNFTkQuTUFJTCIsMTkwOiJTVEFOREFSRC5GT05UIiwxOTE6IkNPTlNPTElEQVRFIiwxOTI6IlNPUlQuU1BFQ0lBTCIsMTkzOiJHQUxMRVJZLjNELkFSRUEiLDE5NDoiR0FMTEVSWS4zRC5DT0xVTU4iLDE5NToiR0FMTEVSWS4zRC5MSU5FIiwxOTY6IkdBTExFUlkuM0QuUElFIiwxOTc6IlZJRVcuM0QiLDE5ODoiR09BTC5TRUVLIiwxOTk6IldPUktHUk9VUCIsMjAwOiJGSUxMLkdST1VQIiwyMDE6IlVQREFURS5MSU5LIiwyMDI6IlBST01PVEUiLDIwMzoiREVNT1RFIiwyMDQ6IlNIT1cuREVUQUlMIiwyMDY6IlVOR1JPVVAiLDIwNzoiT0JKRUNULlBST1BFUlRJRVMiLDIwODoiU0FWRS5ORVcuT0JKRUNUIiwyMDk6IlNIQVJFIiwyMTA6IlNIQVJFLk5BTUUiLDIxMToiRFVQTElDQVRFIiwyMTI6IkFQUExZLlNUWUxFIiwyMTM6IkFTU0lHTi5UTy5PQkpFQ1QiLDIxNDoiT0JKRUNULlBST1RFQ1RJT04iLDIxNToiSElERS5PQkpFQ1QiLDIxNjoiU0VULkVYVFJBQ1QiLDIxNzoiQ1JFQVRFLlBVQkxJU0hFUiIsMjE4OiJTVUJTQ1JJQkUuVE8iLDIxOToiQVRUUklCVVRFUyIsMjIwOiJTSE9XLlRPT0xCQVIiLDIyMjoiUFJJTlQuUFJFVklFVyIsMjIzOiJFRElULkNPTE9SIiwyMjQ6IlNIT1cuTEVWRUxTIiwyMjU6IkZPUk1BVC5NQUlOIiwyMjY6IkZPUk1BVC5PVkVSTEFZIiwyMjc6Ik9OLlJFQ0FMQyIsMjI4OiJFRElULlNFUklFUyIsMjI5OiJERUZJTkUuU1RZTEUiLDI0MDoiTElORS5QUklOVCIsMjQzOiJFTlRFUi5EQVRBIiwyNDk6IkdBTExFUlkuUkFEQVIiLDI1MDoiTUVSR0UuU1RZTEVTIiwyNTE6IkVESVRJT04uT1BUSU9OUyIsMjUyOiJQQVNURS5QSUNUVVJFIiwyNTM6IlBBU1RFLlBJQ1RVUkUuTElOSyIsMjU0OiJTUEVMTElORyIsMjU2OiJaT09NIiwyNTk6IklOU0VSVC5PQkpFQ1QiLDI2MDoiV0lORE9XLk1JTklNSVpFIiwyNjU6IlNPVU5ELk5PVEUiLDI2NjoiU09VTkQuUExBWSIsMjY3OiJGT1JNQVQuU0hBUEUiLDI2ODoiRVhURU5ELlBPTFlHT04iLDI2OToiRk9STUFULkFVVE8iLDI3MjoiR0FMTEVSWS4zRC5CQVIiLDI3MzoiR0FMTEVSWS4zRC5TVVJGQUNFIiwyNzQ6IkZJTEwuQVVUTyIsMjc2OiJDVVNUT01JWkUuVE9PTEJBUiIsMjc3OiJBREQuVE9PTCIsMjc4OiJFRElULk9CSkVDVCIsMjc5OiJPTi5ET1VCTEVDTElDSyIsMjgwOiJPTi5FTlRSWSIsMjgxOiJXT1JLQk9PSy5BREQiLDI4MjoiV09SS0JPT0suTU9WRSIsMjgzOiJXT1JLQk9PSy5DT1BZIiwyODQ6IldPUktCT09LLk9QVElPTlMiLDI4NToiU0FWRS5XT1JLU1BBQ0UiLDI4ODoiQ0hBUlQuV0laQVJEIiwyODk6IkRFTEVURS5UT09MIiwyOTA6Ik1PVkUuVE9PTCIsMjkxOiJXT1JLQk9PSy5TRUxFQ1QiLDI5MjoiV09SS0JPT0suQUNUSVZBVEUiLDI5MzoiQVNTSUdOLlRPLlRPT0wiLDI5NToiQ09QWS5UT09MIiwyOTY6IlJFU0VULlRPT0wiLDI5NzoiQ09OU1RSQUlOLk5VTUVSSUMiLDI5ODoiUEFTVEUuVE9PTCIsMzAyOiJXT1JLQk9PSy5ORVciLDMwNToiU0NFTkFSSU8uQ0VMTFMiLDMwNjoiU0NFTkFSSU8uREVMRVRFIiwzMDc6IlNDRU5BUklPLkFERCIsMzA4OiJTQ0VOQVJJTy5FRElUIiwzMDk6IlNDRU5BUklPLlNIT1ciLDMxMDoiU0NFTkFSSU8uU0hPVy5ORVhUIiwzMTE6IlNDRU5BUklPLlNVTU1BUlkiLDMxMjoiUElWT1QuVEFCTEUuV0laQVJEIiwzMTM6IlBJVk9ULkZJRUxELlBST1BFUlRJRVMiLDMxNDoiUElWT1QuRklFTEQiLDMxNToiUElWT1QuSVRFTSIsMzE2OiJQSVZPVC5BREQuRklFTERTIiwzMTg6Ik9QVElPTlMuQ0FMQ1VMQVRJT04iLDMxOToiT1BUSU9OUy5FRElUIiwzMjA6Ik9QVElPTlMuVklFVyIsMzIxOiJBRERJTi5NQU5BR0VSIiwzMjI6Ik1FTlUuRURJVE9SIiwzMjM6IkFUVEFDSC5UT09MQkFSUyIsMzI0OiJWQkFBY3RpdmF0ZSIsMzI1OiJPUFRJT05TLkNIQVJUIiwzMjg6IlZCQS5JTlNFUlQuRklMRSIsMzMwOiJWQkEuUFJPQ0VEVVJFLkRFRklOSVRJT04iLDMzNjoiUk9VVElORy5TTElQIiwzMzg6IlJPVVRFLkRPQ1VNRU5UIiwzMzk6Ik1BSUwuTE9HT04iLDM0MjoiSU5TRVJULlBJQ1RVUkUiLDM0MzoiRURJVC5UT09MIiwzNDQ6IkdBTExFUlkuRE9VR0hOVVQiLDM1MDoiQ0hBUlQuVFJFTkQiLDM1MjoiUElWT1QuSVRFTS5QUk9QRVJUSUVTIiwzNTQ6IldPUktCT09LLklOU0VSVCIsMzU1OiJPUFRJT05TLlRSQU5TSVRJT04iLDM1NjoiT1BUSU9OUy5HRU5FUkFMIiwzNzA6IkZJTFRFUi5BRFZBTkNFRCIsMzczOiJNQUlMLkFERC5NQUlMRVIiLDM3NDoiTUFJTC5ERUxFVEUuTUFJTEVSIiwzNzU6Ik1BSUwuUkVQTFkiLDM3NjoiTUFJTC5SRVBMWS5BTEwiLDM3NzoiTUFJTC5GT1JXQVJEIiwzNzg6Ik1BSUwuTkVYVC5MRVRURVIiLDM3OToiREFUQS5MQUJFTCIsMzgwOiJJTlNFUlQuVElUTEUiLDM4MToiRk9OVC5QUk9QRVJUSUVTIiwzODI6Ik1BQ1JPLk9QVElPTlMiLDM4MzoiV09SS0JPT0suSElERSIsMzg0OiJXT1JLQk9PSy5VTkhJREUiLDM4NToiV09SS0JPT0suREVMRVRFIiwzODY6IldPUktCT09LLk5BTUUiLDM4ODoiR0FMTEVSWS5DVVNUT00iLDM5MDoiQURELkNIQVJULkFVVE9GT1JNQVQiLDM5MToiREVMRVRFLkNIQVJULkFVVE9GT1JNQVQiLDM5MjoiQ0hBUlQuQURELkRBVEEiLDM5MzoiQVVUTy5PVVRMSU5FIiwzOTQ6IlRBQi5PUkRFUiIsMzk1OiJTSE9XLkRJQUxPRyIsMzk2OiJTRUxFQ1QuQUxMIiwzOTc6IlVOR1JPVVAuU0hFRVRTIiwzOTg6IlNVQlRPVEFMLkNSRUFURSIsMzk5OiJTVUJUT1RBTC5SRU1PVkUiLDQwMDoiUkVOQU1FLk9CSkVDVCIsNDEyOiJXT1JLQk9PSy5TQ1JPTEwiLDQxMzoiV09SS0JPT0suTkVYVCIsNDE0OiJXT1JLQk9PSy5QUkVWIiw0MTU6IldPUktCT09LLlRBQi5TUExJVCIsNDE2OiJGVUxMLlNDUkVFTiIsNDE3OiJXT1JLQk9PSy5QUk9URUNUIiw0MjA6IlNDUk9MTEJBUi5QUk9QRVJUSUVTIiw0MjE6IlBJVk9ULlNIT1cuUEFHRVMiLDQyMjoiVEVYVC5UTy5DT0xVTU5TIiw0MjM6IkZPUk1BVC5DSEFSVFRZUEUiLDQyNDoiTElOSy5GT1JNQVQiLDQyNToiVFJBQ0VSLkRJU1BMQVkiLDQzMDoiVFJBQ0VSLk5BVklHQVRFIiw0MzE6IlRSQUNFUi5DTEVBUiIsNDMyOiJUUkFDRVIuRVJST1IiLDQzMzoiUElWT1QuRklFTEQuR1JPVVAiLDQzNDoiUElWT1QuRklFTEQuVU5HUk9VUCIsNDM1OiJDSEVDS0JPWC5QUk9QRVJUSUVTIiw0MzY6IkxBQkVMLlBST1BFUlRJRVMiLDQzNzoiTElTVEJPWC5QUk9QRVJUSUVTIiw0Mzg6IkVESVRCT1guUFJPUEVSVElFUyIsNDM5OiJQSVZPVC5SRUZSRVNIIiw0NDA6IkxJTksuQ09NQk8iLDQ0MToiT1BFTi5URVhUIiw0NDI6IkhJREUuRElBTE9HIiw0NDM6IlNFVC5ESUFMT0cuRk9DVVMiLDQ0NDoiRU5BQkxFLk9CSkVDVCIsNDQ1OiJQVVNIQlVUVE9OLlBST1BFUlRJRVMiLDQ0NjoiU0VULkRJQUxPRy5ERUZBVUxUIiw0NDc6IkZJTFRFUiIsNDQ4OiJGSUxURVIuU0hPVy5BTEwiLDQ0OToiQ0xFQVIuT1VUTElORSIsNDUwOiJGVU5DVElPTi5XSVpBUkQiLDQ1MToiQURELkxJU1QuSVRFTSIsNDUyOiJTRVQuTElTVC5JVEVNIiw0NTM6IlJFTU9WRS5MSVNULklURU0iLDQ1NDoiU0VMRUNULkxJU1QuSVRFTSIsNDU1OiJTRVQuQ09OVFJPTC5WQUxVRSIsNDU2OiJTQVZFLkNPUFkuQVMiLDQ1ODoiT1BUSU9OUy5MSVNUUy5BREQiLDQ1OToiT1BUSU9OUy5MSVNUUy5ERUxFVEUiLDQ2MDoiU0VSSUVTLkFYRVMiLDQ2MToiU0VSSUVTLlgiLDQ2MjoiU0VSSUVTLlkiLDQ2MzoiRVJST1JCQVIuWCIsNDY0OiJFUlJPUkJBUi5ZIiw0NjU6IkZPUk1BVC5DSEFSVCIsNDY2OiJTRVJJRVMuT1JERVIiLDQ2NzoiTUFJTC5MT0dPRkYiLDQ2ODoiQ0xFQVIuUk9VVElORy5TTElQIiw0Njk6IkFQUC5BQ1RJVkFURS5NSUNST1NPRlQiLDQ3MDoiTUFJTC5FRElULk1BSUxFUiIsNDcxOiJPTi5TSEVFVCIsNDcyOiJTVEFOREFSRC5XSURUSCIsNDczOiJTQ0VOQVJJTy5NRVJHRSIsNDc0OiJTVU1NQVJZLklORk8iLDQ3NToiRklORC5GSUxFIiw0NzY6IkFDVElWRS5DRUxMLkZPTlQiLDQ3NzoiRU5BQkxFLlRJUFdJWkFSRCIsNDc4OiJWQkEuTUFLRS5BRERJTiIsNDgwOiJJTlNFUlREQVRBVEFCTEUiLDQ4MToiV09SS0dST1VQLk9QVElPTlMiLDQ4MjoiTUFJTC5TRU5ELk1BSUxFUiIsNDg1OiJBVVRPQ09SUkVDVCIsNDg5OiJQT1NULkRPQ1VNRU5UIiw0OTE6IlBJQ0tMSVNUIiw0OTM6IlZJRVcuU0hPVyIsNDk0OiJWSUVXLkRFRklORSIsNDk1OiJWSUVXLkRFTEVURSIsNTA5OiJTSEVFVC5CQUNLR1JPVU5EIiw1MTA6IklOU0VSVC5NQVAuT0JKRUNUIiw1MTE6Ik9QVElPTlMuTUVOT05PIiw1MTc6Ik1TT0NIRUNLUyIsNTE4OiJOT1JNQUwiLDUxOToiTEFZT1VUIiw1MjA6IlJNLlBSSU5ULkFSRUEiLDUyMToiQ0xFQVIuUFJJTlQuQVJFQSIsNTIyOiJBREQuUFJJTlQuQVJFQSIsNTIzOiJNT1ZFLkJSSyIsNTQ1OiJISURFQ1VSUi5OT1RFIiw1NDY6IkhJREVBTEwuTk9URVMiLDU0NzoiREVMRVRFLk5PVEUiLDU0ODoiVFJBVkVSU0UuTk9URVMiLDU0OToiQUNUSVZBVEUuTk9URVMiLDYyMDoiUFJPVEVDVC5SRVZJU0lPTlMiLDYyMToiVU5QUk9URUNULlJFVklTSU9OUyIsNjQ3OiJPUFRJT05TLk1FIiw2NTM6IldFQi5QVUJMSVNIIiw2Njc6Ik5FV1dFQlFVRVJZIiw2NzM6IlBJVk9ULlRBQkxFLkNIQVJUIiw3NTM6Ik9QVElPTlMuU0FWRSIsNzU1OiJPUFRJT05TLlNQRUxMIiw4MDg6IkhJREVBTEwuSU5LQU5OT1RTIn0sTnM9ezA6IkNPVU5UIiwxOiJJRiIsMjoiSVNOQSIsMzoiSVNFUlJPUiIsNDoiU1VNIiw1OiJBVkVSQUdFIiw2OiJNSU4iLDc6Ik1BWCIsODoiUk9XIiw5OiJDT0xVTU4iLDEwOiJOQSIsMTE6Ik5QViIsMTI6IlNUREVWIiwxMzoiRE9MTEFSIiwxNDoiRklYRUQiLDE1OiJTSU4iLDE2OiJDT1MiLDE3OiJUQU4iLDE4OiJBVEFOIiwxOToiUEkiLDIwOiJTUVJUIiwyMToiRVhQIiwyMjoiTE4iLDIzOiJMT0cxMCIsMjQ6IkFCUyIsMjU6IklOVCIsMjY6IlNJR04iLDI3OiJST1VORCIsMjg6IkxPT0tVUCIsMjk6IklOREVYIiwzMDoiUkVQVCIsMzE6Ik1JRCIsMzI6IkxFTiIsMzM6IlZBTFVFIiwzNDoiVFJVRSIsMzU6IkZBTFNFIiwzNjoiQU5EIiwzNzoiT1IiLDM4OiJOT1QiLDM5OiJNT0QiLDQwOiJEQ09VTlQiLDQxOiJEU1VNIiw0MjoiREFWRVJBR0UiLDQzOiJETUlOIiw0NDoiRE1BWCIsNDU6IkRTVERFViIsNDY6IlZBUiIsNDc6IkRWQVIiLDQ4OiJURVhUIiw0OToiTElORVNUIiw1MDoiVFJFTkQiLDUxOiJMT0dFU1QiLDUyOiJHUk9XVEgiLDUzOiJHT1RPIiw1NDoiSEFMVCIsNTU6IlJFVFVSTiIsNTY6IlBWIiw1NzoiRlYiLDU4OiJOUEVSIiw1OToiUE1UIiw2MDoiUkFURSIsNjE6Ik1JUlIiLDYyOiJJUlIiLDYzOiJSQU5EIiw2NDoiTUFUQ0giLDY1OiJEQVRFIiw2NjoiVElNRSIsNjc6IkRBWSIsNjg6Ik1PTlRIIiw2OToiWUVBUiIsNzA6IldFRUtEQVkiLDcxOiJIT1VSIiw3MjoiTUlOVVRFIiw3MzoiU0VDT05EIiw3NDoiTk9XIiw3NToiQVJFQVMiLDc2OiJST1dTIiw3NzoiQ09MVU1OUyIsNzg6Ik9GRlNFVCIsNzk6IkFCU1JFRiIsODA6IlJFTFJFRiIsODE6IkFSR1VNRU5UIiw4MjoiU0VBUkNIIiw4MzoiVFJBTlNQT1NFIiw4NDoiRVJST1IiLDg1OiJTVEVQIiw4NjoiVFlQRSIsODc6IkVDSE8iLDg4OiJTRVQuTkFNRSIsODk6IkNBTExFUiIsOTA6IkRFUkVGIiw5MToiV0lORE9XUyIsOTI6IlNFUklFUyIsOTM6IkRPQ1VNRU5UUyIsOTQ6IkFDVElWRS5DRUxMIiw5NToiU0VMRUNUSU9OIiw5NjoiUkVTVUxUIiw5NzoiQVRBTjIiLDk4OiJBU0lOIiw5OToiQUNPUyIsMTAwOiJDSE9PU0UiLDEwMToiSExPT0tVUCIsMTAyOiJWTE9PS1VQIiwxMDM6IkxJTktTIiwxMDQ6IklOUFVUIiwxMDU6IklTUkVGIiwxMDY6IkdFVC5GT1JNVUxBIiwxMDc6IkdFVC5OQU1FIiwxMDg6IlNFVC5WQUxVRSIsMTA5OiJMT0ciLDExMDoiRVhFQyIsMTExOiJDSEFSIiwxMTI6IkxPV0VSIiwxMTM6IlVQUEVSIiwxMTQ6IlBST1BFUiIsMTE1OiJMRUZUIiwxMTY6IlJJR0hUIiwxMTc6IkVYQUNUIiwxMTg6IlRSSU0iLDExOToiUkVQTEFDRSIsMTIwOiJTVUJTVElUVVRFIiwxMjE6IkNPREUiLDEyMjoiTkFNRVMiLDEyMzoiRElSRUNUT1JZIiwxMjQ6IkZJTkQiLDEyNToiQ0VMTCIsMTI2OiJJU0VSUiIsMTI3OiJJU1RFWFQiLDEyODoiSVNOVU1CRVIiLDEyOToiSVNCTEFOSyIsMTMwOiJUIiwxMzE6Ik4iLDEzMjoiRk9QRU4iLDEzMzoiRkNMT1NFIiwxMzQ6IkZTSVpFIiwxMzU6IkZSRUFETE4iLDEzNjoiRlJFQUQiLDEzNzoiRldSSVRFTE4iLDEzODoiRldSSVRFIiwxMzk6IkZQT1MiLDE0MDoiREFURVZBTFVFIiwxNDE6IlRJTUVWQUxVRSIsMTQyOiJTTE4iLDE0MzoiU1lEIiwxNDQ6IkREQiIsMTQ1OiJHRVQuREVGIiwxNDY6IlJFRlRFWFQiLDE0NzoiVEVYVFJFRiIsMTQ4OiJJTkRJUkVDVCIsMTQ5OiJSRUdJU1RFUiIsMTUwOiJDQUxMIiwxNTE6IkFERC5CQVIiLDE1MjoiQURELk1FTlUiLDE1MzoiQURELkNPTU1BTkQiLDE1NDoiRU5BQkxFLkNPTU1BTkQiLDE1NToiQ0hFQ0suQ09NTUFORCIsMTU2OiJSRU5BTUUuQ09NTUFORCIsMTU3OiJTSE9XLkJBUiIsMTU4OiJERUxFVEUuTUVOVSIsMTU5OiJERUxFVEUuQ09NTUFORCIsMTYwOiJHRVQuQ0hBUlQuSVRFTSIsMTYxOiJESUFMT0cuQk9YIiwxNjI6IkNMRUFOIiwxNjM6Ik1ERVRFUk0iLDE2NDoiTUlOVkVSU0UiLDE2NToiTU1VTFQiLDE2NjoiRklMRVMiLDE2NzoiSVBNVCIsMTY4OiJQUE1UIiwxNjk6IkNPVU5UQSIsMTcwOiJDQU5DRUwuS0VZIiwxNzE6IkZPUiIsMTcyOiJXSElMRSIsMTczOiJCUkVBSyIsMTc0OiJORVhUIiwxNzU6IklOSVRJQVRFIiwxNzY6IlJFUVVFU1QiLDE3NzoiUE9LRSIsMTc4OiJFWEVDVVRFIiwxNzk6IlRFUk1JTkFURSIsMTgwOiJSRVNUQVJUIiwxODE6IkhFTFAiLDE4MjoiR0VULkJBUiIsMTgzOiJQUk9EVUNUIiwxODQ6IkZBQ1QiLDE4NToiR0VULkNFTEwiLDE4NjoiR0VULldPUktTUEFDRSIsMTg3OiJHRVQuV0lORE9XIiwxODg6IkdFVC5ET0NVTUVOVCIsMTg5OiJEUFJPRFVDVCIsMTkwOiJJU05PTlRFWFQiLDE5MToiR0VULk5PVEUiLDE5MjoiTk9URSIsMTkzOiJTVERFVlAiLDE5NDoiVkFSUCIsMTk1OiJEU1RERVZQIiwxOTY6IkRWQVJQIiwxOTc6IlRSVU5DIiwxOTg6IklTTE9HSUNBTCIsMTk5OiJEQ09VTlRBIiwyMDA6IkRFTEVURS5CQVIiLDIwMToiVU5SRUdJU1RFUiIsMjA0OiJVU0RPTExBUiIsMjA1OiJGSU5EQiIsMjA2OiJTRUFSQ0hCIiwyMDc6IlJFUExBQ0VCIiwyMDg6IkxFRlRCIiwyMDk6IlJJR0hUQiIsMjEwOiJNSURCIiwyMTE6IkxFTkIiLDIxMjoiUk9VTkRVUCIsMjEzOiJST1VORERPV04iLDIxNDoiQVNDIiwyMTU6IkRCQ1MiLDIxNjoiUkFOSyIsMjE5OiJBRERSRVNTIiwyMjA6IkRBWVMzNjAiLDIyMToiVE9EQVkiLDIyMjoiVkRCIiwyMjM6IkVMU0UiLDIyNDoiRUxTRS5JRiIsMjI1OiJFTkQuSUYiLDIyNjoiRk9SLkNFTEwiLDIyNzoiTUVESUFOIiwyMjg6IlNVTVBST0RVQ1QiLDIyOToiU0lOSCIsMjMwOiJDT1NIIiwyMzE6IlRBTkgiLDIzMjoiQVNJTkgiLDIzMzoiQUNPU0giLDIzNDoiQVRBTkgiLDIzNToiREdFVCIsMjM2OiJDUkVBVEUuT0JKRUNUIiwyMzc6IlZPTEFUSUxFIiwyMzg6IkxBU1QuRVJST1IiLDIzOToiQ1VTVE9NLlVORE8iLDI0MDoiQ1VTVE9NLlJFUEVBVCIsMjQxOiJGT1JNVUxBLkNPTlZFUlQiLDI0MjoiR0VULkxJTksuSU5GTyIsMjQzOiJURVhULkJPWCIsMjQ0OiJJTkZPIiwyNDU6IkdST1VQIiwyNDY6IkdFVC5PQkpFQ1QiLDI0NzoiREIiLDI0ODoiUEFVU0UiLDI1MToiUkVTVU1FIiwyNTI6IkZSRVFVRU5DWSIsMjUzOiJBREQuVE9PTEJBUiIsMjU0OiJERUxFVEUuVE9PTEJBUiIsMjU1OiJVc2VyIiwyNTY6IlJFU0VULlRPT0xCQVIiLDI1NzoiRVZBTFVBVEUiLDI1ODoiR0VULlRPT0xCQVIiLDI1OToiR0VULlRPT0wiLDI2MDoiU1BFTExJTkcuQ0hFQ0siLDI2MToiRVJST1IuVFlQRSIsMjYyOiJBUFAuVElUTEUiLDI2MzoiV0lORE9XLlRJVExFIiwyNjQ6IlNBVkUuVE9PTEJBUiIsMjY1OiJFTkFCTEUuVE9PTCIsMjY2OiJQUkVTUy5UT09MIiwyNjc6IlJFR0lTVEVSLklEIiwyNjg6IkdFVC5XT1JLQk9PSyIsMjY5OiJBVkVERVYiLDI3MDoiQkVUQURJU1QiLDI3MToiR0FNTUFMTiIsMjcyOiJCRVRBSU5WIiwyNzM6IkJJTk9NRElTVCIsMjc0OiJDSElESVNUIiwyNzU6IkNISUlOViIsMjc2OiJDT01CSU4iLDI3NzoiQ09ORklERU5DRSIsMjc4OiJDUklUQklOT00iLDI3OToiRVZFTiIsMjgwOiJFWFBPTkRJU1QiLDI4MToiRkRJU1QiLDI4MjoiRklOViIsMjgzOiJGSVNIRVIiLDI4NDoiRklTSEVSSU5WIiwyODU6IkZMT09SIiwyODY6IkdBTU1BRElTVCIsMjg3OiJHQU1NQUlOViIsMjg4OiJDRUlMSU5HIiwyODk6IkhZUEdFT01ESVNUIiwyOTA6IkxPR05PUk1ESVNUIiwyOTE6IkxPR0lOViIsMjkyOiJORUdCSU5PTURJU1QiLDI5MzoiTk9STURJU1QiLDI5NDoiTk9STVNESVNUIiwyOTU6Ik5PUk1JTlYiLDI5NjoiTk9STVNJTlYiLDI5NzoiU1RBTkRBUkRJWkUiLDI5ODoiT0REIiwyOTk6IlBFUk1VVCIsMzAwOiJQT0lTU09OIiwzMDE6IlRESVNUIiwzMDI6IldFSUJVTEwiLDMwMzoiU1VNWE1ZMiIsMzA0OiJTVU1YMk1ZMiIsMzA1OiJTVU1YMlBZMiIsMzA2OiJDSElURVNUIiwzMDc6IkNPUlJFTCIsMzA4OiJDT1ZBUiIsMzA5OiJGT1JFQ0FTVCIsMzEwOiJGVEVTVCIsMzExOiJJTlRFUkNFUFQiLDMxMjoiUEVBUlNPTiIsMzEzOiJSU1EiLDMxNDoiU1RFWVgiLDMxNToiU0xPUEUiLDMxNjoiVFRFU1QiLDMxNzoiUFJPQiIsMzE4OiJERVZTUSIsMzE5OiJHRU9NRUFOIiwzMjA6IkhBUk1FQU4iLDMyMToiU1VNU1EiLDMyMjoiS1VSVCIsMzIzOiJTS0VXIiwzMjQ6IlpURVNUIiwzMjU6IkxBUkdFIiwzMjY6IlNNQUxMIiwzMjc6IlFVQVJUSUxFIiwzMjg6IlBFUkNFTlRJTEUiLDMyOToiUEVSQ0VOVFJBTksiLDMzMDoiTU9ERSIsMzMxOiJUUklNTUVBTiIsMzMyOiJUSU5WIiwzMzQ6Ik1PVklFLkNPTU1BTkQiLDMzNToiR0VULk1PVklFIiwzMzY6IkNPTkNBVEVOQVRFIiwzMzc6IlBPV0VSIiwzMzg6IlBJVk9ULkFERC5EQVRBIiwzMzk6IkdFVC5QSVZPVC5UQUJMRSIsMzQwOiJHRVQuUElWT1QuRklFTEQiLDM0MToiR0VULlBJVk9ULklURU0iLDM0MjoiUkFESUFOUyIsMzQzOiJERUdSRUVTIiwzNDQ6IlNVQlRPVEFMIiwzNDU6IlNVTUlGIiwzNDY6IkNPVU5USUYiLDM0NzoiQ09VTlRCTEFOSyIsMzQ4OiJTQ0VOQVJJTy5HRVQiLDM0OToiT1BUSU9OUy5MSVNUUy5HRVQiLDM1MDoiSVNQTVQiLDM1MToiREFURURJRiIsMzUyOiJEQVRFU1RSSU5HIiwzNTM6Ik5VTUJFUlNUUklORyIsMzU0OiJST01BTiIsMzU1OiJPUEVOLkRJQUxPRyIsMzU2OiJTQVZFLkRJQUxPRyIsMzU3OiJWSUVXLkdFVCIsMzU4OiJHRVRQSVZPVERBVEEiLDM1OToiSFlQRVJMSU5LIiwzNjA6IlBIT05FVElDIiwzNjE6IkFWRVJBR0VBIiwzNjI6Ik1BWEEiLDM2MzoiTUlOQSIsMzY0OiJTVERFVlBBIiwzNjU6IlZBUlBBIiwzNjY6IlNUREVWQSIsMzY3OiJWQVJBIiwzNjg6IkJBSFRURVhUIiwzNjk6IlRIQUlEQVlPRldFRUsiLDM3MDoiVEhBSURJR0lUIiwzNzE6IlRIQUlNT05USE9GWUVBUiIsMzcyOiJUSEFJTlVNU09VTkQiLDM3MzoiVEhBSU5VTVNUUklORyIsMzc0OiJUSEFJU1RSSU5HTEVOR1RIIiwzNzU6IklTVEhBSURJR0lUIiwzNzY6IlJPVU5EQkFIVERPV04iLDM3NzoiUk9VTkRCQUhUVVAiLDM3ODoiVEhBSVlFQVIiLDM3OToiUlREIiwzODA6IkNVQkVWQUxVRSIsMzgxOiJDVUJFTUVNQkVSIiwzODI6IkNVQkVNRU1CRVJQUk9QRVJUWSIsMzgzOiJDVUJFUkFOS0VETUVNQkVSIiwzODQ6IkhFWDJCSU4iLDM4NToiSEVYMkRFQyIsMzg2OiJIRVgyT0NUIiwzODc6IkRFQzJCSU4iLDM4ODoiREVDMkhFWCIsMzg5OiJERUMyT0NUIiwzOTA6Ik9DVDJCSU4iLDM5MToiT0NUMkhFWCIsMzkyOiJPQ1QyREVDIiwzOTM6IkJJTjJERUMiLDM5NDoiQklOMk9DVCIsMzk1OiJCSU4ySEVYIiwzOTY6IklNU1VCIiwzOTc6IklNRElWIiwzOTg6IklNUE9XRVIiLDM5OToiSU1BQlMiLDQwMDoiSU1TUVJUIiw0MDE6IklNTE4iLDQwMjoiSU1MT0cyIiw0MDM6IklNTE9HMTAiLDQwNDoiSU1TSU4iLDQwNToiSU1DT1MiLDQwNjoiSU1FWFAiLDQwNzoiSU1BUkdVTUVOVCIsNDA4OiJJTUNPTkpVR0FURSIsNDA5OiJJTUFHSU5BUlkiLDQxMDoiSU1SRUFMIiw0MTE6IkNPTVBMRVgiLDQxMjoiSU1TVU0iLDQxMzoiSU1QUk9EVUNUIiw0MTQ6IlNFUklFU1NVTSIsNDE1OiJGQUNURE9VQkxFIiw0MTY6IlNRUlRQSSIsNDE3OiJRVU9USUVOVCIsNDE4OiJERUxUQSIsNDE5OiJHRVNURVAiLDQyMDoiSVNFVkVOIiw0MjE6IklTT0REIiw0MjI6Ik1ST1VORCIsNDIzOiJFUkYiLDQyNDoiRVJGQyIsNDI1OiJCRVNTRUxKIiw0MjY6IkJFU1NFTEsiLDQyNzoiQkVTU0VMWSIsNDI4OiJCRVNTRUxJIiw0Mjk6IlhJUlIiLDQzMDoiWE5QViIsNDMxOiJQUklDRU1BVCIsNDMyOiJZSUVMRE1BVCIsNDMzOiJJTlRSQVRFIiw0MzQ6IlJFQ0VJVkVEIiw0MzU6IkRJU0MiLDQzNjoiUFJJQ0VESVNDIiw0Mzc6IllJRUxERElTQyIsNDM4OiJUQklMTEVRIiw0Mzk6IlRCSUxMUFJJQ0UiLDQ0MDoiVEJJTExZSUVMRCIsNDQxOiJQUklDRSIsNDQyOiJZSUVMRCIsNDQzOiJET0xMQVJERSIsNDQ0OiJET0xMQVJGUiIsNDQ1OiJOT01JTkFMIiw0NDY6IkVGRkVDVCIsNDQ3OiJDVU1QUklOQyIsNDQ4OiJDVU1JUE1UIiw0NDk6IkVEQVRFIiw0NTA6IkVPTU9OVEgiLDQ1MToiWUVBUkZSQUMiLDQ1MjoiQ09VUERBWUJTIiw0NTM6IkNPVVBEQVlTIiw0NTQ6IkNPVVBEQVlTTkMiLDQ1NToiQ09VUE5DRCIsNDU2OiJDT1VQTlVNIiw0NTc6IkNPVVBQQ0QiLDQ1ODoiRFVSQVRJT04iLDQ1OToiTURVUkFUSU9OIiw0NjA6Ik9ERExQUklDRSIsNDYxOiJPRERMWUlFTEQiLDQ2MjoiT0RERlBSSUNFIiw0NjM6Ik9EREZZSUVMRCIsNDY0OiJSQU5EQkVUV0VFTiIsNDY1OiJXRUVLTlVNIiw0NjY6IkFNT1JERUdSQyIsNDY3OiJBTU9STElOQyIsNDY4OiJDT05WRVJUIiw3MjQ6IlNIRUVUSlMiLDQ2OToiQUNDUklOVCIsNDcwOiJBQ0NSSU5UTSIsNDcxOiJXT1JLREFZIiw0NzI6Ik5FVFdPUktEQVlTIiw0NzM6IkdDRCIsNDc0OiJNVUxUSU5PTUlBTCIsNDc1OiJMQ00iLDQ3NjoiRlZTQ0hFRFVMRSIsNDc3OiJDVUJFS1BJTUVNQkVSIiw0Nzg6IkNVQkVTRVQiLDQ3OToiQ1VCRVNFVENPVU5UIiw0ODA6IklGRVJST1IiLDQ4MToiQ09VTlRJRlMiLDQ4MjoiU1VNSUZTIiw0ODM6IkFWRVJBR0VJRiIsNDg0OiJBVkVSQUdFSUZTIn0sYmg9ezI6MSwzOjEsMTA6MCwxNToxLDE2OjEsMTc6MSwxODoxLDE5OjAsMjA6MSwyMToxLDIyOjEsMjM6MSwyNDoxLDI1OjEsMjY6MSwyNzoyLDMwOjIsMzE6MywzMjoxLDMzOjEsMzQ6MCwzNTowLDM4OjEsMzk6Miw0MDozLDQxOjMsNDI6Myw0MzozLDQ0OjMsNDU6Myw0NzozLDQ4OjIsNTM6MSw2MTozLDYzOjAsNjU6Myw2NjozLDY3OjEsNjg6MSw2OToxLDcwOjEsNzE6MSw3MjoxLDczOjEsNzQ6MCw3NToxLDc2OjEsNzc6MSw3OToyLDgwOjIsODM6MSw4NTowLDg2OjEsODk6MCw5MDoxLDk0OjAsOTU6MCw5NzoyLDk4OjEsOTk6MSwxMDE6MywxMDI6MywxMDU6MSwxMDY6MSwxMDg6MiwxMTE6MSwxMTI6MSwxMTM6MSwxMTQ6MSwxMTc6MiwxMTg6MSwxMTk6NCwxMjE6MSwxMjY6MSwxMjc6MSwxMjg6MSwxMjk6MSwxMzA6MSwxMzE6MSwxMzM6MSwxMzQ6MSwxMzU6MSwxMzY6MiwxMzc6MiwxMzg6MiwxNDA6MSwxNDE6MSwxNDI6MywxNDM6NCwxNDQ6NCwxNjE6MSwxNjI6MSwxNjM6MSwxNjQ6MSwxNjU6MiwxNzI6MSwxNzU6MiwxNzY6MiwxNzc6MywxNzg6MiwxNzk6MSwxODQ6MSwxODY6MSwxODk6MywxOTA6MSwxOTU6MywxOTY6MywxOTc6MSwxOTg6MSwxOTk6MywyMDE6MSwyMDc6NCwyMTA6MywyMTE6MSwyMTI6MiwyMTM6MiwyMTQ6MSwyMTU6MSwyMjU6MCwyMjk6MSwyMzA6MSwyMzE6MSwyMzI6MSwyMzM6MSwyMzQ6MSwyMzU6MywyNDQ6MSwyNDc6NCwyNTI6MiwyNTc6MSwyNjE6MSwyNzE6MSwyNzM6NCwyNzQ6MiwyNzU6MiwyNzY6MiwyNzc6MywyNzg6MywyNzk6MSwyODA6MywyODE6MywyODI6MywyODM6MSwyODQ6MSwyODU6MiwyODY6NCwyODc6MywyODg6MiwyODk6NCwyOTA6MywyOTE6MywyOTI6MywyOTM6NCwyOTQ6MSwyOTU6MywyOTY6MSwyOTc6MywyOTg6MSwyOTk6MiwzMDA6MywzMDE6MywzMDI6NCwzMDM6MiwzMDQ6MiwzMDU6MiwzMDY6MiwzMDc6MiwzMDg6MiwzMDk6MywzMTA6MiwzMTE6MiwzMTI6MiwzMTM6MiwzMTQ6MiwzMTU6MiwzMTY6NCwzMjU6MiwzMjY6MiwzMjc6MiwzMjg6MiwzMzE6MiwzMzI6MiwzMzc6MiwzNDI6MSwzNDM6MSwzNDY6MiwzNDc6MSwzNTA6NCwzNTE6MywzNTI6MSwzNTM6MiwzNjA6MSwzNjg6MSwzNjk6MSwzNzA6MSwzNzE6MSwzNzI6MSwzNzM6MSwzNzQ6MSwzNzU6MSwzNzY6MSwzNzc6MSwzNzg6MSwzODI6MywzODU6MSwzOTI6MSwzOTM6MSwzOTY6MiwzOTc6MiwzOTg6MiwzOTk6MSw0MDA6MSw0MDE6MSw0MDI6MSw0MDM6MSw0MDQ6MSw0MDU6MSw0MDY6MSw0MDc6MSw0MDg6MSw0MDk6MSw0MTA6MSw0MTQ6NCw0MTU6MSw0MTY6MSw0MTc6Miw0MjA6MSw0MjE6MSw0MjI6Miw0MjQ6MSw0MjU6Miw0MjY6Miw0Mjc6Miw0Mjg6Miw0MzA6Myw0Mzg6Myw0Mzk6Myw0NDA6Myw0NDM6Miw0NDQ6Miw0NDU6Miw0NDY6Miw0NDc6Niw0NDg6Niw0NDk6Miw0NTA6Miw0NjQ6Miw0Njg6Myw0NzY6Miw0Nzk6MSw0ODA6Miw2NTUzNTowfTtmdW5jdGlvbiBQcyhlKXtyZXR1cm4gZS5zbGljZSgwLDMpPT0ib2Y6IiYmKGU9ZS5zbGljZSgzKSksZS5jaGFyQ29kZUF0KDApPT02MSYmKGU9ZS5zbGljZSgxKSxlLmNoYXJDb2RlQXQoMCk9PTYxJiYoZT1lLnNsaWNlKDEpKSksZT1lLnJlcGxhY2UoL0NPTVwuTUlDUk9TT0ZUXC4vZywiIiksZT1lLnJlcGxhY2UoL1xbKCg/OlwuW0EtWl0rWzAtOV0rKSg/OjpcLltBLVpdK1swLTldKyk/KVxdL2csZnVuY3Rpb24oYSxyKXtyZXR1cm4gci5yZXBsYWNlKC9cLi9nLCIiKX0pLGU9ZS5yZXBsYWNlKC9cWy4oI1tBLVpdKls/IV0pXF0vZywiJDEiKSxlLnJlcGxhY2UoL1s7fl0vZywiLCIpLnJlcGxhY2UoL1x8L2csIjsiKX1mdW5jdGlvbiB0MChlKXt2YXIgYT1lLnNwbGl0KCI6Iikscj1hWzBdLnNwbGl0KCIuIilbMF07cmV0dXJuW3IsYVswXS5zcGxpdCgiLiIpWzFdKyhhLmxlbmd0aD4xPyI6IisoYVsxXS5zcGxpdCgiLiIpWzFdfHxhWzFdLnNwbGl0KCIuIilbMF0pOiIiKV19dmFyICRhPXt9LFRhPXt9O2Z1bmN0aW9uIHphKGUsYSl7aWYoZSl7dmFyIHI9Wy43LC43LC43NSwuNzUsLjMsLjNdO2E9PSJ4bG1sIiYmKHI9WzEsMSwxLDEsLjUsLjVdKSxlLmxlZnQ9PW51bGwmJihlLmxlZnQ9clswXSksZS5yaWdodD09bnVsbCYmKGUucmlnaHQ9clsxXSksZS50b3A9PW51bGwmJihlLnRvcD1yWzJdKSxlLmJvdHRvbT09bnVsbCYmKGUuYm90dG9tPXJbM10pLGUuaGVhZGVyPT1udWxsJiYoZS5oZWFkZXI9cls0XSksZS5mb290ZXI9PW51bGwmJihlLmZvb3Rlcj1yWzVdKX19ZnVuY3Rpb24gTHMoZSxhLHIsbix0LHMpe3RyeXtuLmNlbGxORiYmKGUuej1kZVthXSl9Y2F0Y2goYyl7aWYobi5XVEYpdGhyb3cgY31pZighKGUudD09PSJ6IiYmIW4uY2VsbFN0eWxlcykpe2lmKGUudD09PSJkIiYmdHlwZW9mIGUudj09InN0cmluZyImJihlLnY9V2UoZS52KSksKCFufHxuLmNlbGxUZXh0IT09ITEpJiZlLnQhPT0ieiIpdHJ5e2lmKGRlW2FdPT1udWxsJiZlYShCaVthXXx8IkdlbmVyYWwiLGEpLGUudD09PSJlIillLnc9ZS53fHxpYVtlLnZdO2Vsc2UgaWYoYT09PTApaWYoZS50PT09Im4iKShlLnZ8MCk9PT1lLnY/ZS53PWUudi50b1N0cmluZygxMCk6ZS53PUZhKGUudik7ZWxzZSBpZihlLnQ9PT0iZCIpe3ZhciBpPXRyKGUudik7KGl8MCk9PT1pP2Uudz1pLnRvU3RyaW5nKDEwKTplLnc9RmEoaSl9ZWxzZXtpZihlLnY9PT12b2lkIDApcmV0dXJuIiI7ZS53PVFyKGUudixUYSl9ZWxzZSBlLnQ9PT0iZCI/ZS53PXhyKGEsdHIoZS52KSxUYSk6ZS53PXhyKGEsZS52LFRhKX1jYXRjaChjKXtpZihuLldURil0aHJvdyBjfWlmKG4uY2VsbFN0eWxlcyYmciE9bnVsbCl0cnl7ZS5zPXMuRmlsbHNbcl0sZS5zLmZnQ29sb3ImJmUucy5mZ0NvbG9yLnRoZW1lJiYhZS5zLmZnQ29sb3IucmdiJiYoZS5zLmZnQ29sb3IucmdiPXB0KHQudGhlbWVFbGVtZW50cy5jbHJTY2hlbWVbZS5zLmZnQ29sb3IudGhlbWVdLnJnYixlLnMuZmdDb2xvci50aW50fHwwKSxuLldURiYmKGUucy5mZ0NvbG9yLnJhd19yZ2I9dC50aGVtZUVsZW1lbnRzLmNsclNjaGVtZVtlLnMuZmdDb2xvci50aGVtZV0ucmdiKSksZS5zLmJnQ29sb3ImJmUucy5iZ0NvbG9yLnRoZW1lJiYoZS5zLmJnQ29sb3IucmdiPXB0KHQudGhlbWVFbGVtZW50cy5jbHJTY2hlbWVbZS5zLmJnQ29sb3IudGhlbWVdLnJnYixlLnMuYmdDb2xvci50aW50fHwwKSxuLldURiYmKGUucy5iZ0NvbG9yLnJhd19yZ2I9dC50aGVtZUVsZW1lbnRzLmNsclNjaGVtZVtlLnMuYmdDb2xvci50aGVtZV0ucmdiKSl9Y2F0Y2goYyl7aWYobi5XVEYmJnMuRmlsbHMpdGhyb3cgY319fWZ1bmN0aW9uIFVoKGUsYSl7dmFyIHI9T2UoYSk7ci5zLnI8PXIuZS5yJiZyLnMuYzw9ci5lLmMmJnIucy5yPj0wJiZyLnMuYz49MCYmKGVbIiFyZWYiXT1fZShyKSl9dmFyIEhoPS88KD86XHc6KT9tZXJnZUNlbGwgcmVmPSJbQS1aMC05Ol0rIlxzKltcL10/Pi9nLFZoPS88KD86XHcrOik/c2hlZXREYXRhW14+XSo+KFtcc1xTXSopPFwvKD86XHcrOik/c2hlZXREYXRhPi8sV2g9LzwoPzpcdzopP2h5cGVybGluayBbXj5dKj4vbWcsR2g9LyIoXHcqOlx3KikiLyxYaD0vPCg/Olx3Oik/Y29sXGJbXj5dKltcL10/Pi9nLCRoPS88KD86XHc6KT9hdXRvRmlsdGVyW14+XSooW1wvXXw+KFtcc1xTXSopPFwvKD86XHc6KT9hdXRvRmlsdGVyKT4vZyx6aD0vPCg/Olx3Oik/cGFnZU1hcmdpbnNbXj5dKlwvPi9nLE1zPS88KD86XHc6KT9zaGVldFByXGIoPzpbXj5hLXpdW14+XSopP1wvPi8sS2g9LzwoPzpcdzopP3NoZWV0UHJbXj5dKig/OltcL118PihbXHNcU10qKTxcLyg/Olx3Oik/c2hlZXRQcik+LyxZaD0vPCg/Olx3Oik/c2hlZXRWaWV3c1tePl0qKD86W1wvXXw+KFtcc1xTXSopPFwvKD86XHc6KT9zaGVldFZpZXdzKT4vO2Z1bmN0aW9uIGpoKGUsYSxyLG4sdCxzLGkpe2lmKCFlKXJldHVybiBlO258fChuPXsiIWlkIjp7fX0pO3ZhciBjPWEuZGVuc2U/W106e30sZj17czp7cjoyZTYsYzoyZTZ9LGU6e3I6MCxjOjB9fSxvPSIiLGw9IiIsaD1lLm1hdGNoKFZoKTtoPyhvPWUuc2xpY2UoMCxoLmluZGV4KSxsPWUuc2xpY2UoaC5pbmRleCtoWzBdLmxlbmd0aCkpOm89bD1lO3ZhciB4PW8ubWF0Y2goTXMpO3g/bjAoeFswXSxjLHQscik6KHg9by5tYXRjaChLaCkpJiZKaCh4WzBdLHhbMV18fCIiLGMsdCxyKTt2YXIgZD0oby5tYXRjaCgvPCg/Olx3KjopP2RpbWVuc2lvbi8pfHx7aW5kZXg6LTF9KS5pbmRleDtpZihkPjApe3ZhciB2PW8uc2xpY2UoZCxkKzUwKS5tYXRjaChHaCk7diYmVWgoYyx2WzFdKX12YXIgdT1vLm1hdGNoKFloKTt1JiZ1WzFdJiZhdSh1WzFdLHQpO3ZhciBnPVtdO2lmKGEuY2VsbFN0eWxlcyl7dmFyIEY9by5tYXRjaChYaCk7RiYmUWgoZyxGKX1oJiZ0dShoWzFdLGMsYSxmLHMsaSk7dmFyIHk9bC5tYXRjaCgkaCk7eSYmKGNbIiFhdXRvZmlsdGVyIl09ZXUoeVswXSkpO3ZhciBfPVtdLE49bC5tYXRjaChIaCk7aWYoTilmb3IoZD0wO2QhPU4ubGVuZ3RoOysrZClfW2RdPU9lKE5bZF0uc2xpY2UoTltkXS5pbmRleE9mKCciJykrMSkpO3ZhciBiPWwubWF0Y2goV2gpO2ImJlpoKGMsYixuKTt2YXIgST1sLm1hdGNoKHpoKTtpZihJJiYoY1siIW1hcmdpbnMiXT1xaChvZShJWzBdKSkpLCFjWyIhcmVmIl0mJmYuZS5jPj1mLnMuYyYmZi5lLnI+PWYucy5yJiYoY1siIXJlZiJdPV9lKGYpKSxhLnNoZWV0Um93cz4wJiZjWyIhcmVmIl0pe3ZhciBBPU9lKGNbIiFyZWYiXSk7YS5zaGVldFJvd3M8PStBLmUuciYmKEEuZS5yPWEuc2hlZXRSb3dzLTEsQS5lLnI+Zi5lLnImJihBLmUucj1mLmUuciksQS5lLnI8QS5zLnImJihBLnMucj1BLmUuciksQS5lLmM+Zi5lLmMmJihBLmUuYz1mLmUuYyksQS5lLmM8QS5zLmMmJihBLnMuYz1BLmUuYyksY1siIWZ1bGxyZWYiXT1jWyIhcmVmIl0sY1siIXJlZiJdPV9lKEEpKX1yZXR1cm4gZy5sZW5ndGg+MCYmKGNbIiFjb2xzIl09ZyksXy5sZW5ndGg+MCYmKGNbIiFtZXJnZXMiXT1fKSxjfWZ1bmN0aW9uIG4wKGUsYSxyLG4pe3ZhciB0PW9lKGUpO3IuU2hlZXRzW25dfHwoci5TaGVldHNbbl09e30pLHQuY29kZU5hbWUmJihyLlNoZWV0c1tuXS5Db2RlTmFtZT1FZShBZSh0LmNvZGVOYW1lKSkpfWZ1bmN0aW9uIEpoKGUsYSxyLG4sdCl7bjAoZS5zbGljZSgwLGUuaW5kZXhPZigiPiIpKSxyLG4sdCl9ZnVuY3Rpb24gWmgoZSxhLHIpe2Zvcih2YXIgbj1BcnJheS5pc0FycmF5KGUpLHQ9MDt0IT1hLmxlbmd0aDsrK3Qpe3ZhciBzPW9lKEFlKGFbdF0pLCEwKTtpZighcy5yZWYpcmV0dXJuO3ZhciBpPSgocnx8e30pWyIhaWQiXXx8W10pW3MuaWRdO2k/KHMuVGFyZ2V0PWkuVGFyZ2V0LHMubG9jYXRpb24mJihzLlRhcmdldCs9IiMiK0VlKHMubG9jYXRpb24pKSk6KHMuVGFyZ2V0PSIjIitFZShzLmxvY2F0aW9uKSxpPXtUYXJnZXQ6cy5UYXJnZXQsVGFyZ2V0TW9kZToiSW50ZXJuYWwifSkscy5SZWw9aSxzLnRvb2x0aXAmJihzLlRvb2x0aXA9cy50b29sdGlwLGRlbGV0ZSBzLnRvb2x0aXApO2Zvcih2YXIgYz1PZShzLnJlZiksZj1jLnMucjtmPD1jLmUucjsrK2YpZm9yKHZhciBvPWMucy5jO288PWMuZS5jOysrbyl7dmFyIGw9dWUoe2M6byxyOmZ9KTtuPyhlW2ZdfHwoZVtmXT1bXSksZVtmXVtvXXx8KGVbZl1bb109e3Q6InoiLHY6dm9pZCAwfSksZVtmXVtvXS5sPXMpOihlW2xdfHwoZVtsXT17dDoieiIsdjp2b2lkIDB9KSxlW2xdLmw9cyl9fX1mdW5jdGlvbiBxaChlKXt2YXIgYT17fTtyZXR1cm5bImxlZnQiLCJyaWdodCIsInRvcCIsImJvdHRvbSIsImhlYWRlciIsImZvb3RlciJdLmZvckVhY2goZnVuY3Rpb24ocil7ZVtyXSYmKGFbcl09cGFyc2VGbG9hdChlW3JdKSl9KSxhfWZ1bmN0aW9uIFFoKGUsYSl7Zm9yKHZhciByPSExLG49MDtuIT1hLmxlbmd0aDsrK24pe3ZhciB0PW9lKGFbbl0sITApO3QuaGlkZGVuJiYodC5oaWRkZW49U2UodC5oaWRkZW4pKTt2YXIgcz1wYXJzZUludCh0Lm1pbiwxMCktMSxpPXBhcnNlSW50KHQubWF4LDEwKS0xO2Zvcih0Lm91dGxpbmVMZXZlbCYmKHQubGV2ZWw9K3Qub3V0bGluZUxldmVsfHwwKSxkZWxldGUgdC5taW4sZGVsZXRlIHQubWF4LHQud2lkdGg9K3Qud2lkdGgsIXImJnQud2lkdGgmJihyPSEwLGUwKHQud2lkdGgpKSxfYSh0KTtzPD1pOyllW3MrK109WGUodCl9fWZ1bmN0aW9uIGV1KGUpe3ZhciBhPXtyZWY6KGUubWF0Y2goL3JlZj0iKFteIl0qKSIvKXx8W10pWzFdfTtyZXR1cm4gYX12YXIgcnU9LzwoPzpcdzopP3NoZWV0Vmlldyg/OltePmEtel1bXj5dKik/XC8/Pi87ZnVuY3Rpb24gYXUoZSxhKXthLlZpZXdzfHwoYS5WaWV3cz1be31dKSwoZS5tYXRjaChydSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHIsbil7dmFyIHQ9b2Uocik7YS5WaWV3c1tuXXx8KGEuVmlld3Nbbl09e30pLCt0Lnpvb21TY2FsZSYmKGEuVmlld3Nbbl0uem9vbT0rdC56b29tU2NhbGUpLFNlKHQucmlnaHRUb0xlZnQpJiYoYS5WaWV3c1tuXS5SVEw9ITApfSl9dmFyIHR1PWZ1bmN0aW9uKCl7dmFyIGU9LzwoPzpcdys6KT9jWyBcLz5dLyxhPS88XC8oPzpcdys6KT9yb3c+LyxyPS9yPVsiJ10oW14iJ10qKVsiJ10vLG49LzwoPzpcdys6KT9pcz4oW1xTXHNdKj8pPFwvKD86XHcrOik/aXM+Lyx0PS9yZWY9WyInXShbXiInXSopWyInXS8scz15YSgidiIpLGk9eWEoImYiKTtyZXR1cm4gZnVuY3Rpb24oZixvLGwsaCx4LGQpe2Zvcih2YXIgdj0wLHU9IiIsZz1bXSxGPVtdLHk9MCxfPTAsTj0wLGI9IiIsSSxBLFY9MCxEPTAseixHLFA9MCxKPTAsZmU9QXJyYXkuaXNBcnJheShkLkNlbGxYZikscmUsY2U9W10saWU9W10sRmU9QXJyYXkuaXNBcnJheShvKSxXPVtdLGxlPXt9LGhlPSExLFM9ISFsLnNoZWV0U3R1YnMsVT1mLnNwbGl0KGEpLFI9MCxPPVUubGVuZ3RoO1IhPU87KytSKXt1PVVbUl0udHJpbSgpO3ZhciBLPXUubGVuZ3RoO2lmKEshPT0wKXt2YXIgZWU9MDtlOmZvcih2PTA7djxLOysrdilzd2l0Y2godVt2XSl7Y2FzZSI+IjppZih1W3YtMV0hPSIvIil7Kyt2O2JyZWFrIGV9aWYobCYmbC5jZWxsU3R5bGVzKXtpZihBPW9lKHUuc2xpY2UoZWUsdiksITApLFY9QS5yIT1udWxsP3BhcnNlSW50KEEuciwxMCk6VisxLEQ9LTEsbC5zaGVldFJvd3MmJmwuc2hlZXRSb3dzPFYpY29udGludWU7bGU9e30saGU9ITEsQS5odCYmKGhlPSEwLGxlLmhwdD1wYXJzZUZsb2F0KEEuaHQpLGxlLmhweD1WYShsZS5ocHQpKSxBLmhpZGRlbj09IjEiJiYoaGU9ITAsbGUuaGlkZGVuPSEwKSxBLm91dGxpbmVMZXZlbCE9bnVsbCYmKGhlPSEwLGxlLmxldmVsPStBLm91dGxpbmVMZXZlbCksaGUmJihXW1YtMV09bGUpfWJyZWFrO2Nhc2UiPCI6ZWU9djticmVha31pZihlZT49dilicmVhaztpZihBPW9lKHUuc2xpY2UoZWUsdiksITApLFY9QS5yIT1udWxsP3BhcnNlSW50KEEuciwxMCk6VisxLEQ9LTEsIShsLnNoZWV0Um93cyYmbC5zaGVldFJvd3M8Vikpe2gucy5yPlYtMSYmKGgucy5yPVYtMSksaC5lLnI8Vi0xJiYoaC5lLnI9Vi0xKSxsJiZsLmNlbGxTdHlsZXMmJihsZT17fSxoZT0hMSxBLmh0JiYoaGU9ITAsbGUuaHB0PXBhcnNlRmxvYXQoQS5odCksbGUuaHB4PVZhKGxlLmhwdCkpLEEuaGlkZGVuPT0iMSImJihoZT0hMCxsZS5oaWRkZW49ITApLEEub3V0bGluZUxldmVsIT1udWxsJiYoaGU9ITAsbGUubGV2ZWw9K0Eub3V0bGluZUxldmVsKSxoZSYmKFdbVi0xXT1sZSkpLGc9dS5zbGljZSh2KS5zcGxpdChlKTtmb3IodmFyIG5lPTA7bmUhPWcubGVuZ3RoJiZnW25lXS50cmltKCkuY2hhckF0KDApPT0iPCI7KytuZSk7Zm9yKGc9Zy5zbGljZShuZSksdj0wO3YhPWcubGVuZ3RoOysrdilpZih1PWdbdl0udHJpbSgpLHUubGVuZ3RoIT09MCl7aWYoRj11Lm1hdGNoKHIpLHk9dixfPTAsTj0wLHU9IjxjICIrKHUuc2xpY2UoMCwxKT09IjwiPyI+IjoiIikrdSxGIT1udWxsJiZGLmxlbmd0aD09PTIpe2Zvcih5PTAsYj1GWzFdLF89MDtfIT1iLmxlbmd0aCYmISgoTj1iLmNoYXJDb2RlQXQoXyktNjQpPDF8fE4+MjYpOysrXyl5PTI2KnkrTjstLXksRD15fWVsc2UrK0Q7Zm9yKF89MDtfIT11Lmxlbmd0aCYmdS5jaGFyQ29kZUF0KF8pIT09NjI7KytfKTtpZigrK18sQT1vZSh1LnNsaWNlKDAsXyksITApLEEucnx8KEEucj11ZSh7cjpWLTEsYzpEfSkpLGI9dS5zbGljZShfKSxJPXt0OiIifSwoRj1iLm1hdGNoKHMpKSE9bnVsbCYmRlsxXSE9PSIiJiYoSS52PUVlKEZbMV0pKSxsLmNlbGxGb3JtdWxhKXtpZigoRj1iLm1hdGNoKGkpKSE9bnVsbCYmRlsxXSE9PSIiKXtpZihJLmY9RWUoQWUoRlsxXSkpLnJlcGxhY2UoL1xyXG4vZyxgCmApLGwueGxmbnx8KEkuZj13cyhJLmYpKSxGWzBdLmluZGV4T2YoJ3Q9ImFycmF5IicpPi0xKUkuRj0oYi5tYXRjaCh0KXx8W10pWzFdLEkuRi5pbmRleE9mKCI6Iik+LTEmJmNlLnB1c2goW09lKEkuRiksSS5GXSk7ZWxzZSBpZihGWzBdLmluZGV4T2YoJ3Q9InNoYXJlZCInKT4tMSl7Rz1vZShGWzBdKTt2YXIgcT1FZShBZShGWzFdKSk7bC54bGZufHwocT13cyhxKSksaWVbcGFyc2VJbnQoRy5zaSwxMCldPVtHLHEsQS5yXX19ZWxzZShGPWIubWF0Y2goLzxmW14+XSpcLz4vKSkmJihHPW9lKEZbMF0pLGllW0cuc2ldJiYoSS5mPWQxKGllW0cuc2ldWzFdLGllW0cuc2ldWzJdLEEucikpKTt2YXIgaj1ucihBLnIpO2ZvcihfPTA7XzxjZS5sZW5ndGg7KytfKWoucj49Y2VbX11bMF0ucy5yJiZqLnI8PWNlW19dWzBdLmUuciYmai5jPj1jZVtfXVswXS5zLmMmJmouYzw9Y2VbX11bMF0uZS5jJiYoSS5GPWNlW19dWzFdKX1pZihBLnQ9PW51bGwmJkkudj09PXZvaWQgMClpZihJLmZ8fEkuRilJLnY9MCxJLnQ9Im4iO2Vsc2UgaWYoUylJLnQ9InoiO2Vsc2UgY29udGludWU7ZWxzZSBJLnQ9QS50fHwibiI7c3dpdGNoKGgucy5jPkQmJihoLnMuYz1EKSxoLmUuYzxEJiYoaC5lLmM9RCksSS50KXtjYXNlIm4iOmlmKEkudj09IiJ8fEkudj09bnVsbCl7aWYoIVMpY29udGludWU7SS50PSJ6In1lbHNlIEkudj1wYXJzZUZsb2F0KEkudik7YnJlYWs7Y2FzZSJzIjppZih0eXBlb2YgSS52PiJ1Iil7aWYoIVMpY29udGludWU7SS50PSJ6In1lbHNlIHo9JGFbcGFyc2VJbnQoSS52LDEwKV0sSS52PXoudCxJLnI9ei5yLGwuY2VsbEhUTUwmJihJLmg9ei5oKTticmVhaztjYXNlInN0ciI6SS50PSJzIixJLnY9SS52IT1udWxsP0FlKEkudik6IiIsbC5jZWxsSFRNTCYmKEkuaD1QdChJLnYpKTticmVhaztjYXNlImlubGluZVN0ciI6Rj1iLm1hdGNoKG4pLEkudD0icyIsRiE9bnVsbCYmKHo9WnQoRlsxXSkpPyhJLnY9ei50LGwuY2VsbEhUTUwmJihJLmg9ei5oKSk6SS52PSIiO2JyZWFrO2Nhc2UiYiI6SS52PVNlKEkudik7YnJlYWs7Y2FzZSJkIjpsLmNlbGxEYXRlcz9JLnY9V2UoSS52LDEpOihJLnY9dHIoV2UoSS52LDEpKSxJLnQ9Im4iKTticmVhaztjYXNlImUiOighbHx8bC5jZWxsVGV4dCE9PSExKSYmKEkudz1JLnYpLEkudj1VbltJLnZdO2JyZWFrfWlmKFA9Sj0wLHJlPW51bGwsZmUmJkEucyE9PXZvaWQgMCYmKHJlPWQuQ2VsbFhmW0Euc10scmUhPW51bGwmJihyZS5udW1GbXRJZCE9bnVsbCYmKFA9cmUubnVtRm10SWQpLGwuY2VsbFN0eWxlcyYmcmUuZmlsbElkIT1udWxsJiYoSj1yZS5maWxsSWQpKSksTHMoSSxQLEosbCx4LGQpLGwuY2VsbERhdGVzJiZmZSYmSS50PT0ibiImJnhhKGRlW1BdKSYmKEkudD0iZCIsSS52PWl0KEkudikpLEEuY20mJmwueGxtZXRhKXt2YXIgVGU9KGwueGxtZXRhLkNlbGx8fFtdKVsrQS5jbS0xXTtUZSYmVGUudHlwZT09IlhMREFQUiImJihJLkQ9ITApfWlmKEZlKXt2YXIgQz1ucihBLnIpO29bQy5yXXx8KG9bQy5yXT1bXSksb1tDLnJdW0MuY109SX1lbHNlIG9bQS5yXT1JfX19fVcubGVuZ3RoPjAmJihvWyIhcm93cyJdPVcpfX0oKTtmdW5jdGlvbiBudShlLGEpe3ZhciByPXt9LG49ZS5sK2E7ci5yPWUucmVhZF9zaGlmdCg0KSxlLmwrPTQ7dmFyIHQ9ZS5yZWFkX3NoaWZ0KDIpO2UubCs9MTt2YXIgcz1lLnJlYWRfc2hpZnQoMSk7cmV0dXJuIGUubD1uLHMmNyYmKHIubGV2ZWw9cyY3KSxzJjE2JiYoci5oaWRkZW49ITApLHMmMzImJihyLmhwdD10LzIwKSxyfXZhciBzdT1uYTtmdW5jdGlvbiBpdSgpe31mdW5jdGlvbiBjdShlLGEpe3ZhciByPXt9LG49ZVtlLmxdO3JldHVybisrZS5sLHIuYWJvdmU9IShuJjY0KSxyLmxlZnQ9IShuJjEyOCksZS5sKz0xOCxyLm5hbWU9Q2MoZSkscn1mdW5jdGlvbiBmdShlKXt2YXIgYT12cihlKTtyZXR1cm5bYV19ZnVuY3Rpb24gb3UoZSl7dmFyIGE9dGEoZSk7cmV0dXJuW2FdfWZ1bmN0aW9uIGx1KGUpe3ZhciBhPXZyKGUpLHI9ZS5yZWFkX3NoaWZ0KDEpO3JldHVyblthLHIsImIiXX1mdW5jdGlvbiBodShlKXt2YXIgYT10YShlKSxyPWUucmVhZF9zaGlmdCgxKTtyZXR1cm5bYSxyLCJiIl19ZnVuY3Rpb24gdXUoZSl7dmFyIGE9dnIoZSkscj1lLnJlYWRfc2hpZnQoMSk7cmV0dXJuW2EsciwiZSJdfWZ1bmN0aW9uIHh1KGUpe3ZhciBhPXRhKGUpLHI9ZS5yZWFkX3NoaWZ0KDEpO3JldHVyblthLHIsImUiXX1mdW5jdGlvbiBkdShlKXt2YXIgYT12cihlKSxyPWUucmVhZF9zaGlmdCg0KTtyZXR1cm5bYSxyLCJzIl19ZnVuY3Rpb24gdnUoZSl7dmFyIGE9dGEoZSkscj1lLnJlYWRfc2hpZnQoNCk7cmV0dXJuW2EsciwicyJdfWZ1bmN0aW9uIHB1KGUpe3ZhciBhPXZyKGUpLHI9SmUoZSk7cmV0dXJuW2EsciwibiJdfWZ1bmN0aW9uIEJzKGUpe3ZhciBhPXRhKGUpLHI9SmUoZSk7cmV0dXJuW2EsciwibiJdfWZ1bmN0aW9uIGd1KGUpe3ZhciBhPXZyKGUpLHI9JHQoZSk7cmV0dXJuW2EsciwibiJdfWZ1bmN0aW9uIG11KGUpe3ZhciBhPXRhKGUpLHI9JHQoZSk7cmV0dXJuW2EsciwibiJdfWZ1bmN0aW9uIF91KGUpe3ZhciBhPXZyKGUpLHI9V3QoZSk7cmV0dXJuW2EsciwiaXMiXX1mdW5jdGlvbiBFdShlKXt2YXIgYT12cihlKSxyPWplKGUpO3JldHVyblthLHIsInN0ciJdfWZ1bmN0aW9uIFR1KGUpe3ZhciBhPXRhKGUpLHI9amUoZSk7cmV0dXJuW2Esciwic3RyIl19ZnVuY3Rpb24ga3UoZSxhLHIpe3ZhciBuPWUubCthLHQ9dnIoZSk7dC5yPXJbIiFyb3ciXTt2YXIgcz1lLnJlYWRfc2hpZnQoMSksaT1bdCxzLCJiIl07aWYoci5jZWxsRm9ybXVsYSl7ZS5sKz0yO3ZhciBjPWt0KGUsbi1lLmwscik7aVszXT1xZShjLG51bGwsdCxyLnN1cGJvb2tzLHIpfWVsc2UgZS5sPW47cmV0dXJuIGl9ZnVuY3Rpb24gd3UoZSxhLHIpe3ZhciBuPWUubCthLHQ9dnIoZSk7dC5yPXJbIiFyb3ciXTt2YXIgcz1lLnJlYWRfc2hpZnQoMSksaT1bdCxzLCJlIl07aWYoci5jZWxsRm9ybXVsYSl7ZS5sKz0yO3ZhciBjPWt0KGUsbi1lLmwscik7aVszXT1xZShjLG51bGwsdCxyLnN1cGJvb2tzLHIpfWVsc2UgZS5sPW47cmV0dXJuIGl9ZnVuY3Rpb24gQXUoZSxhLHIpe3ZhciBuPWUubCthLHQ9dnIoZSk7dC5yPXJbIiFyb3ciXTt2YXIgcz1KZShlKSxpPVt0LHMsIm4iXTtpZihyLmNlbGxGb3JtdWxhKXtlLmwrPTI7dmFyIGM9a3QoZSxuLWUubCxyKTtpWzNdPXFlKGMsbnVsbCx0LHIuc3VwYm9va3Mscil9ZWxzZSBlLmw9bjtyZXR1cm4gaX1mdW5jdGlvbiBGdShlLGEscil7dmFyIG49ZS5sK2EsdD12cihlKTt0LnI9clsiIXJvdyJdO3ZhciBzPWplKGUpLGk9W3Qscywic3RyIl07aWYoci5jZWxsRm9ybXVsYSl7ZS5sKz0yO3ZhciBjPWt0KGUsbi1lLmwscik7aVszXT1xZShjLG51bGwsdCxyLnN1cGJvb2tzLHIpfWVsc2UgZS5sPW47cmV0dXJuIGl9dmFyIFN1PW5hO2Z1bmN0aW9uIEN1KGUsYSl7dmFyIHI9ZS5sK2Esbj1uYShlKSx0PUd0KGUpLHM9amUoZSksaT1qZShlKSxjPWplKGUpO2UubD1yO3ZhciBmPXtyZng6bixyZWxJZDp0LGxvYzpzLGRpc3BsYXk6Y307cmV0dXJuIGkmJihmLlRvb2x0aXA9aSksZn1mdW5jdGlvbiB5dSgpe31mdW5jdGlvbiBEdShlLGEscil7dmFyIG49ZS5sK2EsdD1QbihlKSxzPWUucmVhZF9zaGlmdCgxKSxpPVt0XTtpZihpWzJdPXMsci5jZWxsRm9ybXVsYSl7dmFyIGM9UGgoZSxuLWUubCxyKTtpWzFdPWN9ZWxzZSBlLmw9bjtyZXR1cm4gaX1mdW5jdGlvbiBPdShlLGEscil7dmFyIG49ZS5sK2EsdD1uYShlKSxzPVt0XTtpZihyLmNlbGxGb3JtdWxhKXt2YXIgaT1NaChlLG4tZS5sLHIpO3NbMV09aSxlLmw9bn1lbHNlIGUubD1uO3JldHVybiBzfXZhciBSdT1bImxlZnQiLCJyaWdodCIsInRvcCIsImJvdHRvbSIsImhlYWRlciIsImZvb3RlciJdO2Z1bmN0aW9uIEl1KGUpe3ZhciBhPXt9O3JldHVybiBSdS5mb3JFYWNoKGZ1bmN0aW9uKHIpe2Fbcl09SmUoZSl9KSxhfWZ1bmN0aW9uIE51KGUpe3ZhciBhPWUucmVhZF9zaGlmdCgyKTtyZXR1cm4gZS5sKz0yOCx7UlRMOmEmMzJ9fWZ1bmN0aW9uIFB1KCl7fWZ1bmN0aW9uIEx1KCl7fWZ1bmN0aW9uIE11KGUsYSxyLG4sdCxzLGkpe2lmKCFlKXJldHVybiBlO3ZhciBjPWF8fHt9O258fChuPXsiIWlkIjp7fX0pO3ZhciBmPWMuZGVuc2U/W106e30sbyxsPXtzOntyOjJlNixjOjJlNn0sZTp7cjowLGM6MH19LGg9ITEseD0hMSxkLHYsdSxnLEYseSxfLE4sYixJPVtdO2MuYmlmZj0xMixjWyIhcm93Il09MDt2YXIgQT0wLFY9ITEsRD1bXSx6PXt9LEc9Yy5zdXBib29rc3x8dC5zdXBib29rc3x8W1tdXTtpZihHLnNoYXJlZGY9eixHLmFycmF5Zj1ELEcuU2hlZXROYW1lcz10LlNoZWV0TmFtZXN8fHQuU2hlZXRzLm1hcChmdW5jdGlvbihGZSl7cmV0dXJuIEZlLm5hbWV9KSwhYy5zdXBib29rcyYmKGMuc3VwYm9va3M9Ryx0Lk5hbWVzKSlmb3IodmFyIFA9MDtQPHQuTmFtZXMubGVuZ3RoOysrUClHWzBdW1ArMV09dC5OYW1lc1tQXTt2YXIgSj1bXSxmZT1bXSxyZT0hMTtBdFsxNl09e246IkJydFNob3J0UmVhbCIsZjpCc307dmFyIGNlO2lmKFByKGUsZnVuY3Rpb24oVyxsZSxoZSl7aWYoIXgpc3dpdGNoKGhlKXtjYXNlIDE0ODpvPVc7YnJlYWs7Y2FzZSAwOmQ9VyxjLnNoZWV0Um93cyYmYy5zaGVldFJvd3M8PWQuciYmKHg9ITApLE49emUoZz1kLnIpLGNbIiFyb3ciXT1kLnIsKFcuaGlkZGVufHxXLmhwdHx8Vy5sZXZlbCE9bnVsbCkmJihXLmhwdCYmKFcuaHB4PVZhKFcuaHB0KSksZmVbVy5yXT1XKTticmVhaztjYXNlIDI6Y2FzZSAzOmNhc2UgNDpjYXNlIDU6Y2FzZSA2OmNhc2UgNzpjYXNlIDg6Y2FzZSA5OmNhc2UgMTA6Y2FzZSAxMTpjYXNlIDEzOmNhc2UgMTQ6Y2FzZSAxNTpjYXNlIDE2OmNhc2UgMTc6Y2FzZSAxODpjYXNlIDYyOnN3aXRjaCh2PXt0OldbMl19LFdbMl0pe2Nhc2UibiI6di52PVdbMV07YnJlYWs7Y2FzZSJzIjpfPSRhW1dbMV1dLHYudj1fLnQsdi5yPV8ucjticmVhaztjYXNlImIiOnYudj0hIVdbMV07YnJlYWs7Y2FzZSJlIjp2LnY9V1sxXSxjLmNlbGxUZXh0IT09ITEmJih2Lnc9aWFbdi52XSk7YnJlYWs7Y2FzZSJzdHIiOnYudD0icyIsdi52PVdbMV07YnJlYWs7Y2FzZSJpcyI6di50PSJzIix2LnY9V1sxXS50O2JyZWFrfWlmKCh1PWkuQ2VsbFhmW1dbMF0uaVN0eWxlUmVmXSkmJkxzKHYsdS5udW1GbXRJZCxudWxsLGMscyxpKSxGPVdbMF0uYz09LTE/RisxOldbMF0uYyxjLmRlbnNlPyhmW2ddfHwoZltnXT1bXSksZltnXVtGXT12KTpmW1VlKEYpK05dPXYsYy5jZWxsRm9ybXVsYSl7Zm9yKFY9ITEsQT0wO0E8RC5sZW5ndGg7KytBKXt2YXIgUz1EW0FdO2Qucj49U1swXS5zLnImJmQucjw9U1swXS5lLnImJkY+PVNbMF0ucy5jJiZGPD1TWzBdLmUuYyYmKHYuRj1fZShTWzBdKSxWPSEwKX0hViYmVy5sZW5ndGg+MyYmKHYuZj1XWzNdKX1pZihsLnMucj5kLnImJihsLnMucj1kLnIpLGwucy5jPkYmJihsLnMuYz1GKSxsLmUucjxkLnImJihsLmUucj1kLnIpLGwuZS5jPEYmJihsLmUuYz1GKSxjLmNlbGxEYXRlcyYmdSYmdi50PT0ibiImJnhhKGRlW3UubnVtRm10SWRdKSl7dmFyIFU9cXIodi52KTtVJiYodi50PSJkIix2LnY9bmV3IERhdGUoVS55LFUubS0xLFUuZCxVLkgsVS5NLFUuUyxVLnUpKX1jZSYmKGNlLnR5cGU9PSJYTERBUFIiJiYodi5EPSEwKSxjZT12b2lkIDApO2JyZWFrO2Nhc2UgMTpjYXNlIDEyOmlmKCFjLnNoZWV0U3R1YnN8fGgpYnJlYWs7dj17dDoieiIsdjp2b2lkIDB9LEY9V1swXS5jPT0tMT9GKzE6V1swXS5jLGMuZGVuc2U/KGZbZ118fChmW2ddPVtdKSxmW2ddW0ZdPXYpOmZbVWUoRikrTl09dixsLnMucj5kLnImJihsLnMucj1kLnIpLGwucy5jPkYmJihsLnMuYz1GKSxsLmUucjxkLnImJihsLmUucj1kLnIpLGwuZS5jPEYmJihsLmUuYz1GKSxjZSYmKGNlLnR5cGU9PSJYTERBUFIiJiYodi5EPSEwKSxjZT12b2lkIDApO2JyZWFrO2Nhc2UgMTc2OkkucHVzaChXKTticmVhaztjYXNlIDQ5OmNlPSgoYy54bG1ldGF8fHt9KS5DZWxsfHxbXSlbVy0xXTticmVhaztjYXNlIDQ5NDp2YXIgUj1uWyIhaWQiXVtXLnJlbElkXTtmb3IoUj8oVy5UYXJnZXQ9Ui5UYXJnZXQsVy5sb2MmJihXLlRhcmdldCs9IiMiK1cubG9jKSxXLlJlbD1SKTpXLnJlbElkPT0iIiYmKFcuVGFyZ2V0PSIjIitXLmxvYyksZz1XLnJmeC5zLnI7Zzw9Vy5yZnguZS5yOysrZylmb3IoRj1XLnJmeC5zLmM7Rjw9Vy5yZnguZS5jOysrRiljLmRlbnNlPyhmW2ddfHwoZltnXT1bXSksZltnXVtGXXx8KGZbZ11bRl09e3Q6InoiLHY6dm9pZCAwfSksZltnXVtGXS5sPVcpOih5PXVlKHtjOkYscjpnfSksZlt5XXx8KGZbeV09e3Q6InoiLHY6dm9pZCAwfSksZlt5XS5sPVcpO2JyZWFrO2Nhc2UgNDI2OmlmKCFjLmNlbGxGb3JtdWxhKWJyZWFrO0QucHVzaChXKSxiPWMuZGVuc2U/ZltnXVtGXTpmW1VlKEYpK05dLGIuZj1xZShXWzFdLGwse3I6ZC5yLGM6Rn0sRyxjKSxiLkY9X2UoV1swXSk7YnJlYWs7Y2FzZSA0Mjc6aWYoIWMuY2VsbEZvcm11bGEpYnJlYWs7elt1ZShXWzBdLnMpXT1XWzFdLGI9Yy5kZW5zZT9mW2ddW0ZdOmZbVWUoRikrTl0sYi5mPXFlKFdbMV0sbCx7cjpkLnIsYzpGfSxHLGMpO2JyZWFrO2Nhc2UgNjA6aWYoIWMuY2VsbFN0eWxlcylicmVhaztmb3IoO1cuZT49Vy5zOylKW1cuZS0tXT17d2lkdGg6Vy53LzI1NixoaWRkZW46ISEoVy5mbGFncyYxKSxsZXZlbDpXLmxldmVsfSxyZXx8KHJlPSEwLGUwKFcudy8yNTYpKSxfYShKW1cuZSsxXSk7YnJlYWs7Y2FzZSAxNjE6ZlsiIWF1dG9maWx0ZXIiXT17cmVmOl9lKFcpfTticmVhaztjYXNlIDQ3NjpmWyIhbWFyZ2lucyJdPVc7YnJlYWs7Y2FzZSAxNDc6dC5TaGVldHNbcl18fCh0LlNoZWV0c1tyXT17fSksVy5uYW1lJiYodC5TaGVldHNbcl0uQ29kZU5hbWU9Vy5uYW1lKSwoVy5hYm92ZXx8Vy5sZWZ0KSYmKGZbIiFvdXRsaW5lIl09e2Fib3ZlOlcuYWJvdmUsbGVmdDpXLmxlZnR9KTticmVhaztjYXNlIDEzNzp0LlZpZXdzfHwodC5WaWV3cz1be31dKSx0LlZpZXdzWzBdfHwodC5WaWV3c1swXT17fSksVy5SVEwmJih0LlZpZXdzWzBdLlJUTD0hMCk7YnJlYWs7Y2FzZSA0ODU6YnJlYWs7Y2FzZSA2NDpjYXNlIDEwNTM6YnJlYWs7Y2FzZSAxNTE6YnJlYWs7Y2FzZSAxNTI6Y2FzZSAxNzU6Y2FzZSA2NDQ6Y2FzZSA2MjU6Y2FzZSA1NjI6Y2FzZSAzOTY6Y2FzZSAxMTEyOmNhc2UgMTE0NjpjYXNlIDQ3MTpjYXNlIDEwNTA6Y2FzZSA2NDk6Y2FzZSAxMTA1OmNhc2UgNTg5OmNhc2UgNjA3OmNhc2UgNTY0OmNhc2UgMTA1NTpjYXNlIDE2ODpjYXNlIDE3NDpjYXNlIDExODA6Y2FzZSA0OTk6Y2FzZSA1MDc6Y2FzZSA1NTA6Y2FzZSAxNzE6Y2FzZSAxNjc6Y2FzZSAxMTc3OmNhc2UgMTY5OmNhc2UgMTE4MTpjYXNlIDU1MTpjYXNlIDU1MjpjYXNlIDY2MTpjYXNlIDYzOTpjYXNlIDQ3ODpjYXNlIDUzNzpjYXNlIDQ3NzpjYXNlIDUzNjpjYXNlIDExMDM6Y2FzZSA2ODA6Y2FzZSAxMTA0OmNhc2UgMTAyNDpjYXNlIDY2MzpjYXNlIDUzNTpjYXNlIDY3ODpjYXNlIDUwNDpjYXNlIDEwNDM6Y2FzZSA0Mjg6Y2FzZSAxNzA6Y2FzZSAzMDcyOmNhc2UgNTA6Y2FzZSAyMDcwOmNhc2UgMTA0NTpicmVhaztjYXNlIDM1Omg9ITA7YnJlYWs7Y2FzZSAzNjpoPSExO2JyZWFrO2Nhc2UgMzc6aD0hMDticmVhaztjYXNlIDM4Omg9ITE7YnJlYWs7ZGVmYXVsdDppZighbGUuVCl7aWYoIWh8fGMuV1RGKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCByZWNvcmQgMHgiK2hlLnRvU3RyaW5nKDE2KSl9fX0sYyksZGVsZXRlIGMuc3VwYm9va3MsZGVsZXRlIGNbIiFyb3ciXSwhZlsiIXJlZiJdJiYobC5zLnI8MmU2fHxvJiYoby5lLnI+MHx8by5lLmM+MHx8by5zLnI+MHx8by5zLmM+MCkpJiYoZlsiIXJlZiJdPV9lKG98fGwpKSxjLnNoZWV0Um93cyYmZlsiIXJlZiJdKXt2YXIgaWU9T2UoZlsiIXJlZiJdKTtjLnNoZWV0Um93czw9K2llLmUuciYmKGllLmUucj1jLnNoZWV0Um93cy0xLGllLmUucj5sLmUuciYmKGllLmUucj1sLmUuciksaWUuZS5yPGllLnMuciYmKGllLnMucj1pZS5lLnIpLGllLmUuYz5sLmUuYyYmKGllLmUuYz1sLmUuYyksaWUuZS5jPGllLnMuYyYmKGllLnMuYz1pZS5lLmMpLGZbIiFmdWxscmVmIl09ZlsiIXJlZiJdLGZbIiFyZWYiXT1fZShpZSkpfXJldHVybiBJLmxlbmd0aD4wJiYoZlsiIW1lcmdlcyJdPUkpLEoubGVuZ3RoPjAmJihmWyIhY29scyJdPUopLGZlLmxlbmd0aD4wJiYoZlsiIXJvd3MiXT1mZSksZn1mdW5jdGlvbiBCdShlKXt2YXIgYT1bXSxyPWUubWF0Y2goL148YzpudW1DYWNoZT4vKSxuOyhlLm1hdGNoKC88YzpwdCBpZHg9IihcZCopIj4oLio/KTxcL2M6cHQ+L21nKXx8W10pLmZvckVhY2goZnVuY3Rpb24ocyl7dmFyIGk9cy5tYXRjaCgvPGM6cHQgaWR4PSIoXGQqPykiPjxjOnY+KC4qKTxcL2M6dj48XC9jOnB0Pi8pO2kmJihhWytpWzFdXT1yPytpWzJdOmlbMl0pfSk7dmFyIHQ9RWUoKGUubWF0Y2goLzxjOmZvcm1hdENvZGU+KFtcc1xTXSo/KTxcL2M6Zm9ybWF0Q29kZT4vKXx8WyIiLCJHZW5lcmFsIl0pWzFdKTtyZXR1cm4oZS5tYXRjaCgvPGM6Zj4oLio/KTxcL2M6Zj4vbWcpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihzKXtuPXMucmVwbGFjZSgvPC4qPz4vZywiIil9KSxbYSx0LG5dfWZ1bmN0aW9uIGJ1KGUsYSxyLG4sdCxzKXt2YXIgaT1zfHx7IiF0eXBlIjoiY2hhcnQifTtpZighZSlyZXR1cm4gczt2YXIgYz0wLGY9MCxvPSJBIixsPXtzOntyOjJlNixjOjJlNn0sZTp7cjowLGM6MH19O3JldHVybihlLm1hdGNoKC88YzpudW1DYWNoZT5bXHNcU10qPzxcL2M6bnVtQ2FjaGU+L2dtKXx8W10pLmZvckVhY2goZnVuY3Rpb24oaCl7dmFyIHg9QnUoaCk7bC5zLnI9bC5zLmM9MCxsLmUuYz1jLG89VWUoYykseFswXS5mb3JFYWNoKGZ1bmN0aW9uKGQsdil7aVtvK3plKHYpXT17dDoibiIsdjpkLHo6eFsxXX0sZj12fSksbC5lLnI8ZiYmKGwuZS5yPWYpLCsrY30pLGM+MCYmKGlbIiFyZWYiXT1fZShsKSksaX1mdW5jdGlvbiBVdShlLGEscixuLHQpe2lmKCFlKXJldHVybiBlO258fChuPXsiIWlkIjp7fX0pO3ZhciBzPXsiIXR5cGUiOiJjaGFydCIsIiFkcmF3ZWwiOm51bGwsIiFyZWwiOiIifSxpLGM9ZS5tYXRjaChNcyk7cmV0dXJuIGMmJm4wKGNbMF0scyx0LHIpLChpPWUubWF0Y2goL2RyYXdpbmcgcjppZD0iKC4qPykiLykpJiYoc1siIXJlbCJdPWlbMV0pLG5bIiFpZCJdW3NbIiFyZWwiXV0mJihzWyIhZHJhd2VsIl09blsiIWlkIl1bc1siIXJlbCJdXSksc31mdW5jdGlvbiBIdShlLGEpe2UubCs9MTA7dmFyIHI9amUoZSk7cmV0dXJue25hbWU6cn19ZnVuY3Rpb24gVnUoZSxhLHIsbix0KXtpZighZSlyZXR1cm4gZTtufHwobj17IiFpZCI6e319KTt2YXIgcz17IiF0eXBlIjoiY2hhcnQiLCIhZHJhd2VsIjpudWxsLCIhcmVsIjoiIn0saT0hMTtyZXR1cm4gUHIoZSxmdW5jdGlvbihmLG8sbCl7c3dpdGNoKGwpe2Nhc2UgNTUwOnNbIiFyZWwiXT1mO2JyZWFrO2Nhc2UgNjUxOnQuU2hlZXRzW3JdfHwodC5TaGVldHNbcl09e30pLGYubmFtZSYmKHQuU2hlZXRzW3JdLkNvZGVOYW1lPWYubmFtZSk7YnJlYWs7Y2FzZSA1NjI6Y2FzZSA2NTI6Y2FzZSA2Njk6Y2FzZSA2Nzk6Y2FzZSA1NTE6Y2FzZSA1NTI6Y2FzZSA0NzY6Y2FzZSAzMDcyOmJyZWFrO2Nhc2UgMzU6aT0hMDticmVhaztjYXNlIDM2Omk9ITE7YnJlYWs7Y2FzZSAzNzpicmVhaztjYXNlIDM4OmJyZWFrO2RlZmF1bHQ6aWYoIShvLlQ+MCkpe2lmKCEoby5UPDApKXtpZighaXx8YS5XVEYpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHJlY29yZCAweCIrbC50b1N0cmluZygxNikpfX19fSxhKSxuWyIhaWQiXVtzWyIhcmVsIl1dJiYoc1siIWRyYXdlbCJdPW5bIiFpZCJdW3NbIiFyZWwiXV0pLHN9dmFyIGJzPVtbImFsbG93UmVmcmVzaFF1ZXJ5IiwhMSwiYm9vbCJdLFsiYXV0b0NvbXByZXNzUGljdHVyZXMiLCEwLCJib29sIl0sWyJiYWNrdXBGaWxlIiwhMSwiYm9vbCJdLFsiY2hlY2tDb21wYXRpYmlsaXR5IiwhMSwiYm9vbCJdLFsiQ29kZU5hbWUiLCIiXSxbImRhdGUxOTA0IiwhMSwiYm9vbCJdLFsiZGVmYXVsdFRoZW1lVmVyc2lvbiIsMCwiaW50Il0sWyJmaWx0ZXJQcml2YWN5IiwhMSwiYm9vbCJdLFsiaGlkZVBpdm90RmllbGRMaXN0IiwhMSwiYm9vbCJdLFsicHJvbXB0ZWRTb2x1dGlvbnMiLCExLCJib29sIl0sWyJwdWJsaXNoSXRlbXMiLCExLCJib29sIl0sWyJyZWZyZXNoQWxsQ29ubmVjdGlvbnMiLCExLCJib29sIl0sWyJzYXZlRXh0ZXJuYWxMaW5rVmFsdWVzIiwhMCwiYm9vbCJdLFsic2hvd0JvcmRlclVuc2VsZWN0ZWRUYWJsZXMiLCEwLCJib29sIl0sWyJzaG93SW5rQW5ub3RhdGlvbiIsITAsImJvb2wiXSxbInNob3dPYmplY3RzIiwiYWxsIl0sWyJzaG93UGl2b3RDaGFydEZpbHRlciIsITEsImJvb2wiXSxbInVwZGF0ZUxpbmtzIiwidXNlclNldCJdXSxXdT1bWyJhY3RpdmVUYWIiLDAsImludCJdLFsiYXV0b0ZpbHRlckRhdGVHcm91cGluZyIsITAsImJvb2wiXSxbImZpcnN0U2hlZXQiLDAsImludCJdLFsibWluaW1pemVkIiwhMSwiYm9vbCJdLFsic2hvd0hvcml6b250YWxTY3JvbGwiLCEwLCJib29sIl0sWyJzaG93U2hlZXRUYWJzIiwhMCwiYm9vbCJdLFsic2hvd1ZlcnRpY2FsU2Nyb2xsIiwhMCwiYm9vbCJdLFsidGFiUmF0aW8iLDYwMCwiaW50Il0sWyJ2aXNpYmlsaXR5IiwidmlzaWJsZSJdXSxHdT1bXSxYdT1bWyJjYWxjQ29tcGxldGVkIiwidHJ1ZSJdLFsiY2FsY01vZGUiLCJhdXRvIl0sWyJjYWxjT25TYXZlIiwidHJ1ZSJdLFsiY29uY3VycmVudENhbGMiLCJ0cnVlIl0sWyJmdWxsQ2FsY09uTG9hZCIsImZhbHNlIl0sWyJmdWxsUHJlY2lzaW9uIiwidHJ1ZSJdLFsiaXRlcmF0ZSIsImZhbHNlIl0sWyJpdGVyYXRlQ291bnQiLCIxMDAiXSxbIml0ZXJhdGVEZWx0YSIsIjAuMDAxIl0sWyJyZWZNb2RlIiwiQTEiXV07ZnVuY3Rpb24gVXMoZSxhKXtmb3IodmFyIHI9MDtyIT1lLmxlbmd0aDsrK3IpZm9yKHZhciBuPWVbcl0sdD0wO3QhPWEubGVuZ3RoOysrdCl7dmFyIHM9YVt0XTtpZihuW3NbMF1dPT1udWxsKW5bc1swXV09c1sxXTtlbHNlIHN3aXRjaChzWzJdKXtjYXNlImJvb2wiOnR5cGVvZiBuW3NbMF1dPT0ic3RyaW5nIiYmKG5bc1swXV09U2UobltzWzBdXSkpO2JyZWFrO2Nhc2UiaW50Ijp0eXBlb2YgbltzWzBdXT09InN0cmluZyImJihuW3NbMF1dPXBhcnNlSW50KG5bc1swXV0sMTApKTticmVha319fWZ1bmN0aW9uIEhzKGUsYSl7Zm9yKHZhciByPTA7ciE9YS5sZW5ndGg7KytyKXt2YXIgbj1hW3JdO2lmKGVbblswXV09PW51bGwpZVtuWzBdXT1uWzFdO2Vsc2Ugc3dpdGNoKG5bMl0pe2Nhc2UiYm9vbCI6dHlwZW9mIGVbblswXV09PSJzdHJpbmciJiYoZVtuWzBdXT1TZShlW25bMF1dKSk7YnJlYWs7Y2FzZSJpbnQiOnR5cGVvZiBlW25bMF1dPT0ic3RyaW5nIiYmKGVbblswXV09cGFyc2VJbnQoZVtuWzBdXSwxMCkpO2JyZWFrfX19ZnVuY3Rpb24gVnMoZSl7SHMoZS5XQlByb3BzLGJzKSxIcyhlLkNhbGNQcixYdSksVXMoZS5XQlZpZXcsV3UpLFVzKGUuU2hlZXRzLEd1KSxUYS5kYXRlMTkwND1TZShlLldCUHJvcHMuZGF0ZTE5MDQpfXZhciAkdT0iXVsqPy9cXCIuc3BsaXQoIiIpO2Z1bmN0aW9uIHp1KGUsYSl7aWYoZS5sZW5ndGg+MzEpdGhyb3cgbmV3IEVycm9yKCJTaGVldCBuYW1lcyBjYW5ub3QgZXhjZWVkIDMxIGNoYXJzIik7dmFyIHI9ITA7cmV0dXJuICR1LmZvckVhY2goZnVuY3Rpb24obil7aWYoZS5pbmRleE9mKG4pIT0tMSl0aHJvdyBuZXcgRXJyb3IoIlNoZWV0IG5hbWUgY2Fubm90IGNvbnRhaW4gOiBcXCAvID8gKiBbIF0iKX0pLHJ9dmFyIEt1PS88XHcrOndvcmtib29rLztmdW5jdGlvbiBZdShlLGEpe2lmKCFlKXRocm93IG5ldyBFcnJvcigiQ291bGQgbm90IGZpbmQgZmlsZSIpO3ZhciByPXtBcHBWZXJzaW9uOnt9LFdCUHJvcHM6e30sV0JWaWV3OltdLFNoZWV0czpbXSxDYWxjUHI6e30sTmFtZXM6W10seG1sbnM6IiJ9LG49ITEsdD0ieG1sbnMiLHM9e30saT0wO2lmKGUucmVwbGFjZShLZSxmdW5jdGlvbihmLG8pe3ZhciBsPW9lKGYpO3N3aXRjaChDcihsWzBdKSl7Y2FzZSI8P3htbCI6YnJlYWs7Y2FzZSI8d29ya2Jvb2siOmYubWF0Y2goS3UpJiYodD0ieG1sbnMiK2YubWF0Y2goLzwoXHcrKTovKVsxXSksci54bWxucz1sW3RdO2JyZWFrO2Nhc2UiPC93b3JrYm9vaz4iOmJyZWFrO2Nhc2UiPGZpbGVWZXJzaW9uIjpkZWxldGUgbFswXSxyLkFwcFZlcnNpb249bDticmVhaztjYXNlIjxmaWxlVmVyc2lvbi8+IjpjYXNlIjwvZmlsZVZlcnNpb24+IjpicmVhaztjYXNlIjxmaWxlU2hhcmluZyI6YnJlYWs7Y2FzZSI8ZmlsZVNoYXJpbmcvPiI6YnJlYWs7Y2FzZSI8d29ya2Jvb2tQciI6Y2FzZSI8d29ya2Jvb2tQci8+Ijpicy5mb3JFYWNoKGZ1bmN0aW9uKGgpe2lmKGxbaFswXV0hPW51bGwpc3dpdGNoKGhbMl0pe2Nhc2UiYm9vbCI6ci5XQlByb3BzW2hbMF1dPVNlKGxbaFswXV0pO2JyZWFrO2Nhc2UiaW50IjpyLldCUHJvcHNbaFswXV09cGFyc2VJbnQobFtoWzBdXSwxMCk7YnJlYWs7ZGVmYXVsdDpyLldCUHJvcHNbaFswXV09bFtoWzBdXX19KSxsLmNvZGVOYW1lJiYoci5XQlByb3BzLkNvZGVOYW1lPUFlKGwuY29kZU5hbWUpKTticmVhaztjYXNlIjwvd29ya2Jvb2tQcj4iOmJyZWFrO2Nhc2UiPHdvcmtib29rUHJvdGVjdGlvbiI6YnJlYWs7Y2FzZSI8d29ya2Jvb2tQcm90ZWN0aW9uLz4iOmJyZWFrO2Nhc2UiPGJvb2tWaWV3cyI6Y2FzZSI8Ym9va1ZpZXdzPiI6Y2FzZSI8L2Jvb2tWaWV3cz4iOmJyZWFrO2Nhc2UiPHdvcmtib29rVmlldyI6Y2FzZSI8d29ya2Jvb2tWaWV3Lz4iOmRlbGV0ZSBsWzBdLHIuV0JWaWV3LnB1c2gobCk7YnJlYWs7Y2FzZSI8L3dvcmtib29rVmlldz4iOmJyZWFrO2Nhc2UiPHNoZWV0cyI6Y2FzZSI8c2hlZXRzPiI6Y2FzZSI8L3NoZWV0cz4iOmJyZWFrO2Nhc2UiPHNoZWV0Ijpzd2l0Y2gobC5zdGF0ZSl7Y2FzZSJoaWRkZW4iOmwuSGlkZGVuPTE7YnJlYWs7Y2FzZSJ2ZXJ5SGlkZGVuIjpsLkhpZGRlbj0yO2JyZWFrO2RlZmF1bHQ6bC5IaWRkZW49MH1kZWxldGUgbC5zdGF0ZSxsLm5hbWU9RWUoQWUobC5uYW1lKSksZGVsZXRlIGxbMF0sci5TaGVldHMucHVzaChsKTticmVhaztjYXNlIjwvc2hlZXQ+IjpicmVhaztjYXNlIjxmdW5jdGlvbkdyb3VwcyI6Y2FzZSI8ZnVuY3Rpb25Hcm91cHMvPiI6YnJlYWs7Y2FzZSI8ZnVuY3Rpb25Hcm91cCI6YnJlYWs7Y2FzZSI8ZXh0ZXJuYWxSZWZlcmVuY2VzIjpjYXNlIjwvZXh0ZXJuYWxSZWZlcmVuY2VzPiI6Y2FzZSI8ZXh0ZXJuYWxSZWZlcmVuY2VzPiI6YnJlYWs7Y2FzZSI8ZXh0ZXJuYWxSZWZlcmVuY2UiOmJyZWFrO2Nhc2UiPGRlZmluZWROYW1lcy8+IjpicmVhaztjYXNlIjxkZWZpbmVkTmFtZXM+IjpjYXNlIjxkZWZpbmVkTmFtZXMiOm49ITA7YnJlYWs7Y2FzZSI8L2RlZmluZWROYW1lcz4iOm49ITE7YnJlYWs7Y2FzZSI8ZGVmaW5lZE5hbWUiOnM9e30scy5OYW1lPUFlKGwubmFtZSksbC5jb21tZW50JiYocy5Db21tZW50PWwuY29tbWVudCksbC5sb2NhbFNoZWV0SWQmJihzLlNoZWV0PStsLmxvY2FsU2hlZXRJZCksU2UobC5oaWRkZW58fCIwIikmJihzLkhpZGRlbj0hMCksaT1vK2YubGVuZ3RoO2JyZWFrO2Nhc2UiPC9kZWZpbmVkTmFtZT4iOnMuUmVmPUVlKEFlKGUuc2xpY2UoaSxvKSkpLHIuTmFtZXMucHVzaChzKTticmVhaztjYXNlIjxkZWZpbmVkTmFtZS8+IjpicmVhaztjYXNlIjxjYWxjUHIiOmRlbGV0ZSBsWzBdLHIuQ2FsY1ByPWw7YnJlYWs7Y2FzZSI8Y2FsY1ByLz4iOmRlbGV0ZSBsWzBdLHIuQ2FsY1ByPWw7YnJlYWs7Y2FzZSI8L2NhbGNQcj4iOmJyZWFrO2Nhc2UiPG9sZVNpemUiOmJyZWFrO2Nhc2UiPGN1c3RvbVdvcmtib29rVmlld3M+IjpjYXNlIjwvY3VzdG9tV29ya2Jvb2tWaWV3cz4iOmNhc2UiPGN1c3RvbVdvcmtib29rVmlld3MiOmJyZWFrO2Nhc2UiPGN1c3RvbVdvcmtib29rVmlldyI6Y2FzZSI8L2N1c3RvbVdvcmtib29rVmlldz4iOmJyZWFrO2Nhc2UiPHBpdm90Q2FjaGVzPiI6Y2FzZSI8L3Bpdm90Q2FjaGVzPiI6Y2FzZSI8cGl2b3RDYWNoZXMiOmJyZWFrO2Nhc2UiPHBpdm90Q2FjaGUiOmJyZWFrO2Nhc2UiPHNtYXJ0VGFnUHIiOmNhc2UiPHNtYXJ0VGFnUHIvPiI6YnJlYWs7Y2FzZSI8c21hcnRUYWdUeXBlcyI6Y2FzZSI8c21hcnRUYWdUeXBlcz4iOmNhc2UiPC9zbWFydFRhZ1R5cGVzPiI6YnJlYWs7Y2FzZSI8c21hcnRUYWdUeXBlIjpicmVhaztjYXNlIjx3ZWJQdWJsaXNoaW5nIjpjYXNlIjx3ZWJQdWJsaXNoaW5nLz4iOmJyZWFrO2Nhc2UiPGZpbGVSZWNvdmVyeVByIjpjYXNlIjxmaWxlUmVjb3ZlcnlQci8+IjpicmVhaztjYXNlIjx3ZWJQdWJsaXNoT2JqZWN0cz4iOmNhc2UiPHdlYlB1Ymxpc2hPYmplY3RzIjpjYXNlIjwvd2ViUHVibGlzaE9iamVjdHM+IjpicmVhaztjYXNlIjx3ZWJQdWJsaXNoT2JqZWN0IjpicmVhaztjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRMc3Q+IjpjYXNlIjxleHRMc3QvPiI6YnJlYWs7Y2FzZSI8ZXh0IjpuPSEwO2JyZWFrO2Nhc2UiPC9leHQ+IjpuPSExO2JyZWFrO2Nhc2UiPEFyY2hJRCI6YnJlYWs7Y2FzZSI8QWx0ZXJuYXRlQ29udGVudCI6Y2FzZSI8QWx0ZXJuYXRlQ29udGVudD4iOm49ITA7YnJlYWs7Y2FzZSI8L0FsdGVybmF0ZUNvbnRlbnQ+IjpuPSExO2JyZWFrO2Nhc2UiPHJldmlzaW9uUHRyIjpicmVhaztkZWZhdWx0OmlmKCFuJiZhLldURil0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK2xbMF0rIiBpbiB3b3JrYm9vayIpfXJldHVybiBmfSksbGMuaW5kZXhPZihyLnhtbG5zKT09PS0xKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBOYW1lc3BhY2U6ICIrci54bWxucyk7cmV0dXJuIFZzKHIpLHJ9ZnVuY3Rpb24ganUoZSxhKXt2YXIgcj17fTtyZXR1cm4gci5IaWRkZW49ZS5yZWFkX3NoaWZ0KDQpLHIuaVRhYklEPWUucmVhZF9zaGlmdCg0KSxyLnN0clJlbElEPVh0KGUpLHIubmFtZT1qZShlKSxyfWZ1bmN0aW9uIEp1KGUsYSl7dmFyIHI9e30sbj1lLnJlYWRfc2hpZnQoNCk7ci5kZWZhdWx0VGhlbWVWZXJzaW9uPWUucmVhZF9zaGlmdCg0KTt2YXIgdD1hPjg/amUoZSk6IiI7cmV0dXJuIHQubGVuZ3RoPjAmJihyLkNvZGVOYW1lPXQpLHIuYXV0b0NvbXByZXNzUGljdHVyZXM9ISEobiY2NTUzNiksci5iYWNrdXBGaWxlPSEhKG4mNjQpLHIuY2hlY2tDb21wYXRpYmlsaXR5PSEhKG4mNDA5Niksci5kYXRlMTkwND0hIShuJjEpLHIuZmlsdGVyUHJpdmFjeT0hIShuJjgpLHIuaGlkZVBpdm90RmllbGRMaXN0PSEhKG4mMTAyNCksci5wcm9tcHRlZFNvbHV0aW9ucz0hIShuJjE2KSxyLnB1Ymxpc2hJdGVtcz0hIShuJjIwNDgpLHIucmVmcmVzaEFsbENvbm5lY3Rpb25zPSEhKG4mMjYyMTQ0KSxyLnNhdmVFeHRlcm5hbExpbmtWYWx1ZXM9ISEobiYxMjgpLHIuc2hvd0JvcmRlclVuc2VsZWN0ZWRUYWJsZXM9ISEobiY0KSxyLnNob3dJbmtBbm5vdGF0aW9uPSEhKG4mMzIpLHIuc2hvd09iamVjdHM9WyJhbGwiLCJwbGFjZWhvbGRlcnMiLCJub25lIl1bbj4+MTMmM10sci5zaG93UGl2b3RDaGFydEZpbHRlcj0hIShuJjMyNzY4KSxyLnVwZGF0ZUxpbmtzPVsidXNlclNldCIsIm5ldmVyIiwiYWx3YXlzIl1bbj4+OCYzXSxyfWZ1bmN0aW9uIFp1KGUsYSl7dmFyIHI9e307cmV0dXJuIGUucmVhZF9zaGlmdCg0KSxyLkFyY2hJRD1lLnJlYWRfc2hpZnQoNCksZS5sKz1hLTgscn1mdW5jdGlvbiBxdShlLGEscil7dmFyIG49ZS5sK2E7ZS5sKz00LGUubCs9MTt2YXIgdD1lLnJlYWRfc2hpZnQoNCkscz15YyhlKSxpPUxoKGUsMCxyKSxjPUd0KGUpO2UubD1uO3ZhciBmPXtOYW1lOnMsUHRnOml9O3JldHVybiB0PDI2ODQzNTQ1NSYmKGYuU2hlZXQ9dCksYyYmKGYuQ29tbWVudD1jKSxmfWZ1bmN0aW9uIFF1KGUsYSl7dmFyIHI9e0FwcFZlcnNpb246e30sV0JQcm9wczp7fSxXQlZpZXc6W10sU2hlZXRzOltdLENhbGNQcjp7fSx4bWxuczoiIn0sbj1bXSx0PSExO2F8fChhPXt9KSxhLmJpZmY9MTI7dmFyIHM9W10saT1bW11dO3JldHVybiBpLlNoZWV0TmFtZXM9W10saS5YVEk9W10sQXRbMTZdPXtuOiJCcnRGUlRBcmNoSUQkIixmOlp1fSxQcihlLGZ1bmN0aW9uKGYsbyxsKXtzd2l0Y2gobCl7Y2FzZSAxNTY6aS5TaGVldE5hbWVzLnB1c2goZi5uYW1lKSxyLlNoZWV0cy5wdXNoKGYpO2JyZWFrO2Nhc2UgMTUzOnIuV0JQcm9wcz1mO2JyZWFrO2Nhc2UgMzk6Zi5TaGVldCE9bnVsbCYmKGEuU0lEPWYuU2hlZXQpLGYuUmVmPXFlKGYuUHRnLG51bGwsbnVsbCxpLGEpLGRlbGV0ZSBhLlNJRCxkZWxldGUgZi5QdGcscy5wdXNoKGYpO2JyZWFrO2Nhc2UgMTAzNjpicmVhaztjYXNlIDM1NzpjYXNlIDM1ODpjYXNlIDM1NTpjYXNlIDY2NzppWzBdLmxlbmd0aD9pLnB1c2goW2wsZl0pOmlbMF09W2wsZl0saVtpLmxlbmd0aC0xXS5YVEk9W107YnJlYWs7Y2FzZSAzNjI6aS5sZW5ndGg9PT0wJiYoaVswXT1bXSxpWzBdLlhUST1bXSksaVtpLmxlbmd0aC0xXS5YVEk9aVtpLmxlbmd0aC0xXS5YVEkuY29uY2F0KGYpLGkuWFRJPWkuWFRJLmNvbmNhdChmKTticmVhaztjYXNlIDM2MTpicmVhaztjYXNlIDIwNzE6Y2FzZSAxNTg6Y2FzZSAxNDM6Y2FzZSA2NjQ6Y2FzZSAzNTM6YnJlYWs7Y2FzZSAzMDcyOmNhc2UgMzA3MzpjYXNlIDUzNDpjYXNlIDY3NzpjYXNlIDE1NzpjYXNlIDYxMDpjYXNlIDIwNTA6Y2FzZSAxNTU6Y2FzZSA1NDg6Y2FzZSA2NzY6Y2FzZSAxMjg6Y2FzZSA2NjU6Y2FzZSAyMTI4OmNhc2UgMjEyNTpjYXNlIDU0OTpjYXNlIDIwNTM6Y2FzZSA1OTY6Y2FzZSAyMDc2OmNhc2UgMjA3NTpjYXNlIDIwODI6Y2FzZSAzOTc6Y2FzZSAxNTQ6Y2FzZSAxMTE3OmNhc2UgNTUzOmNhc2UgMjA5MTpicmVhaztjYXNlIDM1Om4ucHVzaChsKSx0PSEwO2JyZWFrO2Nhc2UgMzY6bi5wb3AoKSx0PSExO2JyZWFrO2Nhc2UgMzc6bi5wdXNoKGwpLHQ9ITA7YnJlYWs7Y2FzZSAzODpuLnBvcCgpLHQ9ITE7YnJlYWs7Y2FzZSAxNjpicmVhaztkZWZhdWx0OmlmKCFvLlQpe2lmKCF0fHxhLldURiYmbltuLmxlbmd0aC0xXSE9MzcmJm5bbi5sZW5ndGgtMV0hPTM1KXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCByZWNvcmQgMHgiK2wudG9TdHJpbmcoMTYpKX19fSxhKSxWcyhyKSxyLk5hbWVzPXMsci5zdXBib29rcz1pLHJ9ZnVuY3Rpb24gZXgoZSxhLHIpe3JldHVybiBhLnNsaWNlKC00KT09PSIuYmluIj9RdShlLHIpOll1KGUscil9ZnVuY3Rpb24gcngoZSxhLHIsbix0LHMsaSxjKXtyZXR1cm4gYS5zbGljZSgtNCk9PT0iLmJpbiI/TXUoZSxuLHIsdCxzLGksYyk6amgoZSxuLHIsdCxzLGksYyl9ZnVuY3Rpb24gYXgoZSxhLHIsbix0LHMsaSxjKXtyZXR1cm4gYS5zbGljZSgtNCk9PT0iLmJpbiI/VnUoZSxuLHIsdCxzKTpVdShlLG4scix0LHMpfWZ1bmN0aW9uIHR4KGUsYSxyLG4sdCxzLGksYyl7cmV0dXJuIGEuc2xpY2UoLTQpPT09Ii5iaW4iP2gxKCk6dTEoKX1mdW5jdGlvbiBueChlLGEscixuLHQscyxpLGMpe3JldHVybiBhLnNsaWNlKC00KT09PSIuYmluIj9vMSgpOmwxKCl9ZnVuY3Rpb24gc3goZSxhLHIsbil7cmV0dXJuIGEuc2xpY2UoLTQpPT09Ii5iaW4iP1NsKGUscixuKTpFbChlLHIsbil9ZnVuY3Rpb24gaXgoZSxhLHIpe3JldHVybiBfcyhlLHIpfWZ1bmN0aW9uIGN4KGUsYSxyKXtyZXR1cm4gYS5zbGljZSgtNCk9PT0iLmJpbiI/V28oZSxyKTpIbyhlLHIpfWZ1bmN0aW9uIGZ4KGUsYSxyKXtyZXR1cm4gYS5zbGljZSgtNCk9PT0iLmJpbiI/aTEoZSxyKTpyMShlLHIpfWZ1bmN0aW9uIG94KGUsYSxyKXtyZXR1cm4gYS5zbGljZSgtNCk9PT0iLmJpbiI/cWwoZSk6SmwoZSl9ZnVuY3Rpb24gbHgoZSxhLHIsbil7cmV0dXJuIHIuc2xpY2UoLTQpPT09Ii5iaW4iP1FsKGUsYSxyLG4pOnZvaWQgMH1mdW5jdGlvbiBoeChlLGEscil7cmV0dXJuIGEuc2xpY2UoLTQpPT09Ii5iaW4iP1lsKGUsYSxyKTpqbChlLGEscil9dmFyIFdzPS8oW1x3Ol0rKT0oKD86IikoW14iXSopKD86Iil8KD86JykoW14nXSopKD86JykpL2csR3M9LyhbXHc6XSspPSgoPzoiKSg/OlteIl0qKSg/OiIpfCg/OicpKD86W14nXSopKD86JykpLztmdW5jdGlvbiB3cihlLGEpe3ZhciByPWUuc3BsaXQoL1xzKy8pLG49W107aWYoblswXT1yWzBdLHIubGVuZ3RoPT09MSlyZXR1cm4gbjt2YXIgdD1lLm1hdGNoKFdzKSxzLGksYyxmO2lmKHQpZm9yKGY9MDtmIT10Lmxlbmd0aDsrK2Ypcz10W2ZdLm1hdGNoKEdzKSwoaT1zWzFdLmluZGV4T2YoIjoiKSk9PT0tMT9uW3NbMV1dPXNbMl0uc2xpY2UoMSxzWzJdLmxlbmd0aC0xKTooc1sxXS5zbGljZSgwLDYpPT09InhtbG5zOiI/Yz0ieG1sbnMiK3NbMV0uc2xpY2UoNik6Yz1zWzFdLnNsaWNlKGkrMSksbltjXT1zWzJdLnNsaWNlKDEsc1syXS5sZW5ndGgtMSkpO3JldHVybiBufWZ1bmN0aW9uIHV4KGUpe3ZhciBhPWUuc3BsaXQoL1xzKy8pLHI9e307aWYoYS5sZW5ndGg9PT0xKXJldHVybiByO3ZhciBuPWUubWF0Y2goV3MpLHQscyxpLGM7aWYobilmb3IoYz0wO2MhPW4ubGVuZ3RoOysrYyl0PW5bY10ubWF0Y2goR3MpLChzPXRbMV0uaW5kZXhPZigiOiIpKT09PS0xP3JbdFsxXV09dFsyXS5zbGljZSgxLHRbMl0ubGVuZ3RoLTEpOih0WzFdLnNsaWNlKDAsNik9PT0ieG1sbnM6Ij9pPSJ4bWxucyIrdFsxXS5zbGljZSg2KTppPXRbMV0uc2xpY2UocysxKSxyW2ldPXRbMl0uc2xpY2UoMSx0WzJdLmxlbmd0aC0xKSk7cmV0dXJuIHJ9dmFyIEthO2Z1bmN0aW9uIHh4KGUsYSl7dmFyIHI9S2FbZV18fEVlKGUpO3JldHVybiByPT09IkdlbmVyYWwiP1FyKGEpOnhyKHIsYSl9ZnVuY3Rpb24gZHgoZSxhLHIsbil7dmFyIHQ9bjtzd2l0Y2goKHJbMF0ubWF0Y2goL2R0OmR0PSIoW1x3Ll0rKSIvKXx8WyIiLCIiXSlbMV0pe2Nhc2UiYm9vbGVhbiI6dD1TZShuKTticmVhaztjYXNlImkyIjpjYXNlImludCI6dD1wYXJzZUludChuLDEwKTticmVhaztjYXNlInI0IjpjYXNlImZsb2F0Ijp0PXBhcnNlRmxvYXQobik7YnJlYWs7Y2FzZSJkYXRlIjpjYXNlImRhdGVUaW1lLnR6Ijp0PVdlKG4pO2JyZWFrO2Nhc2UiaTgiOmNhc2Uic3RyaW5nIjpjYXNlImZpeGVkIjpjYXNlInV1aWQiOmNhc2UiYmluLmJhc2U2NCI6YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImJhZCBjdXN0cHJvcDoiK3JbMF0pfWVbRWUoYSldPXR9ZnVuY3Rpb24gdngoZSxhLHIpe2lmKGUudCE9PSJ6Iil7aWYoIXJ8fHIuY2VsbFRleHQhPT0hMSl0cnl7ZS50PT09ImUiP2Uudz1lLnd8fGlhW2Uudl06YT09PSJHZW5lcmFsIj9lLnQ9PT0ibiI/KGUudnwwKT09PWUudj9lLnc9ZS52LnRvU3RyaW5nKDEwKTplLnc9RmEoZS52KTplLnc9UXIoZS52KTplLnc9eHgoYXx8IkdlbmVyYWwiLGUudil9Y2F0Y2gocyl7aWYoci5XVEYpdGhyb3cgc310cnl7dmFyIG49S2FbYV18fGF8fCJHZW5lcmFsIjtpZihyLmNlbGxORiYmKGUuej1uKSxyLmNlbGxEYXRlcyYmZS50PT0ibiImJnhhKG4pKXt2YXIgdD1xcihlLnYpO3QmJihlLnQ9ImQiLGUudj1uZXcgRGF0ZSh0LnksdC5tLTEsdC5kLHQuSCx0Lk0sdC5TLHQudSkpfX1jYXRjaChzKXtpZihyLldURil0aHJvdyBzfX19ZnVuY3Rpb24gcHgoZSxhLHIpe2lmKHIuY2VsbFN0eWxlcyYmYS5JbnRlcmlvcil7dmFyIG49YS5JbnRlcmlvcjtuLlBhdHRlcm4mJihuLnBhdHRlcm5UeXBlPWRsW24uUGF0dGVybl18fG4uUGF0dGVybil9ZVthLklEXT1hfWZ1bmN0aW9uIGd4KGUsYSxyLG4sdCxzLGksYyxmLG8pe3ZhciBsPSJHZW5lcmFsIixoPW4uU3R5bGVJRCx4PXt9O289b3x8e307dmFyIGQ9W10sdj0wO2ZvcihoPT09dm9pZCAwJiZjJiYoaD1jLlN0eWxlSUQpLGg9PT12b2lkIDAmJmkmJihoPWkuU3R5bGVJRCk7c1toXSE9PXZvaWQgMCYmKHNbaF0ubmYmJihsPXNbaF0ubmYpLHNbaF0uSW50ZXJpb3ImJmQucHVzaChzW2hdLkludGVyaW9yKSwhIXNbaF0uUGFyZW50KTspaD1zW2hdLlBhcmVudDtzd2l0Y2goci5UeXBlKXtjYXNlIkJvb2xlYW4iOm4udD0iYiIsbi52PVNlKGUpO2JyZWFrO2Nhc2UiU3RyaW5nIjpuLnQ9InMiLG4ucj1jbihFZShlKSksbi52PWUuaW5kZXhPZigiPCIpPi0xP0VlKGF8fGUpLnJlcGxhY2UoLzwuKj8+L2csIiIpOm4ucjticmVhaztjYXNlIkRhdGVUaW1lIjplLnNsaWNlKC0xKSE9IloiJiYoZSs9IloiKSxuLnY9KFdlKGUpLW5ldyBEYXRlKERhdGUuVVRDKDE4OTksMTEsMzApKSkvKDI0KjYwKjYwKjFlMyksbi52IT09bi52P24udj1FZShlKTpuLnY8NjAmJihuLnY9bi52LTEpLCghbHx8bD09IkdlbmVyYWwiKSYmKGw9Inl5eXktbW0tZGQiKTtjYXNlIk51bWJlciI6bi52PT09dm9pZCAwJiYobi52PStlKSxuLnR8fChuLnQ9Im4iKTticmVhaztjYXNlIkVycm9yIjpuLnQ9ImUiLG4udj1VbltlXSxvLmNlbGxUZXh0IT09ITEmJihuLnc9ZSk7YnJlYWs7ZGVmYXVsdDplPT0iIiYmYT09IiI/bi50PSJ6Ijoobi50PSJzIixuLnY9Y24oYXx8ZSkpO2JyZWFrfWlmKHZ4KG4sbCxvKSxvLmNlbGxGb3JtdWxhIT09ITEpaWYobi5Gb3JtdWxhKXt2YXIgdT1FZShuLkZvcm11bGEpO3UuY2hhckNvZGVBdCgwKT09NjEmJih1PXUuc2xpY2UoMSkpLG4uZj1FYSh1LHQpLGRlbGV0ZSBuLkZvcm11bGEsbi5BcnJheVJhbmdlPT0iUkMiP24uRj1FYSgiUkM6UkMiLHQpOm4uQXJyYXlSYW5nZSYmKG4uRj1FYShuLkFycmF5UmFuZ2UsdCksZi5wdXNoKFtPZShuLkYpLG4uRl0pKX1lbHNlIGZvcih2PTA7djxmLmxlbmd0aDsrK3YpdC5yPj1mW3ZdWzBdLnMuciYmdC5yPD1mW3ZdWzBdLmUuciYmdC5jPj1mW3ZdWzBdLnMuYyYmdC5jPD1mW3ZdWzBdLmUuYyYmKG4uRj1mW3ZdWzFdKTtvLmNlbGxTdHlsZXMmJihkLmZvckVhY2goZnVuY3Rpb24oZyl7IXgucGF0dGVyblR5cGUmJmcucGF0dGVyblR5cGUmJih4LnBhdHRlcm5UeXBlPWcucGF0dGVyblR5cGUpfSksbi5zPXgpLG4uU3R5bGVJRCE9PXZvaWQgMCYmKG4uaXhmZT1uLlN0eWxlSUQpfWZ1bmN0aW9uIG14KGUpe2UudD1lLnZ8fCIiLGUudD1lLnQucmVwbGFjZSgvXHJcbi9nLGAKYCkucmVwbGFjZSgvXHIvZyxgCmApLGUudj1lLnc9ZS5peGZlPXZvaWQgMH1mdW5jdGlvbiBzMChlLGEpe3ZhciByPWF8fHt9O0swKCk7dmFyIG49a2EoTXQoZSkpOyhyLnR5cGU9PSJiaW5hcnkifHxyLnR5cGU9PSJhcnJheSJ8fHIudHlwZT09ImJhc2U2NCIpJiYobj1BZShuKSk7dmFyIHQ9bi5zbGljZSgwLDEwMjQpLnRvTG93ZXJDYXNlKCkscz0hMTtpZih0PXQucmVwbGFjZSgvIi4qPyIvZywiIiksKHQuaW5kZXhPZigiPiIpJjEwMjMpPk1hdGgubWluKHQuaW5kZXhPZigiLCIpJjEwMjMsdC5pbmRleE9mKCI7IikmMTAyMykpe3ZhciBpPVhlKHIpO3JldHVybiBpLnR5cGU9InN0cmluZyIsYmEudG9fd29ya2Jvb2sobixpKX1pZih0LmluZGV4T2YoIjw/eG1sIik9PS0xJiZbImh0bWwiLCJ0YWJsZSIsImhlYWQiLCJtZXRhIiwic2NyaXB0Iiwic3R5bGUiLCJkaXYiXS5mb3JFYWNoKGZ1bmN0aW9uKE5lKXt0LmluZGV4T2YoIjwiK05lKT49MCYmKHM9ITApfSkscylyZXR1cm4gQ3gobixyKTtLYT17IkdlbmVyYWwgTnVtYmVyIjoiR2VuZXJhbCIsIkdlbmVyYWwgRGF0ZSI6ZGVbMjJdLCJMb25nIERhdGUiOiJkZGRkLCBtbW1tIGRkLCB5eXl5IiwiTWVkaXVtIERhdGUiOmRlWzE1XSwiU2hvcnQgRGF0ZSI6ZGVbMTRdLCJMb25nIFRpbWUiOmRlWzE5XSwiTWVkaXVtIFRpbWUiOmRlWzE4XSwiU2hvcnQgVGltZSI6ZGVbMjBdLEN1cnJlbmN5OiciJCIjLCMjMC4wMF8pO1tSZWRdXFwoIiQiIywjIzAuMDBcXCknLEZpeGVkOmRlWzJdLFN0YW5kYXJkOmRlWzRdLFBlcmNlbnQ6ZGVbMTBdLFNjaWVudGlmaWM6ZGVbMTFdLCJZZXMvTm8iOiciWWVzIjsiWWVzIjsiTm8iO0AnLCJUcnVlL0ZhbHNlIjonIlRydWUiOyJUcnVlIjsiRmFsc2UiO0AnLCJPbi9PZmYiOiciWWVzIjsiWWVzIjsiTm8iO0AnfTt2YXIgYyxmPVtdLG8sbD17fSxoPVtdLHg9ci5kZW5zZT9bXTp7fSxkPSIiLHY9e30sdT17fSxnPXdyKCc8RGF0YSBzczpUeXBlPSJTdHJpbmciPicpLEY9MCx5PTAsXz0wLE49e3M6e3I6MmU2LGM6MmU2fSxlOntyOjAsYzowfX0sYj17fSxJPXt9LEE9IiIsVj0wLEQ9W10sej17fSxHPXt9LFA9MCxKPVtdLGZlPVtdLHJlPXt9LGNlPVtdLGllLEZlPSExLFc9W10sbGU9W10saGU9e30sUz0wLFU9MCxSPXtTaGVldHM6W10sV0JQcm9wczp7ZGF0ZTE5MDQ6ITF9fSxPPXt9O0RhLmxhc3RJbmRleD0wLG49bi5yZXBsYWNlKC88IS0tKFtcc1xTXSo/KS0tPi9tZywiIik7Zm9yKHZhciBLPSIiO2M9RGEuZXhlYyhuKTspc3dpdGNoKGNbM109KEs9Y1szXSkudG9Mb3dlckNhc2UoKSl7Y2FzZSJkYXRhIjppZihLPT0iZGF0YSIpe2lmKGNbMV09PT0iLyIpe2lmKChvPWYucG9wKCkpWzBdIT09Y1szXSl0aHJvdyBuZXcgRXJyb3IoIkJhZCBzdGF0ZTogIitvLmpvaW4oInwiKSl9ZWxzZSBjWzBdLmNoYXJBdChjWzBdLmxlbmd0aC0yKSE9PSIvIiYmZi5wdXNoKFtjWzNdLCEwXSk7YnJlYWt9aWYoZltmLmxlbmd0aC0xXVsxXSlicmVhaztjWzFdPT09Ii8iP2d4KG4uc2xpY2UoRixjLmluZGV4KSxBLGcsZltmLmxlbmd0aC0xXVswXT09ImNvbW1lbnQiP3JlOnYse2M6eSxyOl99LGIsY2VbeV0sdSxXLHIpOihBPSIiLGc9d3IoY1swXSksRj1jLmluZGV4K2NbMF0ubGVuZ3RoKTticmVhaztjYXNlImNlbGwiOmlmKGNbMV09PT0iLyIpaWYoZmUubGVuZ3RoPjAmJih2LmM9ZmUpLCghci5zaGVldFJvd3N8fHIuc2hlZXRSb3dzPl8pJiZ2LnYhPT12b2lkIDAmJihyLmRlbnNlPyh4W19dfHwoeFtfXT1bXSkseFtfXVt5XT12KTp4W1VlKHkpK3plKF8pXT12KSx2LkhSZWYmJih2Lmw9e1RhcmdldDpFZSh2LkhSZWYpfSx2LkhSZWZTY3JlZW5UaXAmJih2LmwuVG9vbHRpcD12LkhSZWZTY3JlZW5UaXApLGRlbGV0ZSB2LkhSZWYsZGVsZXRlIHYuSFJlZlNjcmVlblRpcCksKHYuTWVyZ2VBY3Jvc3N8fHYuTWVyZ2VEb3duKSYmKFM9eSsocGFyc2VJbnQodi5NZXJnZUFjcm9zcywxMCl8MCksVT1fKyhwYXJzZUludCh2Lk1lcmdlRG93biwxMCl8MCksRC5wdXNoKHtzOntjOnkscjpffSxlOntjOlMscjpVfX0pKSwhci5zaGVldFN0dWJzKXYuTWVyZ2VBY3Jvc3M/eT1TKzE6Kyt5O2Vsc2UgaWYodi5NZXJnZUFjcm9zc3x8di5NZXJnZURvd24pe2Zvcih2YXIgZWU9eTtlZTw9UzsrK2VlKWZvcih2YXIgbmU9XztuZTw9VTsrK25lKShlZT55fHxuZT5fKSYmKHIuZGVuc2U/KHhbbmVdfHwoeFtuZV09W10pLHhbbmVdW2VlXT17dDoieiJ9KTp4W1VlKGVlKSt6ZShuZSldPXt0OiJ6In0pO3k9UysxfWVsc2UrK3k7ZWxzZSB2PXV4KGNbMF0pLHYuSW5kZXgmJih5PSt2LkluZGV4LTEpLHk8Ti5zLmMmJihOLnMuYz15KSx5Pk4uZS5jJiYoTi5lLmM9eSksY1swXS5zbGljZSgtMik9PT0iLz4iJiYrK3ksZmU9W107YnJlYWs7Y2FzZSJyb3ciOmNbMV09PT0iLyJ8fGNbMF0uc2xpY2UoLTIpPT09Ii8+Ij8oXzxOLnMuciYmKE4ucy5yPV8pLF8+Ti5lLnImJihOLmUucj1fKSxjWzBdLnNsaWNlKC0yKT09PSIvPiImJih1PXdyKGNbMF0pLHUuSW5kZXgmJihfPSt1LkluZGV4LTEpKSx5PTAsKytfKToodT13cihjWzBdKSx1LkluZGV4JiYoXz0rdS5JbmRleC0xKSxoZT17fSwodS5BdXRvRml0SGVpZ2h0PT0iMCJ8fHUuSGVpZ2h0KSYmKGhlLmhweD1wYXJzZUludCh1LkhlaWdodCwxMCksaGUuaHB0PW1zKGhlLmhweCksbGVbX109aGUpLHUuSGlkZGVuPT0iMSImJihoZS5oaWRkZW49ITAsbGVbX109aGUpKTticmVhaztjYXNlIndvcmtzaGVldCI6aWYoY1sxXT09PSIvIil7aWYoKG89Zi5wb3AoKSlbMF0hPT1jWzNdKXRocm93IG5ldyBFcnJvcigiQmFkIHN0YXRlOiAiK28uam9pbigifCIpKTtoLnB1c2goZCksTi5zLnI8PU4uZS5yJiZOLnMuYzw9Ti5lLmMmJih4WyIhcmVmIl09X2UoTiksci5zaGVldFJvd3MmJnIuc2hlZXRSb3dzPD1OLmUuciYmKHhbIiFmdWxscmVmIl09eFsiIXJlZiJdLE4uZS5yPXIuc2hlZXRSb3dzLTEseFsiIXJlZiJdPV9lKE4pKSksRC5sZW5ndGgmJih4WyIhbWVyZ2VzIl09RCksY2UubGVuZ3RoPjAmJih4WyIhY29scyJdPWNlKSxsZS5sZW5ndGg+MCYmKHhbIiFyb3dzIl09bGUpLGxbZF09eH1lbHNlIE49e3M6e3I6MmU2LGM6MmU2fSxlOntyOjAsYzowfX0sXz15PTAsZi5wdXNoKFtjWzNdLCExXSksbz13cihjWzBdKSxkPUVlKG8uTmFtZSkseD1yLmRlbnNlP1tdOnt9LEQ9W10sVz1bXSxsZT1bXSxPPXtuYW1lOmQsSGlkZGVuOjB9LFIuU2hlZXRzLnB1c2goTyk7YnJlYWs7Y2FzZSJ0YWJsZSI6aWYoY1sxXT09PSIvIil7aWYoKG89Zi5wb3AoKSlbMF0hPT1jWzNdKXRocm93IG5ldyBFcnJvcigiQmFkIHN0YXRlOiAiK28uam9pbigifCIpKX1lbHNle2lmKGNbMF0uc2xpY2UoLTIpPT0iLz4iKWJyZWFrO2YucHVzaChbY1szXSwhMV0pLGNlPVtdLEZlPSExfWJyZWFrO2Nhc2Uic3R5bGUiOmNbMV09PT0iLyI/cHgoYixJLHIpOkk9d3IoY1swXSk7YnJlYWs7Y2FzZSJudW1iZXJmb3JtYXQiOkkubmY9RWUod3IoY1swXSkuRm9ybWF0fHwiR2VuZXJhbCIpLEthW0kubmZdJiYoSS5uZj1LYVtJLm5mXSk7Zm9yKHZhciBxPTA7cSE9MzkyJiZkZVtxXSE9SS5uZjsrK3EpO2lmKHE9PTM5Mil7Zm9yKHE9NTc7cSE9MzkyOysrcSlpZihkZVtxXT09bnVsbCl7ZWEoSS5uZixxKTticmVha319YnJlYWs7Y2FzZSJjb2x1bW4iOmlmKGZbZi5sZW5ndGgtMV1bMF0hPT0idGFibGUiKWJyZWFrO2lmKGllPXdyKGNbMF0pLGllLkhpZGRlbiYmKGllLmhpZGRlbj0hMCxkZWxldGUgaWUuSGlkZGVuKSxpZS5XaWR0aCYmKGllLndweD1wYXJzZUludChpZS5XaWR0aCwxMCkpLCFGZSYmaWUud3B4PjEwKXtGZT0hMCxzcj1wcztmb3IodmFyIGo9MDtqPGNlLmxlbmd0aDsrK2opY2Vbal0mJl9hKGNlW2pdKX1GZSYmX2EoaWUpLGNlW2llLkluZGV4LTF8fGNlLmxlbmd0aF09aWU7Zm9yKHZhciBUZT0wO1RlPCtpZS5TcGFuOysrVGUpY2VbY2UubGVuZ3RoXT1YZShpZSk7YnJlYWs7Y2FzZSJuYW1lZHJhbmdlIjppZihjWzFdPT09Ii8iKWJyZWFrO1IuTmFtZXN8fChSLk5hbWVzPVtdKTt2YXIgQz1vZShjWzBdKSxJZT17TmFtZTpDLk5hbWUsUmVmOkVhKEMuUmVmZXJzVG8uc2xpY2UoMSkse3I6MCxjOjB9KX07Ui5TaGVldHMubGVuZ3RoPjAmJihJZS5TaGVldD1SLlNoZWV0cy5sZW5ndGgtMSksUi5OYW1lcy5wdXNoKEllKTticmVhaztjYXNlIm5hbWVkY2VsbCI6YnJlYWs7Y2FzZSJiIjpicmVhaztjYXNlImkiOmJyZWFrO2Nhc2UidSI6YnJlYWs7Y2FzZSJzIjpicmVhaztjYXNlImVtIjpicmVhaztjYXNlImgyIjpicmVhaztjYXNlImgzIjpicmVhaztjYXNlInN1YiI6YnJlYWs7Y2FzZSJzdXAiOmJyZWFrO2Nhc2Uic3BhbiI6YnJlYWs7Y2FzZSJhbGlnbm1lbnQiOmJyZWFrO2Nhc2UiYm9yZGVycyI6YnJlYWs7Y2FzZSJib3JkZXIiOmJyZWFrO2Nhc2UiZm9udCI6aWYoY1swXS5zbGljZSgtMik9PT0iLz4iKWJyZWFrO2NbMV09PT0iLyI/QSs9bi5zbGljZShWLGMuaW5kZXgpOlY9Yy5pbmRleCtjWzBdLmxlbmd0aDticmVhaztjYXNlImludGVyaW9yIjppZighci5jZWxsU3R5bGVzKWJyZWFrO0kuSW50ZXJpb3I9d3IoY1swXSk7YnJlYWs7Y2FzZSJwcm90ZWN0aW9uIjpicmVhaztjYXNlImF1dGhvciI6Y2FzZSJ0aXRsZSI6Y2FzZSJkZXNjcmlwdGlvbiI6Y2FzZSJjcmVhdGVkIjpjYXNlImtleXdvcmRzIjpjYXNlInN1YmplY3QiOmNhc2UiY2F0ZWdvcnkiOmNhc2UiY29tcGFueSI6Y2FzZSJsYXN0YXV0aG9yIjpjYXNlImxhc3RzYXZlZCI6Y2FzZSJsYXN0cHJpbnRlZCI6Y2FzZSJ2ZXJzaW9uIjpjYXNlInJldmlzaW9uIjpjYXNlInRvdGFsdGltZSI6Y2FzZSJoeXBlcmxpbmtiYXNlIjpjYXNlIm1hbmFnZXIiOmNhc2UiY29udGVudHN0YXR1cyI6Y2FzZSJpZGVudGlmaWVyIjpjYXNlImxhbmd1YWdlIjpjYXNlImFwcG5hbWUiOmlmKGNbMF0uc2xpY2UoLTIpPT09Ii8+IilicmVhaztjWzFdPT09Ii8iP1FjKHosSyxuLnNsaWNlKFAsYy5pbmRleCkpOlA9Yy5pbmRleCtjWzBdLmxlbmd0aDticmVhaztjYXNlInBhcmFncmFwaHMiOmJyZWFrO2Nhc2Uic3R5bGVzIjpjYXNlIndvcmtib29rIjppZihjWzFdPT09Ii8iKXtpZigobz1mLnBvcCgpKVswXSE9PWNbM10pdGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrby5qb2luKCJ8IikpfWVsc2UgZi5wdXNoKFtjWzNdLCExXSk7YnJlYWs7Y2FzZSJjb21tZW50IjppZihjWzFdPT09Ii8iKXtpZigobz1mLnBvcCgpKVswXSE9PWNbM10pdGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrby5qb2luKCJ8IikpO214KHJlKSxmZS5wdXNoKHJlKX1lbHNlIGYucHVzaChbY1szXSwhMV0pLG89d3IoY1swXSkscmU9e2E6by5BdXRob3J9O2JyZWFrO2Nhc2UiYXV0b2ZpbHRlciI6aWYoY1sxXT09PSIvIil7aWYoKG89Zi5wb3AoKSlbMF0hPT1jWzNdKXRocm93IG5ldyBFcnJvcigiQmFkIHN0YXRlOiAiK28uam9pbigifCIpKX1lbHNlIGlmKGNbMF0uY2hhckF0KGNbMF0ubGVuZ3RoLTIpIT09Ii8iKXt2YXIga2U9d3IoY1swXSk7eFsiIWF1dG9maWx0ZXIiXT17cmVmOkVhKGtlLlJhbmdlKS5yZXBsYWNlKC9cJC9nLCIiKX0sZi5wdXNoKFtjWzNdLCEwXSl9YnJlYWs7Y2FzZSJuYW1lIjpicmVhaztjYXNlImRhdGF2YWxpZGF0aW9uIjppZihjWzFdPT09Ii8iKXtpZigobz1mLnBvcCgpKVswXSE9PWNbM10pdGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrby5qb2luKCJ8IikpfWVsc2UgY1swXS5jaGFyQXQoY1swXS5sZW5ndGgtMikhPT0iLyImJmYucHVzaChbY1szXSwhMF0pO2JyZWFrO2Nhc2UicGl4ZWxzcGVyaW5jaCI6YnJlYWs7Y2FzZSJjb21wb25lbnRvcHRpb25zIjpjYXNlImRvY3VtZW50cHJvcGVydGllcyI6Y2FzZSJjdXN0b21kb2N1bWVudHByb3BlcnRpZXMiOmNhc2Uib2ZmaWNlZG9jdW1lbnRzZXR0aW5ncyI6Y2FzZSJwaXZvdHRhYmxlIjpjYXNlInBpdm90Y2FjaGUiOmNhc2UibmFtZXMiOmNhc2UibWFwaW5mbyI6Y2FzZSJwYWdlYnJlYWtzIjpjYXNlInF1ZXJ5dGFibGUiOmNhc2Uic29ydGluZyI6Y2FzZSJzY2hlbWEiOmNhc2UiY29uZGl0aW9uYWxmb3JtYXR0aW5nIjpjYXNlInNtYXJ0dGFndHlwZSI6Y2FzZSJzbWFydHRhZ3MiOmNhc2UiZXhjZWx3b3JrYm9vayI6Y2FzZSJ3b3JrYm9va29wdGlvbnMiOmNhc2Uid29ya3NoZWV0b3B0aW9ucyI6aWYoY1sxXT09PSIvIil7aWYoKG89Zi5wb3AoKSlbMF0hPT1jWzNdKXRocm93IG5ldyBFcnJvcigiQmFkIHN0YXRlOiAiK28uam9pbigifCIpKX1lbHNlIGNbMF0uY2hhckF0KGNbMF0ubGVuZ3RoLTIpIT09Ii8iJiZmLnB1c2goW2NbM10sITBdKTticmVhaztjYXNlIm51bGwiOmJyZWFrO2RlZmF1bHQ6aWYoZi5sZW5ndGg9PTAmJmNbM109PSJkb2N1bWVudCJ8fGYubGVuZ3RoPT0wJiZjWzNdPT0idW9mIilyZXR1cm4gUXMobixyKTt2YXIgd2U9ITA7c3dpdGNoKGZbZi5sZW5ndGgtMV1bMF0pe2Nhc2Uib2ZmaWNlZG9jdW1lbnRzZXR0aW5ncyI6c3dpdGNoKGNbM10pe2Nhc2UiYWxsb3dwbmciOmJyZWFrO2Nhc2UicmVtb3ZlcGVyc29uYWxpbmZvcm1hdGlvbiI6YnJlYWs7Y2FzZSJkb3dubG9hZGNvbXBvbmVudHMiOmJyZWFrO2Nhc2UibG9jYXRpb25vZmNvbXBvbmVudHMiOmJyZWFrO2Nhc2UiY29sb3JzIjpicmVhaztjYXNlImNvbG9yIjpicmVhaztjYXNlImluZGV4IjpicmVhaztjYXNlInJnYiI6YnJlYWs7Y2FzZSJ0YXJnZXRzY3JlZW5zaXplIjpicmVhaztjYXNlInJlYWRvbmx5cmVjb21tZW5kZWQiOmJyZWFrO2RlZmF1bHQ6d2U9ITF9YnJlYWs7Y2FzZSJjb21wb25lbnRvcHRpb25zIjpzd2l0Y2goY1szXSl7Y2FzZSJ0b29sYmFyIjpicmVhaztjYXNlImhpZGVvZmZpY2Vsb2dvIjpicmVhaztjYXNlInNwcmVhZHNoZWV0YXV0b2ZpdCI6YnJlYWs7Y2FzZSJsYWJlbCI6YnJlYWs7Y2FzZSJjYXB0aW9uIjpicmVhaztjYXNlIm1heGhlaWdodCI6YnJlYWs7Y2FzZSJtYXh3aWR0aCI6YnJlYWs7Y2FzZSJuZXh0c2hlZXRudW1iZXIiOmJyZWFrO2RlZmF1bHQ6d2U9ITF9YnJlYWs7Y2FzZSJleGNlbHdvcmtib29rIjpzd2l0Y2goY1szXSl7Y2FzZSJkYXRlMTkwNCI6Ui5XQlByb3BzLmRhdGUxOTA0PSEwO2JyZWFrO2Nhc2Uid2luZG93aGVpZ2h0IjpicmVhaztjYXNlIndpbmRvd3dpZHRoIjpicmVhaztjYXNlIndpbmRvd3RvcHgiOmJyZWFrO2Nhc2Uid2luZG93dG9weSI6YnJlYWs7Y2FzZSJ0YWJyYXRpbyI6YnJlYWs7Y2FzZSJwcm90ZWN0c3RydWN0dXJlIjpicmVhaztjYXNlInByb3RlY3R3aW5kb3ciOmJyZWFrO2Nhc2UicHJvdGVjdHdpbmRvd3MiOmJyZWFrO2Nhc2UiYWN0aXZlc2hlZXQiOmJyZWFrO2Nhc2UiZGlzcGxheWlua25vdGVzIjpicmVhaztjYXNlImZpcnN0dmlzaWJsZXNoZWV0IjpicmVhaztjYXNlInN1cGJvb2siOmJyZWFrO2Nhc2Uic2hlZXRuYW1lIjpicmVhaztjYXNlInNoZWV0aW5kZXgiOmJyZWFrO2Nhc2Uic2hlZXRpbmRleGZpcnN0IjpicmVhaztjYXNlInNoZWV0aW5kZXhsYXN0IjpicmVhaztjYXNlImRsbCI6YnJlYWs7Y2FzZSJhY2NlcHRsYWJlbHNpbmZvcm11bGFzIjpicmVhaztjYXNlImRvbm90c2F2ZWxpbmt2YWx1ZXMiOmJyZWFrO2Nhc2UiaXRlcmF0aW9uIjpicmVhaztjYXNlIm1heGl0ZXJhdGlvbnMiOmJyZWFrO2Nhc2UibWF4Y2hhbmdlIjpicmVhaztjYXNlInBhdGgiOmJyZWFrO2Nhc2UieGN0IjpicmVhaztjYXNlImNvdW50IjpicmVhaztjYXNlInNlbGVjdGVkc2hlZXRzIjpicmVhaztjYXNlImNhbGN1bGF0aW9uIjpicmVhaztjYXNlInVuY2FsY2VkIjpicmVhaztjYXNlInN0YXJ0dXBwcm9tcHQiOmJyZWFrO2Nhc2UiY3JuIjpicmVhaztjYXNlImV4dGVybm5hbWUiOmJyZWFrO2Nhc2UiZm9ybXVsYSI6YnJlYWs7Y2FzZSJjb2xmaXJzdCI6YnJlYWs7Y2FzZSJjb2xsYXN0IjpicmVhaztjYXNlIndhbnRhZHZpc2UiOmJyZWFrO2Nhc2UiYm9vbGVhbiI6YnJlYWs7Y2FzZSJlcnJvciI6YnJlYWs7Y2FzZSJ0ZXh0IjpicmVhaztjYXNlIm9sZSI6YnJlYWs7Y2FzZSJub2F1dG9yZWNvdmVyIjpicmVhaztjYXNlInB1Ymxpc2hvYmplY3RzIjpicmVhaztjYXNlImRvbm90Y2FsY3VsYXRlYmVmb3Jlc2F2ZSI6YnJlYWs7Y2FzZSJudW1iZXIiOmJyZWFrO2Nhc2UicmVmbW9kZXIxYzEiOmJyZWFrO2Nhc2UiZW1iZWRzYXZlc21hcnR0YWdzIjpicmVhaztkZWZhdWx0OndlPSExfWJyZWFrO2Nhc2Uid29ya2Jvb2tvcHRpb25zIjpzd2l0Y2goY1szXSl7Y2FzZSJvd2N2ZXJzaW9uIjpicmVhaztjYXNlImhlaWdodCI6YnJlYWs7Y2FzZSJ3aWR0aCI6YnJlYWs7ZGVmYXVsdDp3ZT0hMX1icmVhaztjYXNlIndvcmtzaGVldG9wdGlvbnMiOnN3aXRjaChjWzNdKXtjYXNlInZpc2libGUiOmlmKGNbMF0uc2xpY2UoLTIpIT09Ii8+IilpZihjWzFdPT09Ii8iKXN3aXRjaChuLnNsaWNlKFAsYy5pbmRleCkpe2Nhc2UiU2hlZXRIaWRkZW4iOk8uSGlkZGVuPTE7YnJlYWs7Y2FzZSJTaGVldFZlcnlIaWRkZW4iOk8uSGlkZGVuPTI7YnJlYWt9ZWxzZSBQPWMuaW5kZXgrY1swXS5sZW5ndGg7YnJlYWs7Y2FzZSJoZWFkZXIiOnhbIiFtYXJnaW5zIl18fHphKHhbIiFtYXJnaW5zIl09e30sInhsbWwiKSxpc05hTigrb2UoY1swXSkuTWFyZ2luKXx8KHhbIiFtYXJnaW5zIl0uaGVhZGVyPStvZShjWzBdKS5NYXJnaW4pO2JyZWFrO2Nhc2UiZm9vdGVyIjp4WyIhbWFyZ2lucyJdfHx6YSh4WyIhbWFyZ2lucyJdPXt9LCJ4bG1sIiksaXNOYU4oK29lKGNbMF0pLk1hcmdpbil8fCh4WyIhbWFyZ2lucyJdLmZvb3Rlcj0rb2UoY1swXSkuTWFyZ2luKTticmVhaztjYXNlInBhZ2VtYXJnaW5zIjp2YXIgcGU9b2UoY1swXSk7eFsiIW1hcmdpbnMiXXx8emEoeFsiIW1hcmdpbnMiXT17fSwieGxtbCIpLGlzTmFOKCtwZS5Ub3ApfHwoeFsiIW1hcmdpbnMiXS50b3A9K3BlLlRvcCksaXNOYU4oK3BlLkxlZnQpfHwoeFsiIW1hcmdpbnMiXS5sZWZ0PStwZS5MZWZ0KSxpc05hTigrcGUuUmlnaHQpfHwoeFsiIW1hcmdpbnMiXS5yaWdodD0rcGUuUmlnaHQpLGlzTmFOKCtwZS5Cb3R0b20pfHwoeFsiIW1hcmdpbnMiXS5ib3R0b209K3BlLkJvdHRvbSk7YnJlYWs7Y2FzZSJkaXNwbGF5cmlnaHR0b2xlZnQiOlIuVmlld3N8fChSLlZpZXdzPVtdKSxSLlZpZXdzWzBdfHwoUi5WaWV3c1swXT17fSksUi5WaWV3c1swXS5SVEw9ITA7YnJlYWs7Y2FzZSJmcmVlemVwYW5lcyI6YnJlYWs7Y2FzZSJmcm96ZW5ub3NwbGl0IjpicmVhaztjYXNlInNwbGl0aG9yaXpvbnRhbCI6Y2FzZSJzcGxpdHZlcnRpY2FsIjpicmVhaztjYXNlImRvbm90ZGlzcGxheWdyaWRsaW5lcyI6YnJlYWs7Y2FzZSJhY3RpdmVyb3ciOmJyZWFrO2Nhc2UiYWN0aXZlY29sIjpicmVhaztjYXNlInRvcHJvd2JvdHRvbXBhbmUiOmJyZWFrO2Nhc2UibGVmdGNvbHVtbnJpZ2h0cGFuZSI6YnJlYWs7Y2FzZSJ1bnN5bmNlZCI6YnJlYWs7Y2FzZSJwcmludCI6YnJlYWs7Y2FzZSJwcmludGVycm9ycyI6YnJlYWs7Y2FzZSJwYW5lcyI6YnJlYWs7Y2FzZSJzY2FsZSI6YnJlYWs7Y2FzZSJwYW5lIjpicmVhaztjYXNlIm51bWJlciI6YnJlYWs7Y2FzZSJsYXlvdXQiOmJyZWFrO2Nhc2UicGFnZXNldHVwIjpicmVhaztjYXNlInNlbGVjdGVkIjpicmVhaztjYXNlInByb3RlY3RvYmplY3RzIjpicmVhaztjYXNlImVuYWJsZXNlbGVjdGlvbiI6YnJlYWs7Y2FzZSJwcm90ZWN0c2NlbmFyaW9zIjpicmVhaztjYXNlInZhbGlkcHJpbnRlcmluZm8iOmJyZWFrO2Nhc2UiaG9yaXpvbnRhbHJlc29sdXRpb24iOmJyZWFrO2Nhc2UidmVydGljYWxyZXNvbHV0aW9uIjpicmVhaztjYXNlIm51bWJlcm9mY29waWVzIjpicmVhaztjYXNlImFjdGl2ZXBhbmUiOmJyZWFrO2Nhc2UidG9wcm93dmlzaWJsZSI6YnJlYWs7Y2FzZSJsZWZ0Y29sdW1udmlzaWJsZSI6YnJlYWs7Y2FzZSJmaXR0b3BhZ2UiOmJyZWFrO2Nhc2UicmFuZ2VzZWxlY3Rpb24iOmJyZWFrO2Nhc2UicGFwZXJzaXplaW5kZXgiOmJyZWFrO2Nhc2UicGFnZWxheW91dHpvb20iOmJyZWFrO2Nhc2UicGFnZWJyZWFrem9vbSI6YnJlYWs7Y2FzZSJmaWx0ZXJvbiI6YnJlYWs7Y2FzZSJmaXR3aWR0aCI6YnJlYWs7Y2FzZSJmaXRoZWlnaHQiOmJyZWFrO2Nhc2UiY29tbWVudHNsYXlvdXQiOmJyZWFrO2Nhc2Uiem9vbSI6YnJlYWs7Y2FzZSJsZWZ0dG9yaWdodCI6YnJlYWs7Y2FzZSJncmlkbGluZXMiOmJyZWFrO2Nhc2UiYWxsb3dzb3J0IjpicmVhaztjYXNlImFsbG93ZmlsdGVyIjpicmVhaztjYXNlImFsbG93aW5zZXJ0cm93cyI6YnJlYWs7Y2FzZSJhbGxvd2RlbGV0ZXJvd3MiOmJyZWFrO2Nhc2UiYWxsb3dpbnNlcnRjb2xzIjpicmVhaztjYXNlImFsbG93ZGVsZXRlY29scyI6YnJlYWs7Y2FzZSJhbGxvd2luc2VydGh5cGVybGlua3MiOmJyZWFrO2Nhc2UiYWxsb3dmb3JtYXRjZWxscyI6YnJlYWs7Y2FzZSJhbGxvd3NpemVjb2xzIjpicmVhaztjYXNlImFsbG93c2l6ZXJvd3MiOmJyZWFrO2Nhc2Uibm9zdW1tYXJ5cm93c2JlbG93ZGV0YWlsIjp4WyIhb3V0bGluZSJdfHwoeFsiIW91dGxpbmUiXT17fSkseFsiIW91dGxpbmUiXS5hYm92ZT0hMDticmVhaztjYXNlInRhYmNvbG9yaW5kZXgiOmJyZWFrO2Nhc2UiZG9ub3RkaXNwbGF5aGVhZGluZ3MiOmJyZWFrO2Nhc2Uic2hvd3BhZ2VsYXlvdXR6b29tIjpicmVhaztjYXNlIm5vc3VtbWFyeWNvbHVtbnNyaWdodGRldGFpbCI6eFsiIW91dGxpbmUiXXx8KHhbIiFvdXRsaW5lIl09e30pLHhbIiFvdXRsaW5lIl0ubGVmdD0hMDticmVhaztjYXNlImJsYWNrYW5kd2hpdGUiOmJyZWFrO2Nhc2UiZG9ub3RkaXNwbGF5emVyb3MiOmJyZWFrO2Nhc2UiZGlzcGxheXBhZ2VicmVhayI6YnJlYWs7Y2FzZSJyb3djb2xoZWFkaW5ncyI6YnJlYWs7Y2FzZSJkb25vdGRpc3BsYXlvdXRsaW5lIjpicmVhaztjYXNlIm5vb3JpZW50YXRpb24iOmJyZWFrO2Nhc2UiYWxsb3d1c2VwaXZvdHRhYmxlcyI6YnJlYWs7Y2FzZSJ6ZXJvaGVpZ2h0IjpicmVhaztjYXNlInZpZXdhYmxlcmFuZ2UiOmJyZWFrO2Nhc2Uic2VsZWN0aW9uIjpicmVhaztjYXNlInByb3RlY3Rjb250ZW50cyI6YnJlYWs7ZGVmYXVsdDp3ZT0hMX1icmVhaztjYXNlInBpdm90dGFibGUiOmNhc2UicGl2b3RjYWNoZSI6c3dpdGNoKGNbM10pe2Nhc2UiaW1tZWRpYXRlaXRlbXNvbmRyb3AiOmJyZWFrO2Nhc2Uic2hvd3BhZ2VtdWx0aXBsZWl0ZW1sYWJlbCI6YnJlYWs7Y2FzZSJjb21wYWN0cm93aW5kZW50IjpicmVhaztjYXNlImxvY2F0aW9uIjpicmVhaztjYXNlInBpdm90ZmllbGQiOmJyZWFrO2Nhc2Uib3JpZW50YXRpb24iOmJyZWFrO2Nhc2UibGF5b3V0Zm9ybSI6YnJlYWs7Y2FzZSJsYXlvdXRzdWJ0b3RhbGxvY2F0aW9uIjpicmVhaztjYXNlImxheW91dGNvbXBhY3Ryb3ciOmJyZWFrO2Nhc2UicG9zaXRpb24iOmJyZWFrO2Nhc2UicGl2b3RpdGVtIjpicmVhaztjYXNlImRhdGF0eXBlIjpicmVhaztjYXNlImRhdGFmaWVsZCI6YnJlYWs7Y2FzZSJzb3VyY2VuYW1lIjpicmVhaztjYXNlInBhcmVudGZpZWxkIjpicmVhaztjYXNlInB0bGluZWl0ZW1zIjpicmVhaztjYXNlInB0bGluZWl0ZW0iOmJyZWFrO2Nhc2UiY291bnRvZnNhbWVpdGVtcyI6YnJlYWs7Y2FzZSJpdGVtIjpicmVhaztjYXNlIml0ZW10eXBlIjpicmVhaztjYXNlInB0c291cmNlIjpicmVhaztjYXNlImNhY2hlaW5kZXgiOmJyZWFrO2Nhc2UiY29uc29saWRhdGlvbnJlZmVyZW5jZSI6YnJlYWs7Y2FzZSJmaWxlbmFtZSI6YnJlYWs7Y2FzZSJyZWZlcmVuY2UiOmJyZWFrO2Nhc2Uibm9jb2x1bW5ncmFuZCI6YnJlYWs7Y2FzZSJub3Jvd2dyYW5kIjpicmVhaztjYXNlImJsYW5rbGluZWFmdGVyaXRlbXMiOmJyZWFrO2Nhc2UiaGlkZGVuIjpicmVhaztjYXNlInN1YnRvdGFsIjpicmVhaztjYXNlImJhc2VmaWVsZCI6YnJlYWs7Y2FzZSJtYXBjaGlsZGl0ZW1zIjpicmVhaztjYXNlImZ1bmN0aW9uIjpicmVhaztjYXNlInJlZnJlc2hvbmZpbGVvcGVuIjpicmVhaztjYXNlInByaW50c2V0dGl0bGVzIjpicmVhaztjYXNlIm1lcmdlbGFiZWxzIjpicmVhaztjYXNlImRlZmF1bHR2ZXJzaW9uIjpicmVhaztjYXNlInJlZnJlc2huYW1lIjpicmVhaztjYXNlInJlZnJlc2hkYXRlIjpicmVhaztjYXNlInJlZnJlc2hkYXRlY29weSI6YnJlYWs7Y2FzZSJ2ZXJzaW9ubGFzdHJlZnJlc2giOmJyZWFrO2Nhc2UidmVyc2lvbmxhc3R1cGRhdGUiOmJyZWFrO2Nhc2UidmVyc2lvbnVwZGF0ZWFibGVtaW4iOmJyZWFrO2Nhc2UidmVyc2lvbnJlZnJlc2hhYmxlbWluIjpicmVhaztjYXNlImNhbGN1bGF0aW9uIjpicmVhaztkZWZhdWx0OndlPSExfWJyZWFrO2Nhc2UicGFnZWJyZWFrcyI6c3dpdGNoKGNbM10pe2Nhc2UiY29sYnJlYWtzIjpicmVhaztjYXNlImNvbGJyZWFrIjpicmVhaztjYXNlInJvd2JyZWFrcyI6YnJlYWs7Y2FzZSJyb3dicmVhayI6YnJlYWs7Y2FzZSJjb2xzdGFydCI6YnJlYWs7Y2FzZSJjb2xlbmQiOmJyZWFrO2Nhc2Uicm93ZW5kIjpicmVhaztkZWZhdWx0OndlPSExfWJyZWFrO2Nhc2UiYXV0b2ZpbHRlciI6c3dpdGNoKGNbM10pe2Nhc2UiYXV0b2ZpbHRlcmNvbHVtbiI6YnJlYWs7Y2FzZSJhdXRvZmlsdGVyY29uZGl0aW9uIjpicmVhaztjYXNlImF1dG9maWx0ZXJhbmQiOmJyZWFrO2Nhc2UiYXV0b2ZpbHRlcm9yIjpicmVhaztkZWZhdWx0OndlPSExfWJyZWFrO2Nhc2UicXVlcnl0YWJsZSI6c3dpdGNoKGNbM10pe2Nhc2UiaWQiOmJyZWFrO2Nhc2UiYXV0b2Zvcm1hdGZvbnQiOmJyZWFrO2Nhc2UiYXV0b2Zvcm1hdHBhdHRlcm4iOmJyZWFrO2Nhc2UicXVlcnlzb3VyY2UiOmJyZWFrO2Nhc2UicXVlcnl0eXBlIjpicmVhaztjYXNlImVuYWJsZXJlZGlyZWN0aW9ucyI6YnJlYWs7Y2FzZSJyZWZyZXNoZWRpbnhsOSI6YnJlYWs7Y2FzZSJ1cmxzdHJpbmciOmJyZWFrO2Nhc2UiaHRtbHRhYmxlcyI6YnJlYWs7Y2FzZSJjb25uZWN0aW9uIjpicmVhaztjYXNlImNvbW1hbmR0ZXh0IjpicmVhaztjYXNlInJlZnJlc2hpbmZvIjpicmVhaztjYXNlIm5vdGl0bGVzIjpicmVhaztjYXNlIm5leHRpZCI6YnJlYWs7Y2FzZSJjb2x1bW5pbmZvIjpicmVhaztjYXNlIm92ZXJ3cml0ZWNlbGxzIjpicmVhaztjYXNlImRvbm90cHJvbXB0Zm9yZmlsZSI6YnJlYWs7Y2FzZSJ0ZXh0d2l6YXJkc2V0dGluZ3MiOmJyZWFrO2Nhc2Uic291cmNlIjpicmVhaztjYXNlIm51bWJlciI6YnJlYWs7Y2FzZSJkZWNpbWFsIjpicmVhaztjYXNlInRob3VzYW5kc2VwYXJhdG9yIjpicmVhaztjYXNlInRyYWlsaW5nbWludXNudW1iZXJzIjpicmVhaztjYXNlImZvcm1hdHNldHRpbmdzIjpicmVhaztjYXNlImZpZWxkdHlwZSI6YnJlYWs7Y2FzZSJkZWxpbWl0ZXJzIjpicmVhaztjYXNlInRhYiI6YnJlYWs7Y2FzZSJjb21tYSI6YnJlYWs7Y2FzZSJhdXRvZm9ybWF0bmFtZSI6YnJlYWs7Y2FzZSJ2ZXJzaW9ubGFzdGVkaXQiOmJyZWFrO2Nhc2UidmVyc2lvbmxhc3RyZWZyZXNoIjpicmVhaztkZWZhdWx0OndlPSExfWJyZWFrO2Nhc2UiZGF0YXZhbGlkYXRpb24iOnN3aXRjaChjWzNdKXtjYXNlInJhbmdlIjpicmVhaztjYXNlInR5cGUiOmJyZWFrO2Nhc2UibWluIjpicmVhaztjYXNlIm1heCI6YnJlYWs7Y2FzZSJzb3J0IjpicmVhaztjYXNlImRlc2NlbmRpbmciOmJyZWFrO2Nhc2Uib3JkZXIiOmJyZWFrO2Nhc2UiY2FzZXNlbnNpdGl2ZSI6YnJlYWs7Y2FzZSJ2YWx1ZSI6YnJlYWs7Y2FzZSJlcnJvcnN0eWxlIjpicmVhaztjYXNlImVycm9ybWVzc2FnZSI6YnJlYWs7Y2FzZSJlcnJvcnRpdGxlIjpicmVhaztjYXNlImlucHV0bWVzc2FnZSI6YnJlYWs7Y2FzZSJpbnB1dHRpdGxlIjpicmVhaztjYXNlImNvbWJvaGlkZSI6YnJlYWs7Y2FzZSJpbnB1dGhpZGUiOmJyZWFrO2Nhc2UiY29uZGl0aW9uIjpicmVhaztjYXNlInF1YWxpZmllciI6YnJlYWs7Y2FzZSJ1c2VibGFuayI6YnJlYWs7Y2FzZSJ2YWx1ZTEiOmJyZWFrO2Nhc2UidmFsdWUyIjpicmVhaztjYXNlImZvcm1hdCI6YnJlYWs7Y2FzZSJjZWxscmFuZ2VsaXN0IjpicmVhaztkZWZhdWx0OndlPSExfWJyZWFrO2Nhc2Uic29ydGluZyI6Y2FzZSJjb25kaXRpb25hbGZvcm1hdHRpbmciOnN3aXRjaChjWzNdKXtjYXNlInJhbmdlIjpicmVhaztjYXNlInR5cGUiOmJyZWFrO2Nhc2UibWluIjpicmVhaztjYXNlIm1heCI6YnJlYWs7Y2FzZSJzb3J0IjpicmVhaztjYXNlImRlc2NlbmRpbmciOmJyZWFrO2Nhc2Uib3JkZXIiOmJyZWFrO2Nhc2UiY2FzZXNlbnNpdGl2ZSI6YnJlYWs7Y2FzZSJ2YWx1ZSI6YnJlYWs7Y2FzZSJlcnJvcnN0eWxlIjpicmVhaztjYXNlImVycm9ybWVzc2FnZSI6YnJlYWs7Y2FzZSJlcnJvcnRpdGxlIjpicmVhaztjYXNlImNlbGxyYW5nZWxpc3QiOmJyZWFrO2Nhc2UiaW5wdXRtZXNzYWdlIjpicmVhaztjYXNlImlucHV0dGl0bGUiOmJyZWFrO2Nhc2UiY29tYm9oaWRlIjpicmVhaztjYXNlImlucHV0aGlkZSI6YnJlYWs7Y2FzZSJjb25kaXRpb24iOmJyZWFrO2Nhc2UicXVhbGlmaWVyIjpicmVhaztjYXNlInVzZWJsYW5rIjpicmVhaztjYXNlInZhbHVlMSI6YnJlYWs7Y2FzZSJ2YWx1ZTIiOmJyZWFrO2Nhc2UiZm9ybWF0IjpicmVhaztkZWZhdWx0OndlPSExfWJyZWFrO2Nhc2UibWFwaW5mbyI6Y2FzZSJzY2hlbWEiOmNhc2UiZGF0YSI6c3dpdGNoKGNbM10pe2Nhc2UibWFwIjpicmVhaztjYXNlImVudHJ5IjpicmVhaztjYXNlInJhbmdlIjpicmVhaztjYXNlInhwYXRoIjpicmVhaztjYXNlImZpZWxkIjpicmVhaztjYXNlInhzZHR5cGUiOmJyZWFrO2Nhc2UiZmlsdGVyb24iOmJyZWFrO2Nhc2UiYWdncmVnYXRlIjpicmVhaztjYXNlImVsZW1lbnR0eXBlIjpicmVhaztjYXNlImF0dHJpYnV0ZXR5cGUiOmJyZWFrO2Nhc2Uic2NoZW1hIjpjYXNlImVsZW1lbnQiOmNhc2UiY29tcGxleHR5cGUiOmNhc2UiZGF0YXR5cGUiOmNhc2UiYWxsIjpjYXNlImF0dHJpYnV0ZSI6Y2FzZSJleHRlbmRzIjpicmVhaztjYXNlInJvdyI6YnJlYWs7ZGVmYXVsdDp3ZT0hMX1icmVhaztjYXNlInNtYXJ0dGFncyI6YnJlYWs7ZGVmYXVsdDp3ZT0hMTticmVha31pZih3ZXx8Y1szXS5tYXRjaCgvIVxbQ0RBVEEvKSlicmVhaztpZighZltmLmxlbmd0aC0xXVsxXSl0aHJvdyJVbnJlY29nbml6ZWQgdGFnOiAiK2NbM10rInwiK2Yuam9pbigifCIpO2lmKGZbZi5sZW5ndGgtMV1bMF09PT0iY3VzdG9tZG9jdW1lbnRwcm9wZXJ0aWVzIil7aWYoY1swXS5zbGljZSgtMik9PT0iLz4iKWJyZWFrO2NbMV09PT0iLyI/ZHgoRyxLLEosbi5zbGljZShQLGMuaW5kZXgpKTooSj1jLFA9Yy5pbmRleCtjWzBdLmxlbmd0aCk7YnJlYWt9aWYoci5XVEYpdGhyb3ciVW5yZWNvZ25pemVkIHRhZzogIitjWzNdKyJ8IitmLmpvaW4oInwiKX12YXIgYWU9e307cmV0dXJuIXIuYm9va1NoZWV0cyYmIXIuYm9va1Byb3BzJiYoYWUuU2hlZXRzPWwpLGFlLlNoZWV0TmFtZXM9aCxhZS5Xb3JrYm9vaz1SLGFlLlNTRj1YZShkZSksYWUuUHJvcHM9eixhZS5DdXN0cHJvcHM9RyxhZX1mdW5jdGlvbiBpMChlLGEpe3N3aXRjaCh4MChhPWF8fHt9KSxhLnR5cGV8fCJiYXNlNjQiKXtjYXNlImJhc2U2NCI6cmV0dXJuIHMwKGZyKGUpLGEpO2Nhc2UiYmluYXJ5IjpjYXNlImJ1ZmZlciI6Y2FzZSJmaWxlIjpyZXR1cm4gczAoZSxhKTtjYXNlImFycmF5IjpyZXR1cm4gczAoWnIoZSksYSl9fWZ1bmN0aW9uIF94KGUpe3ZhciBhPXt9LHI9ZS5jb250ZW50O2lmKHIubD0yOCxhLkFuc2lVc2VyVHlwZT1yLnJlYWRfc2hpZnQoMCwibHBzdHItYW5zaSIpLGEuQW5zaUNsaXBib2FyZEZvcm1hdD1SYyhyKSxyLmxlbmd0aC1yLmw8PTQpcmV0dXJuIGE7dmFyIG49ci5yZWFkX3NoaWZ0KDQpO2lmKG49PTB8fG4+NDB8fChyLmwtPTQsYS5SZXNlcnZlZDE9ci5yZWFkX3NoaWZ0KDAsImxwc3RyLWFuc2kiKSxyLmxlbmd0aC1yLmw8PTQpfHwobj1yLnJlYWRfc2hpZnQoNCksbiE9PTE5MDc1MDU2NTIpfHwoYS5Vbmljb2RlQ2xpcGJvYXJkRm9ybWF0PUljKHIpLG49ci5yZWFkX3NoaWZ0KDQpLG49PTB8fG4+NDApKXJldHVybiBhO3IubC09NCxhLlJlc2VydmVkMj1yLnJlYWRfc2hpZnQoMCwibHB3c3RyIil9dmFyIEV4PVs2MCwxMDg0LDIwNjYsMjE2NSwyMTc1XTtmdW5jdGlvbiBUeChlLGEscixuLHQpe3ZhciBzPW4saT1bXSxjPXIuc2xpY2Uoci5sLHIubCtzKTtpZih0JiZ0LmVuYyYmdC5lbmMuaW5zaXR1JiZjLmxlbmd0aD4wKXN3aXRjaChlKXtjYXNlIDk6Y2FzZSA1MjE6Y2FzZSAxMDMzOmNhc2UgMjA1NzpjYXNlIDQ3OmNhc2UgNDA1OmNhc2UgMjI1OmNhc2UgNDA2OmNhc2UgMzEyOmNhc2UgNDA0OmNhc2UgMTA6YnJlYWs7Y2FzZSAxMzM6YnJlYWs7ZGVmYXVsdDp0LmVuYy5pbnNpdHUoYyl9aS5wdXNoKGMpLHIubCs9cztmb3IodmFyIGY9TnIocixyLmwpLG89YzBbZl0sbD0wO28hPW51bGwmJkV4LmluZGV4T2YoZik+LTE7KXM9TnIocixyLmwrMiksbD1yLmwrNCxmPT0yMDY2P2wrPTQ6KGY9PTIxNjV8fGY9PTIxNzUpJiYobCs9MTIpLGM9ci5zbGljZShsLHIubCs0K3MpLGkucHVzaChjKSxyLmwrPTQrcyxvPWMwW2Y9TnIocixyLmwpXTt2YXIgaD1XcihpKTskZShoLDApO3ZhciB4PTA7aC5sZW5zPVtdO2Zvcih2YXIgZD0wO2Q8aS5sZW5ndGg7KytkKWgubGVucy5wdXNoKHgpLHgrPWlbZF0ubGVuZ3RoO2lmKGgubGVuZ3RoPG4pdGhyb3ciWExTIFJlY29yZCAweCIrZS50b1N0cmluZygxNikrIiBUcnVuY2F0ZWQ6ICIraC5sZW5ndGgrIiA8ICIrbjtyZXR1cm4gYS5mKGgsaC5sZW5ndGgsdCl9ZnVuY3Rpb24gRHIoZSxhLHIpe2lmKGUudCE9PSJ6IiYmZS5YRil7dmFyIG49MDt0cnl7bj1lLnp8fGUuWEYubnVtRm10SWR8fDAsYS5jZWxsTkYmJihlLno9ZGVbbl0pfWNhdGNoKHMpe2lmKGEuV1RGKXRocm93IHN9aWYoIWF8fGEuY2VsbFRleHQhPT0hMSl0cnl7ZS50PT09ImUiP2Uudz1lLnd8fGlhW2Uudl06bj09PTB8fG49PSJHZW5lcmFsIj9lLnQ9PT0ibiI/KGUudnwwKT09PWUudj9lLnc9ZS52LnRvU3RyaW5nKDEwKTplLnc9RmEoZS52KTplLnc9UXIoZS52KTplLnc9eHIobixlLnYse2RhdGUxOTA0OiEhcixkYXRlTkY6YSYmYS5kYXRlTkZ9KX1jYXRjaChzKXtpZihhLldURil0aHJvdyBzfWlmKGEuY2VsbERhdGVzJiZuJiZlLnQ9PSJuIiYmeGEoZGVbbl18fFN0cmluZyhuKSkpe3ZhciB0PXFyKGUudik7dCYmKGUudD0iZCIsZS52PW5ldyBEYXRlKHQueSx0Lm0tMSx0LmQsdC5ILHQuTSx0LlMsdC51KSl9fX1mdW5jdGlvbiB3dChlLGEscil7cmV0dXJue3Y6ZSxpeGZlOmEsdDpyfX1mdW5jdGlvbiBreChlLGEpe3ZhciByPXtvcHRzOnt9fSxuPXt9LHQ9YS5kZW5zZT9bXTp7fSxzPXt9LGk9e30sYz1udWxsLGY9W10sbz0iIixsPXt9LGgseD0iIixkLHYsdSxnLEY9e30seT1bXSxfLE4sYj1bXSxJPVtdLEE9e1NoZWV0czpbXSxXQlByb3BzOntkYXRlMTkwNDohMX0sVmlld3M6W3t9XX0sVj17fSxEPWZ1bmN0aW9uKHZlKXtyZXR1cm4gdmU8OD9zYVt2ZV06dmU8NjQmJklbdmUtOF18fHNhW3ZlXX0sej1mdW5jdGlvbih2ZSxQZSxtcil7dmFyIFZlPVBlLlhGLmRhdGE7aWYoISghVmV8fCFWZS5wYXR0ZXJuVHlwZXx8IW1yfHwhbXIuY2VsbFN0eWxlcykpe1BlLnM9e30sUGUucy5wYXR0ZXJuVHlwZT1WZS5wYXR0ZXJuVHlwZTt2YXIgb2E7KG9hPUhhKEQoVmUuaWN2Rm9yZSkpKSYmKFBlLnMuZmdDb2xvcj17cmdiOm9hfSksKG9hPUhhKEQoVmUuaWN2QmFjaykpKSYmKFBlLnMuYmdDb2xvcj17cmdiOm9hfSl9fSxHPWZ1bmN0aW9uKHZlLFBlLG1yKXtpZighKGhlPjEpJiYhKG1yLnNoZWV0Um93cyYmdmUucj49bXIuc2hlZXRSb3dzKSl7aWYobXIuY2VsbFN0eWxlcyYmUGUuWEYmJlBlLlhGLmRhdGEmJnoodmUsUGUsbXIpLGRlbGV0ZSBQZS5peGZlLGRlbGV0ZSBQZS5YRixoPXZlLHg9dWUodmUpLCghaXx8IWkuc3x8IWkuZSkmJihpPXtzOntyOjAsYzowfSxlOntyOjAsYzowfX0pLHZlLnI8aS5zLnImJihpLnMucj12ZS5yKSx2ZS5jPGkucy5jJiYoaS5zLmM9dmUuYyksdmUucisxPmkuZS5yJiYoaS5lLnI9dmUucisxKSx2ZS5jKzE+aS5lLmMmJihpLmUuYz12ZS5jKzEpLG1yLmNlbGxGb3JtdWxhJiZQZS5mKXtmb3IodmFyIFZlPTA7VmU8eS5sZW5ndGg7KytWZSlpZighKHlbVmVdWzBdLnMuYz52ZS5jfHx5W1ZlXVswXS5zLnI+dmUucikmJiEoeVtWZV1bMF0uZS5jPHZlLmN8fHlbVmVdWzBdLmUucjx2ZS5yKSl7UGUuRj1fZSh5W1ZlXVswXSksKHlbVmVdWzBdLnMuYyE9dmUuY3x8eVtWZV1bMF0ucy5yIT12ZS5yKSYmZGVsZXRlIFBlLmYsUGUuZiYmKFBlLmY9IiIrcWUoeVtWZV1bMV0saSx2ZSxXLFApKTticmVha319bXIuZGVuc2U/KHRbdmUucl18fCh0W3ZlLnJdPVtdKSx0W3ZlLnJdW3ZlLmNdPVBlKTp0W3hdPVBlfX0sUD17ZW5jOiExLHNiY2NoOjAsc25hbWVzOltdLHNoYXJlZGY6RixhcnJheWY6eSxycnRhYmlkOltdLGxhc3R1c2VyOiIiLGJpZmY6OCxjb2RlcGFnZTowLHdpbmxvY2tlZDowLGNlbGxTdHlsZXM6ISFhJiYhIWEuY2VsbFN0eWxlcyxXVEY6ISFhJiYhIWEud3RmfTthLnBhc3N3b3JkJiYoUC5wYXNzd29yZD1hLnBhc3N3b3JkKTt2YXIgSixmZT1bXSxyZT1bXSxjZT1bXSxpZT1bXSxGZT0hMSxXPVtdO1cuU2hlZXROYW1lcz1QLnNuYW1lcyxXLnNoYXJlZGY9UC5zaGFyZWRmLFcuYXJyYXlmPVAuYXJyYXlmLFcubmFtZXM9W10sVy5YVEk9W107dmFyIGxlPTAsaGU9MCxTPTAsVT1bXSxSPVtdLE87UC5jb2RlcGFnZT0xMjAwLF9yKDEyMDApO2Zvcih2YXIgSz0hMTtlLmw8ZS5sZW5ndGgtMTspe3ZhciBlZT1lLmwsbmU9ZS5yZWFkX3NoaWZ0KDIpO2lmKG5lPT09MCYmbGU9PT0xMClicmVhazt2YXIgcT1lLmw9PT1lLmxlbmd0aD8wOmUucmVhZF9zaGlmdCgyKSxqPWMwW25lXTtpZihqJiZqLmYpe2lmKGEuYm9va1NoZWV0cyYmbGU9PT0xMzMmJm5lIT09MTMzKWJyZWFrO2lmKGxlPW5lLGoucj09PTJ8fGoucj09MTIpe3ZhciBUZT1lLnJlYWRfc2hpZnQoMik7aWYocS09MiwhUC5lbmMmJlRlIT09bmUmJigoVGUmMjU1KTw8OHxUZT4+OCkhPT1uZSl0aHJvdyBuZXcgRXJyb3IoInJ0IG1pc21hdGNoOiAiK1RlKyIhPSIrbmUpO2oucj09MTImJihlLmwrPTEwLHEtPTEwKX12YXIgQz17fTtpZihuZT09PTEwP0M9ai5mKGUscSxQKTpDPVR4KG5lLGosZSxxLFApLGhlPT0wJiZbOSw1MjEsMTAzMywyMDU3XS5pbmRleE9mKGxlKT09PS0xKWNvbnRpbnVlO3N3aXRjaChuZSl7Y2FzZSAzNDpyLm9wdHMuRGF0ZTE5MDQ9QS5XQlByb3BzLmRhdGUxOTA0PUM7YnJlYWs7Y2FzZSAxMzQ6ci5vcHRzLldyaXRlUHJvdGVjdD0hMDticmVhaztjYXNlIDQ3OmlmKFAuZW5jfHwoZS5sPTApLFAuZW5jPUMsIWEucGFzc3dvcmQpdGhyb3cgbmV3IEVycm9yKCJGaWxlIGlzIHBhc3N3b3JkLXByb3RlY3RlZCIpO2lmKEMudmFsaWQ9PW51bGwpdGhyb3cgbmV3IEVycm9yKCJFbmNyeXB0aW9uIHNjaGVtZSB1bnN1cHBvcnRlZCIpO2lmKCFDLnZhbGlkKXRocm93IG5ldyBFcnJvcigiUGFzc3dvcmQgaXMgaW5jb3JyZWN0Iik7YnJlYWs7Y2FzZSA5MjpQLmxhc3R1c2VyPUM7YnJlYWs7Y2FzZSA2Njp2YXIgSWU9TnVtYmVyKEMpO3N3aXRjaChJZSl7Y2FzZSAyMTAxMDpJZT0xMjAwO2JyZWFrO2Nhc2UgMzI3Njg6SWU9MWU0O2JyZWFrO2Nhc2UgMzI3Njk6SWU9MTI1MjticmVha31fcihQLmNvZGVwYWdlPUllKSxLPSEwO2JyZWFrO2Nhc2UgMzE3OlAucnJ0YWJpZD1DO2JyZWFrO2Nhc2UgMjU6UC53aW5sb2NrZWQ9QzticmVhaztjYXNlIDQzOTpyLm9wdHMuUmVmcmVzaEFsbD1DO2JyZWFrO2Nhc2UgMTI6ci5vcHRzLkNhbGNDb3VudD1DO2JyZWFrO2Nhc2UgMTY6ci5vcHRzLkNhbGNEZWx0YT1DO2JyZWFrO2Nhc2UgMTc6ci5vcHRzLkNhbGNJdGVyPUM7YnJlYWs7Y2FzZSAxMzpyLm9wdHMuQ2FsY01vZGU9QzticmVhaztjYXNlIDE0OnIub3B0cy5DYWxjUHJlY2lzaW9uPUM7YnJlYWs7Y2FzZSA5NTpyLm9wdHMuQ2FsY1NhdmVSZWNhbGM9QzticmVhaztjYXNlIDE1OlAuQ2FsY1JlZk1vZGU9QzticmVhaztjYXNlIDIyMTE6ci5vcHRzLkZ1bGxDYWxjPUM7YnJlYWs7Y2FzZSAxMjk6Qy5mRGlhbG9nJiYodFsiIXR5cGUiXT0iZGlhbG9nIiksQy5mQmVsb3d8fCgodFsiIW91dGxpbmUiXXx8KHRbIiFvdXRsaW5lIl09e30pKS5hYm92ZT0hMCksQy5mUmlnaHR8fCgodFsiIW91dGxpbmUiXXx8KHRbIiFvdXRsaW5lIl09e30pKS5sZWZ0PSEwKTticmVhaztjYXNlIDIyNDpiLnB1c2goQyk7YnJlYWs7Y2FzZSA0MzA6Vy5wdXNoKFtDXSksV1tXLmxlbmd0aC0xXS5YVEk9W107YnJlYWs7Y2FzZSAzNTpjYXNlIDU0NzpXW1cubGVuZ3RoLTFdLnB1c2goQyk7YnJlYWs7Y2FzZSAyNDpjYXNlIDUzNjpPPXtOYW1lOkMuTmFtZSxSZWY6cWUoQy5yZ2NlLGksbnVsbCxXLFApfSxDLml0YWI+MCYmKE8uU2hlZXQ9Qy5pdGFiLTEpLFcubmFtZXMucHVzaChPKSxXWzBdfHwoV1swXT1bXSxXWzBdLlhUST1bXSksV1tXLmxlbmd0aC0xXS5wdXNoKEMpLEMuTmFtZT09Il94bG5tLl9GaWx0ZXJEYXRhYmFzZSImJkMuaXRhYj4wJiZDLnJnY2UmJkMucmdjZVswXSYmQy5yZ2NlWzBdWzBdJiZDLnJnY2VbMF1bMF1bMF09PSJQdGdBcmVhM2QiJiYoUltDLml0YWItMV09e3JlZjpfZShDLnJnY2VbMF1bMF1bMV1bMl0pfSk7YnJlYWs7Y2FzZSAyMjpQLkV4dGVybkNvdW50PUM7YnJlYWs7Y2FzZSAyMzpXLmxlbmd0aD09MCYmKFdbMF09W10sV1swXS5YVEk9W10pLFdbVy5sZW5ndGgtMV0uWFRJPVdbVy5sZW5ndGgtMV0uWFRJLmNvbmNhdChDKSxXLlhUST1XLlhUSS5jb25jYXQoQyk7YnJlYWs7Y2FzZSAyMTk2OmlmKFAuYmlmZjw4KWJyZWFrO08hPW51bGwmJihPLkNvbW1lbnQ9Q1sxXSk7YnJlYWs7Y2FzZSAxODp0WyIhcHJvdGVjdCJdPUM7YnJlYWs7Y2FzZSAxOTpDIT09MCYmUC5XVEYmJmNvbnNvbGUuZXJyb3IoIlBhc3N3b3JkIHZlcmlmaWVyOiAiK0MpO2JyZWFrO2Nhc2UgMTMzOnNbQy5wb3NdPUMsUC5zbmFtZXMucHVzaChDLm5hbWUpO2JyZWFrO2Nhc2UgMTA6e2lmKC0taGUpYnJlYWs7aWYoaS5lKXtpZihpLmUucj4wJiZpLmUuYz4wKXtpZihpLmUuci0tLGkuZS5jLS0sdFsiIXJlZiJdPV9lKGkpLGEuc2hlZXRSb3dzJiZhLnNoZWV0Um93czw9aS5lLnIpe3ZhciBrZT1pLmUucjtpLmUucj1hLnNoZWV0Um93cy0xLHRbIiFmdWxscmVmIl09dFsiIXJlZiJdLHRbIiFyZWYiXT1fZShpKSxpLmUucj1rZX1pLmUucisrLGkuZS5jKyt9ZmUubGVuZ3RoPjAmJih0WyIhbWVyZ2VzIl09ZmUpLHJlLmxlbmd0aD4wJiYodFsiIW9iamVjdHMiXT1yZSksY2UubGVuZ3RoPjAmJih0WyIhY29scyJdPWNlKSxpZS5sZW5ndGg+MCYmKHRbIiFyb3dzIl09aWUpLEEuU2hlZXRzLnB1c2goVil9bz09PSIiP2w9dDpuW29dPXQsdD1hLmRlbnNlP1tdOnt9fWJyZWFrO2Nhc2UgOTpjYXNlIDUyMTpjYXNlIDEwMzM6Y2FzZSAyMDU3OntpZihQLmJpZmY9PT04JiYoUC5iaWZmPXs5OjIsNTIxOjMsMTAzMzo0fVtuZV18fHs1MTI6Miw3Njg6MywxMDI0OjQsMTI4MDo1LDE1MzY6OCwyOjIsNzoyfVtDLkJJRkZWZXJdfHw4KSxQLmJpZmZndWVzcz1DLkJJRkZWZXI9PTAsQy5CSUZGVmVyPT0wJiZDLmR0PT00MDk2JiYoUC5iaWZmPTUsSz0hMCxfcihQLmNvZGVwYWdlPTI4NTkxKSksUC5iaWZmPT04JiZDLkJJRkZWZXI9PTAmJkMuZHQ9PTE2JiYoUC5iaWZmPTIpLGhlKyspYnJlYWs7aWYodD1hLmRlbnNlP1tdOnt9LFAuYmlmZjw4JiYhSyYmKEs9ITAsX3IoUC5jb2RlcGFnZT1hLmNvZGVwYWdlfHwxMjUyKSksUC5iaWZmPDV8fEMuQklGRlZlcj09MCYmQy5kdD09NDA5Nil7bz09PSIiJiYobz0iU2hlZXQxIiksaT17czp7cjowLGM6MH0sZTp7cjowLGM6MH19O3ZhciB3ZT17cG9zOmUubC1xLG5hbWU6b307c1t3ZS5wb3NdPXdlLFAuc25hbWVzLnB1c2gobyl9ZWxzZSBvPShzW2VlXXx8e25hbWU6IiJ9KS5uYW1lO0MuZHQ9PTMyJiYodFsiIXR5cGUiXT0iY2hhcnQiKSxDLmR0PT02NCYmKHRbIiF0eXBlIl09Im1hY3JvIiksZmU9W10scmU9W10sUC5hcnJheWY9eT1bXSxjZT1bXSxpZT1bXSxGZT0hMSxWPXtIaWRkZW46KHNbZWVdfHx7aHM6MH0pLmhzLG5hbWU6b319YnJlYWs7Y2FzZSA1MTU6Y2FzZSAzOmNhc2UgMjp0WyIhdHlwZSJdPT0iY2hhcnQiJiYoYS5kZW5zZT8odFtDLnJdfHxbXSlbQy5jXTp0W3VlKHtjOkMuYyxyOkMucn0pXSkmJisrQy5jLF89e2l4ZmU6Qy5peGZlLFhGOmJbQy5peGZlXXx8e30sdjpDLnZhbCx0OiJuIn0sUz4wJiYoXy56PVVbXy5peGZlPj44JjYzXSksRHIoXyxhLHIub3B0cy5EYXRlMTkwNCksRyh7YzpDLmMscjpDLnJ9LF8sYSk7YnJlYWs7Y2FzZSA1OmNhc2UgNTE3Ol89e2l4ZmU6Qy5peGZlLFhGOmJbQy5peGZlXSx2OkMudmFsLHQ6Qy50fSxTPjAmJihfLno9VVtfLml4ZmU+PjgmNjNdKSxEcihfLGEsci5vcHRzLkRhdGUxOTA0KSxHKHtjOkMuYyxyOkMucn0sXyxhKTticmVhaztjYXNlIDYzODpfPXtpeGZlOkMuaXhmZSxYRjpiW0MuaXhmZV0sdjpDLnJrbnVtLHQ6Im4ifSxTPjAmJihfLno9VVtfLml4ZmU+PjgmNjNdKSxEcihfLGEsci5vcHRzLkRhdGUxOTA0KSxHKHtjOkMuYyxyOkMucn0sXyxhKTticmVhaztjYXNlIDE4OTpmb3IodmFyIHBlPUMuYztwZTw9Qy5DOysrcGUpe3ZhciBhZT1DLnJrcmVjW3BlLUMuY11bMF07Xz17aXhmZTphZSxYRjpiW2FlXSx2OkMucmtyZWNbcGUtQy5jXVsxXSx0OiJuIn0sUz4wJiYoXy56PVVbXy5peGZlPj44JjYzXSksRHIoXyxhLHIub3B0cy5EYXRlMTkwNCksRyh7YzpwZSxyOkMucn0sXyxhKX1icmVhaztjYXNlIDY6Y2FzZSA1MTg6Y2FzZSAxMDMwOntpZihDLnZhbD09IlN0cmluZyIpe2M9QzticmVha31pZihfPXd0KEMudmFsLEMuY2VsbC5peGZlLEMudHQpLF8uWEY9YltfLml4ZmVdLGEuY2VsbEZvcm11bGEpe3ZhciBOZT1DLmZvcm11bGE7aWYoTmUmJk5lWzBdJiZOZVswXVswXSYmTmVbMF1bMF1bMF09PSJQdGdFeHAiKXt2YXIgZ3I9TmVbMF1bMF1bMV1bMF0sT3I9TmVbMF1bMF1bMV1bMV0sQnI9dWUoe3I6Z3IsYzpPcn0pO0ZbQnJdP18uZj0iIitxZShDLmZvcm11bGEsaSxDLmNlbGwsVyxQKTpfLkY9KChhLmRlbnNlPyh0W2dyXXx8W10pW09yXTp0W0JyXSl8fHt9KS5GfWVsc2UgXy5mPSIiK3FlKEMuZm9ybXVsYSxpLEMuY2VsbCxXLFApfVM+MCYmKF8uej1VW18uaXhmZT4+OCY2M10pLERyKF8sYSxyLm9wdHMuRGF0ZTE5MDQpLEcoQy5jZWxsLF8sYSksYz1DfWJyZWFrO2Nhc2UgNzpjYXNlIDUxOTppZihjKWMudmFsPUMsXz13dChDLGMuY2VsbC5peGZlLCJzIiksXy5YRj1iW18uaXhmZV0sYS5jZWxsRm9ybXVsYSYmKF8uZj0iIitxZShjLmZvcm11bGEsaSxjLmNlbGwsVyxQKSksUz4wJiYoXy56PVVbXy5peGZlPj44JjYzXSksRHIoXyxhLHIub3B0cy5EYXRlMTkwNCksRyhjLmNlbGwsXyxhKSxjPW51bGw7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIlN0cmluZyByZWNvcmQgZXhwZWN0cyBGb3JtdWxhIik7YnJlYWs7Y2FzZSAzMzpjYXNlIDU0NTp7eS5wdXNoKEMpO3ZhciBKYT11ZShDWzBdLnMpO2lmKGQ9YS5kZW5zZT8odFtDWzBdLnMucl18fFtdKVtDWzBdLnMuY106dFtKYV0sYS5jZWxsRm9ybXVsYSYmZCl7aWYoIWN8fCFKYXx8IWQpYnJlYWs7ZC5mPSIiK3FlKENbMV0saSxDWzBdLFcsUCksZC5GPV9lKENbMF0pfX1icmVhaztjYXNlIDEyMTI6e2lmKCFhLmNlbGxGb3JtdWxhKWJyZWFrO2lmKHgpe2lmKCFjKWJyZWFrO0ZbdWUoYy5jZWxsKV09Q1swXSxkPWEuZGVuc2U/KHRbYy5jZWxsLnJdfHxbXSlbYy5jZWxsLmNdOnRbdWUoYy5jZWxsKV0sKGR8fHt9KS5mPSIiK3FlKENbMF0saSxoLFcsUCl9fWJyZWFrO2Nhc2UgMjUzOl89d3QoZltDLmlzc3RdLnQsQy5peGZlLCJzIiksZltDLmlzc3RdLmgmJihfLmg9ZltDLmlzc3RdLmgpLF8uWEY9YltfLml4ZmVdLFM+MCYmKF8uej1VW18uaXhmZT4+OCY2M10pLERyKF8sYSxyLm9wdHMuRGF0ZTE5MDQpLEcoe2M6Qy5jLHI6Qy5yfSxfLGEpO2JyZWFrO2Nhc2UgNTEzOmEuc2hlZXRTdHVicyYmKF89e2l4ZmU6Qy5peGZlLFhGOmJbQy5peGZlXSx0OiJ6In0sUz4wJiYoXy56PVVbXy5peGZlPj44JjYzXSksRHIoXyxhLHIub3B0cy5EYXRlMTkwNCksRyh7YzpDLmMscjpDLnJ9LF8sYSkpO2JyZWFrO2Nhc2UgMTkwOmlmKGEuc2hlZXRTdHVicylmb3IodmFyIFlyPUMuYztZcjw9Qy5DOysrWXIpe3ZhciBocj1DLml4ZmVbWXItQy5jXTtfPXtpeGZlOmhyLFhGOmJbaHJdLHQ6InoifSxTPjAmJihfLno9VVtfLml4ZmU+PjgmNjNdKSxEcihfLGEsci5vcHRzLkRhdGUxOTA0KSxHKHtjOllyLHI6Qy5yfSxfLGEpfWJyZWFrO2Nhc2UgMjE0OmNhc2UgNTE2OmNhc2UgNDpfPXd0KEMudmFsLEMuaXhmZSwicyIpLF8uWEY9YltfLml4ZmVdLFM+MCYmKF8uej1VW18uaXhmZT4+OCY2M10pLERyKF8sYSxyLm9wdHMuRGF0ZTE5MDQpLEcoe2M6Qy5jLHI6Qy5yfSxfLGEpO2JyZWFrO2Nhc2UgMDpjYXNlIDUxMjpoZT09PTEmJihpPUMpO2JyZWFrO2Nhc2UgMjUyOmY9QzticmVhaztjYXNlIDEwNTQ6aWYoUC5iaWZmPT00KXtVW1MrK109Q1sxXTtmb3IodmFyIGJyPTA7YnI8UysxNjMmJmRlW2JyXSE9Q1sxXTsrK2JyKTticj49MTYzJiZlYShDWzFdLFMrMTYzKX1lbHNlIGVhKENbMV0sQ1swXSk7YnJlYWs7Y2FzZSAzMDp7VVtTKytdPUM7Zm9yKHZhciBqcj0wO2pyPFMrMTYzJiZkZVtqcl0hPUM7Kytqcik7anI+PTE2MyYmZWEoQyxTKzE2Myl9YnJlYWs7Y2FzZSAyMjk6ZmU9ZmUuY29uY2F0KEMpO2JyZWFrO2Nhc2UgOTM6cmVbQy5jbW9bMF1dPVAubGFzdG9iaj1DO2JyZWFrO2Nhc2UgNDM4OlAubGFzdG9iai5UeE89QzticmVhaztjYXNlIDEyNzpQLmxhc3RvYmouSW1EYXRhPUM7YnJlYWs7Y2FzZSA0NDA6Zm9yKGc9Q1swXS5zLnI7Zzw9Q1swXS5lLnI7KytnKWZvcih1PUNbMF0ucy5jO3U8PUNbMF0uZS5jOysrdSlkPWEuZGVuc2U/KHRbZ118fFtdKVt1XTp0W3VlKHtjOnUscjpnfSldLGQmJihkLmw9Q1sxXSk7YnJlYWs7Y2FzZSAyMDQ4OmZvcihnPUNbMF0ucy5yO2c8PUNbMF0uZS5yOysrZylmb3IodT1DWzBdLnMuYzt1PD1DWzBdLmUuYzsrK3UpZD1hLmRlbnNlPyh0W2ddfHxbXSlbdV06dFt1ZSh7Yzp1LHI6Z30pXSxkJiZkLmwmJihkLmwuVG9vbHRpcD1DWzFdKTticmVhaztjYXNlIDI4OntpZihQLmJpZmY8PTUmJlAuYmlmZj49MilicmVhaztkPWEuZGVuc2U/KHRbQ1swXS5yXXx8W10pW0NbMF0uY106dFt1ZShDWzBdKV07dmFyIFphPXJlW0NbMl1dO2R8fChhLmRlbnNlPyh0W0NbMF0ucl18fCh0W0NbMF0ucl09W10pLGQ9dFtDWzBdLnJdW0NbMF0uY109e3Q6InoifSk6ZD10W3VlKENbMF0pXT17dDoieiJ9LGkuZS5yPU1hdGgubWF4KGkuZS5yLENbMF0uciksaS5zLnI9TWF0aC5taW4oaS5zLnIsQ1swXS5yKSxpLmUuYz1NYXRoLm1heChpLmUuYyxDWzBdLmMpLGkucy5jPU1hdGgubWluKGkucy5jLENbMF0uYykpLGQuY3x8KGQuYz1bXSksdj17YTpDWzFdLHQ6WmEuVHhPLnR9LGQuYy5wdXNoKHYpfWJyZWFrO2Nhc2UgMjE3MzpYbChiW0MuaXhmZV0sQy5leHQpO2JyZWFrO2Nhc2UgMTI1OntpZighUC5jZWxsU3R5bGVzKWJyZWFrO2Zvcig7Qy5lPj1DLnM7KWNlW0MuZS0tXT17d2lkdGg6Qy53LzI1NixsZXZlbDpDLmxldmVsfHwwLGhpZGRlbjohIShDLmZsYWdzJjEpfSxGZXx8KEZlPSEwLGUwKEMudy8yNTYpKSxfYShjZVtDLmUrMV0pfWJyZWFrO2Nhc2UgNTIwOnt2YXIgaXI9e307Qy5sZXZlbCE9bnVsbCYmKGllW0Mucl09aXIsaXIubGV2ZWw9Qy5sZXZlbCksQy5oaWRkZW4mJihpZVtDLnJdPWlyLGlyLmhpZGRlbj0hMCksQy5ocHQmJihpZVtDLnJdPWlyLGlyLmhwdD1DLmhwdCxpci5ocHg9VmEoQy5ocHQpKX1icmVhaztjYXNlIDM4OmNhc2UgMzk6Y2FzZSA0MDpjYXNlIDQxOnRbIiFtYXJnaW5zIl18fHphKHRbIiFtYXJnaW5zIl09e30pLHRbIiFtYXJnaW5zIl1bezM4OiJsZWZ0IiwzOToicmlnaHQiLDQwOiJ0b3AiLDQxOiJib3R0b20ifVtuZV1dPUM7YnJlYWs7Y2FzZSAxNjE6dFsiIW1hcmdpbnMiXXx8emEodFsiIW1hcmdpbnMiXT17fSksdFsiIW1hcmdpbnMiXS5oZWFkZXI9Qy5oZWFkZXIsdFsiIW1hcmdpbnMiXS5mb290ZXI9Qy5mb290ZXI7YnJlYWs7Y2FzZSA1NzQ6Qy5SVEwmJihBLlZpZXdzWzBdLlJUTD0hMCk7YnJlYWs7Y2FzZSAxNDY6ST1DO2JyZWFrO2Nhc2UgMjE5ODpKPUM7YnJlYWs7Y2FzZSAxNDA6Tj1DO2JyZWFrO2Nhc2UgNDQyOm8/Vi5Db2RlTmFtZT1DfHxWLm5hbWU6QS5XQlByb3BzLkNvZGVOYW1lPUN8fCJUaGlzV29ya2Jvb2siO2JyZWFrfX1lbHNlIGp8fGNvbnNvbGUuZXJyb3IoIk1pc3NpbmcgSW5mbyBmb3IgWExTIFJlY29yZCAweCIrbmUudG9TdHJpbmcoMTYpKSxlLmwrPXF9cmV0dXJuIHIuU2hlZXROYW1lcz1TcihzKS5zb3J0KGZ1bmN0aW9uKFJyLHZlKXtyZXR1cm4gTnVtYmVyKFJyKS1OdW1iZXIodmUpfSkubWFwKGZ1bmN0aW9uKFJyKXtyZXR1cm4gc1tScl0ubmFtZX0pLGEuYm9va1NoZWV0c3x8KHIuU2hlZXRzPW4pLCFyLlNoZWV0TmFtZXMubGVuZ3RoJiZsWyIhcmVmIl0/KHIuU2hlZXROYW1lcy5wdXNoKCJTaGVldDEiKSxyLlNoZWV0cyYmKHIuU2hlZXRzLlNoZWV0MT1sKSk6ci5QcmVhbWJsZT1sLHIuU2hlZXRzJiZSLmZvckVhY2goZnVuY3Rpb24oUnIsdmUpe3IuU2hlZXRzW3IuU2hlZXROYW1lc1t2ZV1dWyIhYXV0b2ZpbHRlciJdPVJyfSksci5TdHJpbmdzPWYsci5TU0Y9WGUoZGUpLFAuZW5jJiYoci5FbmNyeXB0aW9uPVAuZW5jKSxKJiYoci5UaGVtZXM9Siksci5NZXRhZGF0YT17fSxOIT09dm9pZCAwJiYoci5NZXRhZGF0YS5Db3VudHJ5PU4pLFcubmFtZXMubGVuZ3RoPjAmJihBLk5hbWVzPVcubmFtZXMpLHIuV29ya2Jvb2s9QSxyfXZhciBYcz17U0k6ImUwODU5ZmYyZjk0ZjY4MTBhYjkxMDgwMDJiMjdiM2Q5IixEU0k6IjAyZDVjZGQ1OWMyZTFiMTA5Mzk3MDgwMDJiMmNmOWFlIixVREk6IjA1ZDVjZGQ1OWMyZTFiMTA5Mzk3MDgwMDJiMmNmOWFlIn07ZnVuY3Rpb24gd3goZSxhLHIpe3ZhciBuPW1lLmZpbmQoZSwiLyFEb2N1bWVudFN1bW1hcnlJbmZvcm1hdGlvbiIpO2lmKG4mJm4uc2l6ZT4wKXRyeXt2YXIgdD1qbihuLGJjLFhzLkRTSSk7Zm9yKHZhciBzIGluIHQpYVtzXT10W3NdfWNhdGNoKG8pe2lmKHIuV1RGKXRocm93IG99dmFyIGk9bWUuZmluZChlLCIvIVN1bW1hcnlJbmZvcm1hdGlvbiIpO2lmKGkmJmkuc2l6ZT4wKXRyeXt2YXIgYz1qbihpLFVjLFhzLlNJKTtmb3IodmFyIGYgaW4gYylhW2ZdPT1udWxsJiYoYVtmXT1jW2ZdKX1jYXRjaChvKXtpZihyLldURil0aHJvdyBvfWEuSGVhZGluZ1BhaXJzJiZhLlRpdGxlc09mUGFydHMmJihXbihhLkhlYWRpbmdQYWlycyxhLlRpdGxlc09mUGFydHMsYSxyKSxkZWxldGUgYS5IZWFkaW5nUGFpcnMsZGVsZXRlIGEuVGl0bGVzT2ZQYXJ0cyl9ZnVuY3Rpb24gJHMoZSxhKXthfHwoYT17fSkseDAoYSksQTAoKSxhLmNvZGVwYWdlJiZDdChhLmNvZGVwYWdlKTt2YXIgcixuO2lmKGUuRnVsbFBhdGhzKXtpZihtZS5maW5kKGUsIi9lbmNyeXB0aW9uIikpdGhyb3cgbmV3IEVycm9yKCJGaWxlIGlzIHBhc3N3b3JkLXByb3RlY3RlZCIpO3I9bWUuZmluZChlLCIhQ29tcE9iaiIpLG49bWUuZmluZChlLCIvV29ya2Jvb2siKXx8bWUuZmluZChlLCIvQm9vayIpfWVsc2V7c3dpdGNoKGEudHlwZSl7Y2FzZSJiYXNlNjQiOmU9RXIoZnIoZSkpO2JyZWFrO2Nhc2UiYmluYXJ5IjplPUVyKGUpO2JyZWFrO2Nhc2UiYnVmZmVyIjpicmVhaztjYXNlImFycmF5IjpBcnJheS5pc0FycmF5KGUpfHwoZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlKSk7YnJlYWt9JGUoZSwwKSxuPXtjb250ZW50OmV9fXZhciB0LHM7aWYociYmX3gociksYS5ib29rUHJvcHMmJiFhLmJvb2tTaGVldHMpdD17fTtlbHNle3ZhciBpPWdlPyJidWZmZXIiOiJhcnJheSI7aWYobiYmbi5jb250ZW50KXQ9a3gobi5jb250ZW50LGEpO2Vsc2UgaWYoKHM9bWUuZmluZChlLCJQZXJmZWN0T2ZmaWNlX01BSU4iKSkmJnMuY29udGVudCl0PVVhLnRvX3dvcmtib29rKHMuY29udGVudCwoYS50eXBlPWksYSkpO2Vsc2UgaWYoKHM9bWUuZmluZChlLCJOYXRpdmVDb250ZW50X01BSU4iKSkmJnMuY29udGVudCl0PVVhLnRvX3dvcmtib29rKHMuY29udGVudCwoYS50eXBlPWksYSkpO2Vsc2UgdGhyb3cocz1tZS5maW5kKGUsIk1OMCIpKSYmcy5jb250ZW50P25ldyBFcnJvcigiVW5zdXBwb3J0ZWQgV29ya3MgNCBmb3IgTWFjIGZpbGUiKTpuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIFdvcmtib29rIHN0cmVhbSIpO2EuYm9va1ZCQSYmZS5GdWxsUGF0aHMmJm1lLmZpbmQoZSwiL19WQkFfUFJPSkVDVF9DVVIvVkJBL2RpciIpJiYodC52YmFyYXc9ZjEoZSkpfXZhciBjPXt9O3JldHVybiBlLkZ1bGxQYXRocyYmd3goZSxjLGEpLHQuUHJvcHM9dC5DdXN0cHJvcHM9YyxhLmJvb2tGaWxlcyYmKHQuY2ZiPWUpLHR9dmFyIEF0PXswOntmOm51fSwxOntmOmZ1fSwyOntmOmd1fSwzOntmOnV1fSw0OntmOmx1fSw1OntmOnB1fSw2OntmOkV1fSw3OntmOmR1fSw4OntmOkZ1fSw5OntmOkF1fSwxMDp7ZjprdX0sMTE6e2Y6d3V9LDEyOntmOm91fSwxMzp7ZjptdX0sMTQ6e2Y6eHV9LDE1OntmOmh1fSwxNjp7ZjpCc30sMTc6e2Y6VHV9LDE4OntmOnZ1fSwxOTp7ZjpXdH0sMjA6e30sMjE6e30sMjI6e30sMjM6e30sMjQ6e30sMjU6e30sMjY6e30sMjc6e30sMjg6e30sMjk6e30sMzA6e30sMzE6e30sMzI6e30sMzM6e30sMzQ6e30sMzU6e1Q6MX0sMzY6e1Q6LTF9LDM3OntUOjF9LDM4OntUOi0xfSwzOTp7ZjpxdX0sNDA6e30sNDI6e30sNDM6e2Y6a2x9LDQ0OntmOlRsfSw0NTp7Zjp3bH0sNDY6e2Y6Rmx9LDQ3OntmOkFsfSw0ODp7fSw0OTp7ZjpBY30sNTA6e30sNTE6e2Y6emx9LDUyOntUOjF9LDUzOntUOi0xfSw1NDp7VDoxfSw1NTp7VDotMX0sNTY6e1Q6MX0sNTc6e1Q6LTF9LDU4Ont9LDU5Ont9LDYwOntmOmxzfSw2Mjp7ZjpfdX0sNjM6e2Y6Wmx9LDY0OntmOlB1fSw2NTp7fSw2Njp7fSw2Nzp7fSw2ODp7fSw2OTp7fSw3MDp7fSwxMjg6e30sMTI5OntUOjF9LDEzMDp7VDotMX0sMTMxOntUOjEsZjpZZSxwOjB9LDEzMjp7VDotMX0sMTMzOntUOjF9LDEzNDp7VDotMX0sMTM1OntUOjF9LDEzNjp7VDotMX0sMTM3OntUOjEsZjpOdX0sMTM4OntUOi0xfSwxMzk6e1Q6MX0sMTQwOntUOi0xfSwxNDE6e1Q6MX0sMTQyOntUOi0xfSwxNDM6e1Q6MX0sMTQ0OntUOi0xfSwxNDU6e1Q6MX0sMTQ2OntUOi0xfSwxNDc6e2Y6Y3V9LDE0ODp7ZjpzdSxwOjE2fSwxNTE6e2Y6eXV9LDE1Mjp7fSwxNTM6e2Y6SnV9LDE1NDp7fSwxNTU6e30sMTU2OntmOmp1fSwxNTc6e30sMTU4Ont9LDE1OTp7VDoxLGY6Vm99LDE2MDp7VDotMX0sMTYxOntUOjEsZjpuYX0sMTYyOntUOi0xfSwxNjM6e1Q6MX0sMTY0OntUOi0xfSwxNjU6e1Q6MX0sMTY2OntUOi0xfSwxNjc6e30sMTY4Ont9LDE2OTp7fSwxNzA6e30sMTcxOnt9LDE3Mjp7VDoxfSwxNzM6e1Q6LTF9LDE3NDp7fSwxNzU6e30sMTc2OntmOlN1fSwxNzc6e1Q6MX0sMTc4OntUOi0xfSwxNzk6e1Q6MX0sMTgwOntUOi0xfSwxODE6e1Q6MX0sMTgyOntUOi0xfSwxODM6e1Q6MX0sMTg0OntUOi0xfSwxODU6e1Q6MX0sMTg2OntUOi0xfSwxODc6e1Q6MX0sMTg4OntUOi0xfSwxODk6e1Q6MX0sMTkwOntUOi0xfSwxOTE6e1Q6MX0sMTkyOntUOi0xfSwxOTM6e1Q6MX0sMTk0OntUOi0xfSwxOTU6e1Q6MX0sMTk2OntUOi0xfSwxOTc6e1Q6MX0sMTk4OntUOi0xfSwxOTk6e1Q6MX0sMjAwOntUOi0xfSwyMDE6e1Q6MX0sMjAyOntUOi0xfSwyMDM6e1Q6MX0sMjA0OntUOi0xfSwyMDU6e1Q6MX0sMjA2OntUOi0xfSwyMDc6e1Q6MX0sMjA4OntUOi0xfSwyMDk6e1Q6MX0sMjEwOntUOi0xfSwyMTE6e1Q6MX0sMjEyOntUOi0xfSwyMTM6e1Q6MX0sMjE0OntUOi0xfSwyMTU6e1Q6MX0sMjE2OntUOi0xfSwyMTc6e1Q6MX0sMjE4OntUOi0xfSwyMTk6e1Q6MX0sMjIwOntUOi0xfSwyMjE6e1Q6MX0sMjIyOntUOi0xfSwyMjM6e1Q6MX0sMjI0OntUOi0xfSwyMjU6e1Q6MX0sMjI2OntUOi0xfSwyMjc6e1Q6MX0sMjI4OntUOi0xfSwyMjk6e1Q6MX0sMjMwOntUOi0xfSwyMzE6e1Q6MX0sMjMyOntUOi0xfSwyMzM6e1Q6MX0sMjM0OntUOi0xfSwyMzU6e1Q6MX0sMjM2OntUOi0xfSwyMzc6e1Q6MX0sMjM4OntUOi0xfSwyMzk6e1Q6MX0sMjQwOntUOi0xfSwyNDE6e1Q6MX0sMjQyOntUOi0xfSwyNDM6e1Q6MX0sMjQ0OntUOi0xfSwyNDU6e1Q6MX0sMjQ2OntUOi0xfSwyNDc6e1Q6MX0sMjQ4OntUOi0xfSwyNDk6e1Q6MX0sMjUwOntUOi0xfSwyNTE6e1Q6MX0sMjUyOntUOi0xfSwyNTM6e1Q6MX0sMjU0OntUOi0xfSwyNTU6e1Q6MX0sMjU2OntUOi0xfSwyNTc6e1Q6MX0sMjU4OntUOi0xfSwyNTk6e1Q6MX0sMjYwOntUOi0xfSwyNjE6e1Q6MX0sMjYyOntUOi0xfSwyNjM6e1Q6MX0sMjY0OntUOi0xfSwyNjU6e1Q6MX0sMjY2OntUOi0xfSwyNjc6e1Q6MX0sMjY4OntUOi0xfSwyNjk6e1Q6MX0sMjcwOntUOi0xfSwyNzE6e1Q6MX0sMjcyOntUOi0xfSwyNzM6e1Q6MX0sMjc0OntUOi0xfSwyNzU6e1Q6MX0sMjc2OntUOi0xfSwyNzc6e30sMjc4OntUOjF9LDI3OTp7VDotMX0sMjgwOntUOjF9LDI4MTp7VDotMX0sMjgyOntUOjF9LDI4Mzp7VDoxfSwyODQ6e1Q6LTF9LDI4NTp7VDoxfSwyODY6e1Q6LTF9LDI4Nzp7VDoxfSwyODg6e1Q6LTF9LDI4OTp7VDoxfSwyOTA6e1Q6LTF9LDI5MTp7VDoxfSwyOTI6e1Q6LTF9LDI5Mzp7VDoxfSwyOTQ6e1Q6LTF9LDI5NTp7VDoxfSwyOTY6e1Q6LTF9LDI5Nzp7VDoxfSwyOTg6e1Q6LTF9LDI5OTp7VDoxfSwzMDA6e1Q6LTF9LDMwMTp7VDoxfSwzMDI6e1Q6LTF9LDMwMzp7VDoxfSwzMDQ6e1Q6LTF9LDMwNTp7VDoxfSwzMDY6e1Q6LTF9LDMwNzp7VDoxfSwzMDg6e1Q6LTF9LDMwOTp7VDoxfSwzMTA6e1Q6LTF9LDMxMTp7VDoxfSwzMTI6e1Q6LTF9LDMxMzp7VDotMX0sMzE0OntUOjF9LDMxNTp7VDotMX0sMzE2OntUOjF9LDMxNzp7VDotMX0sMzE4OntUOjF9LDMxOTp7VDotMX0sMzIwOntUOjF9LDMyMTp7VDotMX0sMzIyOntUOjF9LDMyMzp7VDotMX0sMzI0OntUOjF9LDMyNTp7VDotMX0sMzI2OntUOjF9LDMyNzp7VDotMX0sMzI4OntUOjF9LDMyOTp7VDotMX0sMzMwOntUOjF9LDMzMTp7VDotMX0sMzMyOntUOjF9LDMzMzp7VDotMX0sMzM0OntUOjF9LDMzNTp7ZjokbH0sMzM2OntUOi0xfSwzMzc6e2Y6S2wsVDoxfSwzMzg6e1Q6LTF9LDMzOTp7VDoxfSwzNDA6e1Q6LTF9LDM0MTp7VDoxfSwzNDI6e1Q6LTF9LDM0Mzp7VDoxfSwzNDQ6e1Q6LTF9LDM0NTp7VDoxfSwzNDY6e1Q6LTF9LDM0Nzp7VDoxfSwzNDg6e1Q6LTF9LDM0OTp7VDoxfSwzNTA6e1Q6LTF9LDM1MTp7fSwzNTI6e30sMzUzOntUOjF9LDM1NDp7VDotMX0sMzU1OntmOlh0fSwzNTc6e30sMzU4Ont9LDM1OTp7fSwzNjA6e1Q6MX0sMzYxOnt9LDM2Mjp7Zjpmc30sMzYzOnt9LDM2NDp7fSwzNjY6e30sMzY3Ont9LDM2ODp7fSwzNjk6e30sMzcwOnt9LDM3MTp7fSwzNzI6e1Q6MX0sMzczOntUOi0xfSwzNzQ6e1Q6MX0sMzc1OntUOi0xfSwzNzY6e1Q6MX0sMzc3OntUOi0xfSwzNzg6e1Q6MX0sMzc5OntUOi0xfSwzODA6e1Q6MX0sMzgxOntUOi0xfSwzODI6e1Q6MX0sMzgzOntUOi0xfSwzODQ6e1Q6MX0sMzg1OntUOi0xfSwzODY6e1Q6MX0sMzg3OntUOi0xfSwzODg6e1Q6MX0sMzg5OntUOi0xfSwzOTA6e1Q6MX0sMzkxOntUOi0xfSwzOTI6e1Q6MX0sMzkzOntUOi0xfSwzOTQ6e1Q6MX0sMzk1OntUOi0xfSwzOTY6e30sMzk3Ont9LDM5ODp7fSwzOTk6e30sNDAwOnt9LDQwMTp7VDoxfSw0MDM6e30sNDA0Ont9LDQwNTp7fSw0MDY6e30sNDA3Ont9LDQwODp7fSw0MDk6e30sNDEwOnt9LDQxMTp7fSw0MTI6e30sNDEzOnt9LDQxNDp7fSw0MTU6e30sNDE2Ont9LDQxNzp7fSw0MTg6e30sNDE5Ont9LDQyMDp7fSw0MjE6e30sNDIyOntUOjF9LDQyMzp7VDoxfSw0MjQ6e1Q6LTF9LDQyNTp7VDotMX0sNDI2OntmOkR1fSw0Mjc6e2Y6T3V9LDQyODp7fSw0Mjk6e1Q6MX0sNDMwOntUOi0xfSw0MzE6e1Q6MX0sNDMyOntUOi0xfSw0MzM6e1Q6MX0sNDM0OntUOi0xfSw0MzU6e1Q6MX0sNDM2OntUOi0xfSw0Mzc6e1Q6MX0sNDM4OntUOi0xfSw0Mzk6e1Q6MX0sNDQwOntUOi0xfSw0NDE6e1Q6MX0sNDQyOntUOi0xfSw0NDM6e1Q6MX0sNDQ0OntUOi0xfSw0NDU6e1Q6MX0sNDQ2OntUOi0xfSw0NDc6e1Q6MX0sNDQ4OntUOi0xfSw0NDk6e1Q6MX0sNDUwOntUOi0xfSw0NTE6e1Q6MX0sNDUyOntUOi0xfSw0NTM6e1Q6MX0sNDU0OntUOi0xfSw0NTU6e1Q6MX0sNDU2OntUOi0xfSw0NTc6e1Q6MX0sNDU4OntUOi0xfSw0NTk6e1Q6MX0sNDYwOntUOi0xfSw0NjE6e1Q6MX0sNDYyOntUOi0xfSw0NjM6e1Q6MX0sNDY0OntUOi0xfSw0NjU6e1Q6MX0sNDY2OntUOi0xfSw0Njc6e1Q6MX0sNDY4OntUOi0xfSw0Njk6e1Q6MX0sNDcwOntUOi0xfSw0NzE6e30sNDcyOnt9LDQ3Mzp7VDoxfSw0NzQ6e1Q6LTF9LDQ3NTp7fSw0NzY6e2Y6SXV9LDQ3Nzp7fSw0Nzg6e30sNDc5OntUOjF9LDQ4MDp7VDotMX0sNDgxOntUOjF9LDQ4Mjp7VDotMX0sNDgzOntUOjF9LDQ4NDp7VDotMX0sNDg1OntmOml1fSw0ODY6e1Q6MX0sNDg3OntUOi0xfSw0ODg6e1Q6MX0sNDg5OntUOi0xfSw0OTA6e1Q6MX0sNDkxOntUOi0xfSw0OTI6e1Q6MX0sNDkzOntUOi0xfSw0OTQ6e2Y6Q3V9LDQ5NTp7VDoxfSw0OTY6e1Q6LTF9LDQ5Nzp7VDoxfSw0OTg6e1Q6LTF9LDQ5OTp7fSw1MDA6e1Q6MX0sNTAxOntUOi0xfSw1MDI6e1Q6MX0sNTAzOntUOi0xfSw1MDQ6e30sNTA1OntUOjF9LDUwNjp7VDotMX0sNTA3Ont9LDUwODp7VDoxfSw1MDk6e1Q6LTF9LDUxMDp7VDoxfSw1MTE6e1Q6LTF9LDUxMjp7fSw1MTM6e30sNTE0OntUOjF9LDUxNTp7VDotMX0sNTE2OntUOjF9LDUxNzp7VDotMX0sNTE4OntUOjF9LDUxOTp7VDotMX0sNTIwOntUOjF9LDUyMTp7VDotMX0sNTIyOnt9LDUyMzp7fSw1MjQ6e30sNTI1Ont9LDUyNjp7fSw1Mjc6e30sNTI4OntUOjF9LDUyOTp7VDotMX0sNTMwOntUOjF9LDUzMTp7VDotMX0sNTMyOntUOjF9LDUzMzp7VDotMX0sNTM0Ont9LDUzNTp7fSw1MzY6e30sNTM3Ont9LDUzODp7VDoxfSw1Mzk6e1Q6LTF9LDU0MDp7VDoxfSw1NDE6e1Q6LTF9LDU0Mjp7VDoxfSw1NDg6e30sNTQ5Ont9LDU1MDp7ZjpYdH0sNTUxOnt9LDU1Mjp7fSw1NTM6e30sNTU0OntUOjF9LDU1NTp7VDotMX0sNTU2OntUOjF9LDU1Nzp7VDotMX0sNTU4OntUOjF9LDU1OTp7VDotMX0sNTYwOntUOjF9LDU2MTp7VDotMX0sNTYyOnt9LDU2NDp7fSw1NjU6e1Q6MX0sNTY2OntUOi0xfSw1Njk6e1Q6MX0sNTcwOntUOi0xfSw1NzI6e30sNTczOntUOjF9LDU3NDp7VDotMX0sNTc3Ont9LDU3ODp7fSw1Nzk6e30sNTgwOnt9LDU4MTp7fSw1ODI6e30sNTgzOnt9LDU4NDp7fSw1ODU6e30sNTg2Ont9LDU4Nzp7fSw1ODg6e1Q6LTF9LDU4OTp7fSw1OTA6e1Q6MX0sNTkxOntUOi0xfSw1OTI6e1Q6MX0sNTkzOntUOi0xfSw1OTQ6e1Q6MX0sNTk1OntUOi0xfSw1OTY6e30sNTk3OntUOjF9LDU5ODp7VDotMX0sNTk5OntUOjF9LDYwMDp7VDotMX0sNjAxOntUOjF9LDYwMjp7VDotMX0sNjAzOntUOjF9LDYwNDp7VDotMX0sNjA1OntUOjF9LDYwNjp7VDotMX0sNjA3Ont9LDYwODp7VDoxfSw2MDk6e1Q6LTF9LDYxMDp7fSw2MTE6e1Q6MX0sNjEyOntUOi0xfSw2MTM6e1Q6MX0sNjE0OntUOi0xfSw2MTU6e1Q6MX0sNjE2OntUOi0xfSw2MTc6e1Q6MX0sNjE4OntUOi0xfSw2MTk6e1Q6MX0sNjIwOntUOi0xfSw2MjU6e30sNjI2OntUOjF9LDYyNzp7VDotMX0sNjI4OntUOjF9LDYyOTp7VDotMX0sNjMwOntUOjF9LDYzMTp7VDotMX0sNjMyOntmOnMxfSw2MzM6e1Q6MX0sNjM0OntUOi0xfSw2MzU6e1Q6MSxmOm4xfSw2MzY6e1Q6LTF9LDYzNzp7ZjpTY30sNjM4OntUOjF9LDYzOTp7fSw2NDA6e1Q6LTF9LDY0MTp7VDoxfSw2NDI6e1Q6LTF9LDY0Mzp7VDoxfSw2NDQ6e30sNjQ1OntUOi0xfSw2NDY6e1Q6MX0sNjQ4OntUOjF9LDY0OTp7fSw2NTA6e1Q6LTF9LDY1MTp7ZjpIdX0sNjUyOnt9LDY1Mzp7VDoxfSw2NTQ6e1Q6LTF9LDY1NTp7VDoxfSw2NTY6e1Q6LTF9LDY1Nzp7VDoxfSw2NTg6e1Q6LTF9LDY1OTp7fSw2NjA6e1Q6MX0sNjYxOnt9LDY2Mjp7VDotMX0sNjYzOnt9LDY2NDp7VDoxfSw2NjU6e30sNjY2OntUOi0xfSw2Njc6e30sNjY4Ont9LDY2OTp7fSw2NzE6e1Q6MX0sNjcyOntUOi0xfSw2NzM6e1Q6MX0sNjc0OntUOi0xfSw2NzU6e30sNjc2Ont9LDY3Nzp7fSw2Nzg6e30sNjc5Ont9LDY4MDp7fSw2ODE6e30sMTAyNDp7fSwxMDI1Ont9LDEwMjY6e1Q6MX0sMTAyNzp7VDotMX0sMTAyODp7VDoxfSwxMDI5OntUOi0xfSwxMDMwOnt9LDEwMzE6e1Q6MX0sMTAzMjp7VDotMX0sMTAzMzp7VDoxfSwxMDM0OntUOi0xfSwxMDM1Ont9LDEwMzY6e30sMTAzNzp7fSwxMDM4OntUOjF9LDEwMzk6e1Q6LTF9LDEwNDA6e30sMTA0MTp7VDoxfSwxMDQyOntUOi0xfSwxMDQzOnt9LDEwNDQ6e30sMTA0NTp7fSwxMDQ2OntUOjF9LDEwNDc6e1Q6LTF9LDEwNDg6e1Q6MX0sMTA0OTp7VDotMX0sMTA1MDp7fSwxMDUxOntUOjF9LDEwNTI6e1Q6MX0sMTA1Mzp7ZjpMdX0sMTA1NDp7VDoxfSwxMDU1Ont9LDEwNTY6e1Q6MX0sMTA1Nzp7VDotMX0sMTA1ODp7VDoxfSwxMDU5OntUOi0xfSwxMDYxOnt9LDEwNjI6e1Q6MX0sMTA2Mzp7VDotMX0sMTA2NDp7VDoxfSwxMDY1OntUOi0xfSwxMDY2OntUOjF9LDEwNjc6e1Q6LTF9LDEwNjg6e1Q6MX0sMTA2OTp7VDotMX0sMTA3MDp7VDoxfSwxMDcxOntUOi0xfSwxMDcyOntUOjF9LDEwNzM6e1Q6LTF9LDEwNzU6e1Q6MX0sMTA3Njp7VDotMX0sMTA3Nzp7VDoxfSwxMDc4OntUOi0xfSwxMDc5OntUOjF9LDEwODA6e1Q6LTF9LDEwODE6e1Q6MX0sMTA4Mjp7VDotMX0sMTA4Mzp7VDoxfSwxMDg0OntUOi0xfSwxMDg1Ont9LDEwODY6e1Q6MX0sMTA4Nzp7VDotMX0sMTA4ODp7VDoxfSwxMDg5OntUOi0xfSwxMDkwOntUOjF9LDEwOTE6e1Q6LTF9LDEwOTI6e1Q6MX0sMTA5Mzp7VDotMX0sMTA5NDp7VDoxfSwxMDk1OntUOi0xfSwxMDk2Ont9LDEwOTc6e1Q6MX0sMTA5ODp7fSwxMDk5OntUOi0xfSwxMTAwOntUOjF9LDExMDE6e1Q6LTF9LDExMDI6e30sMTEwMzp7fSwxMTA0Ont9LDExMDU6e30sMTExMTp7fSwxMTEyOnt9LDExMTM6e1Q6MX0sMTExNDp7VDotMX0sMTExNTp7VDoxfSwxMTE2OntUOi0xfSwxMTE3Ont9LDExMTg6e1Q6MX0sMTExOTp7VDotMX0sMTEyMDp7VDoxfSwxMTIxOntUOi0xfSwxMTIyOntUOjF9LDExMjM6e1Q6LTF9LDExMjQ6e1Q6MX0sMTEyNTp7VDotMX0sMTEyNjp7fSwxMTI4OntUOjF9LDExMjk6e1Q6LTF9LDExMzA6e30sMTEzMTp7VDoxfSwxMTMyOntUOi0xfSwxMTMzOntUOjF9LDExMzQ6e1Q6LTF9LDExMzU6e1Q6MX0sMTEzNjp7VDotMX0sMTEzNzp7VDoxfSwxMTM4OntUOi0xfSwxMTM5OntUOjF9LDExNDA6e1Q6LTF9LDExNDE6e30sMTE0Mjp7VDoxfSwxMTQzOntUOi0xfSwxMTQ0OntUOjF9LDExNDU6e1Q6LTF9LDExNDY6e30sMTE0Nzp7VDoxfSwxMTQ4OntUOi0xfSwxMTQ5OntUOjF9LDExNTA6e1Q6LTF9LDExNTI6e1Q6MX0sMTE1Mzp7VDotMX0sMTE1NDp7VDotMX0sMTE1NTp7VDotMX0sMTE1Njp7VDotMX0sMTE1Nzp7VDoxfSwxMTU4OntUOi0xfSwxMTU5OntUOjF9LDExNjA6e1Q6LTF9LDExNjE6e1Q6MX0sMTE2Mjp7VDotMX0sMTE2Mzp7VDoxfSwxMTY0OntUOi0xfSwxMTY1OntUOjF9LDExNjY6e1Q6LTF9LDExNjc6e1Q6MX0sMTE2ODp7VDotMX0sMTE2OTp7VDoxfSwxMTcwOntUOi0xfSwxMTcxOnt9LDExNzI6e1Q6MX0sMTE3Mzp7VDotMX0sMTE3Nzp7fSwxMTc4OntUOjF9LDExODA6e30sMTE4MTp7fSwxMTgyOnt9LDIwNDg6e1Q6MX0sMjA0OTp7VDotMX0sMjA1MDp7fSwyMDUxOntUOjF9LDIwNTI6e1Q6LTF9LDIwNTM6e30sMjA1NDp7fSwyMDU1OntUOjF9LDIwNTY6e1Q6LTF9LDIwNTc6e1Q6MX0sMjA1ODp7VDotMX0sMjA2MDp7fSwyMDY3Ont9LDIwNjg6e1Q6MX0sMjA2OTp7VDotMX0sMjA3MDp7fSwyMDcxOnt9LDIwNzI6e1Q6MX0sMjA3Mzp7VDotMX0sMjA3NTp7fSwyMDc2Ont9LDIwNzc6e1Q6MX0sMjA3ODp7VDotMX0sMjA3OTp7fSwyMDgwOntUOjF9LDIwODE6e1Q6LTF9LDIwODI6e30sMjA4Mzp7VDoxfSwyMDg0OntUOi0xfSwyMDg1OntUOjF9LDIwODY6e1Q6LTF9LDIwODc6e1Q6MX0sMjA4ODp7VDotMX0sMjA4OTp7VDoxfSwyMDkwOntUOi0xfSwyMDkxOnt9LDIwOTI6e30sMjA5Mzp7VDoxfSwyMDk0OntUOi0xfSwyMDk1Ont9LDIwOTY6e1Q6MX0sMjA5Nzp7VDotMX0sMjA5ODp7VDoxfSwyMDk5OntUOi0xfSwyMTAwOntUOjF9LDIxMDE6e1Q6LTF9LDIxMDI6e30sMjEwMzp7VDoxfSwyMTA0OntUOi0xfSwyMTA1Ont9LDIxMDY6e1Q6MX0sMjEwNzp7VDotMX0sMjEwODp7fSwyMTA5OntUOjF9LDIxMTA6e1Q6LTF9LDIxMTE6e1Q6MX0sMjExMjp7VDotMX0sMjExMzp7VDoxfSwyMTE0OntUOi0xfSwyMTE1Ont9LDIxMTY6e30sMjExNzp7fSwyMTE4OntUOjF9LDIxMTk6e1Q6LTF9LDIxMjA6e30sMjEyMTp7VDoxfSwyMTIyOntUOi0xfSwyMTIzOntUOjF9LDIxMjQ6e1Q6LTF9LDIxMjU6e30sMjEyNjp7VDoxfSwyMTI3OntUOi0xfSwyMTI4Ont9LDIxMjk6e1Q6MX0sMjEzMDp7VDotMX0sMjEzMTp7VDoxfSwyMTMyOntUOi0xfSwyMTMzOntUOjF9LDIxMzQ6e30sMjEzNTp7fSwyMTM2Ont9LDIxMzc6e1Q6MX0sMjEzODp7VDotMX0sMjEzOTp7VDoxfSwyMTQwOntUOi0xfSwyMTQxOnt9LDMwNzI6e30sMzA3Mzp7fSw0MDk2OntUOjF9LDQwOTc6e1Q6LTF9LDUwMDI6e1Q6MX0sNTAwMzp7VDotMX0sNTA4MTp7VDoxfSw1MDgyOntUOi0xfSw1MDgzOnt9LDUwODQ6e1Q6MX0sNTA4NTp7VDotMX0sNTA4Njp7VDoxfSw1MDg3OntUOi0xfSw1MDg4Ont9LDUwODk6e30sNTA5MDp7fSw1MDkyOntUOjF9LDUwOTM6e1Q6LTF9LDUwOTQ6e30sNTA5NTp7VDoxfSw1MDk2OntUOi0xfSw1MDk3Ont9LDUwOTk6e30sNjU1MzU6e246IiJ9fSxjMD17Njp7ZjphMH0sMTA6e2Y6JHJ9LDEyOntmOk1lfSwxMzp7ZjpNZX0sMTQ6e2Y6UmV9LDE1OntmOlJlfSwxNjp7ZjpKZX0sMTc6e2Y6UmV9LDE4OntmOlJlfSwxOTp7ZjpNZX0sMjA6e2Y6c3N9LDIxOntmOnNzfSwyMzp7Zjpmc30sMjQ6e2Y6Y3N9LDI1OntmOlJlfSwyNjp7fSwyNzp7fSwyODp7Zjpyb30sMjk6e30sMzQ6e2Y6UmV9LDM1OntmOmlzfSwzODp7ZjpKZX0sMzk6e2Y6SmV9LDQwOntmOkplfSw0MTp7ZjpKZX0sNDI6e2Y6UmV9LDQzOntmOlJlfSw0Nzp7ZjppbH0sNDk6e2Y6TWZ9LDUxOntmOk1lfSw2MDp7fSw2MTp7ZjpOZn0sNjQ6e2Y6UmV9LDY1OntmOkxmfSw2Njp7ZjpNZX0sNzc6e30sODA6e30sODE6e30sODI6e30sODU6e2Y6TWV9LDg5Ont9LDkwOnt9LDkxOnt9LDkyOntmOkZmfSw5Mzp7Zjp0b30sOTQ6e30sOTU6e2Y6UmV9LDk2Ont9LDk3Ont9LDk5OntmOlJlfSwxMjU6e2Y6bHN9LDEyODp7Zjp6Zn0sMTI5OntmOlNmfSwxMzA6e2Y6TWV9LDEzMTp7ZjpSZX0sMTMyOntmOlJlfSwxMzM6e2Y6Q2Z9LDEzNDp7fSwxNDA6e2Y6b299LDE0MTp7ZjpNZX0sMTQ0Ont9LDE0Njp7Zjpob30sMTUxOnt9LDE1Mjp7fSwxNTM6e30sMTU0Ont9LDE1NTp7fSwxNTY6e2Y6TWV9LDE1Nzp7fSwxNTg6e30sMTYwOntmOmdvfSwxNjE6e2Y6eG99LDE3NDp7fSwxNzU6e30sMTc2Ont9LDE3Nzp7fSwxNzg6e30sMTgwOnt9LDE4MTp7fSwxODI6e30sMTg0Ont9LDE4NTp7fSwxODk6e2Y6V2Z9LDE5MDp7ZjpHZn0sMTkzOntmOiRyfSwxOTc6e30sMTk4Ont9LDE5OTp7fSwyMDA6e30sMjAxOnt9LDIwMjp7ZjpSZX0sMjAzOnt9LDIwNDp7fSwyMDU6e30sMjA2Ont9LDIwNzp7fSwyMDg6e30sMjA5Ont9LDIxMDp7fSwyMTE6e30sMjEzOnt9LDIxNTp7fSwyMTY6e30sMjE3Ont9LDIxODp7ZjpNZX0sMjIwOnt9LDIyMTp7ZjpSZX0sMjIyOnt9LDIyNDp7ZjokZn0sMjI1OntmOkFmfSwyMjY6e2Y6JHJ9LDIyNzp7fSwyMjk6e2Y6YW99LDIzMzp7fSwyMzU6e30sMjM2Ont9LDIzNzp7fSwyMzk6e30sMjQwOnt9LDI0MTp7fSwyNDI6e30sMjQ0Ont9LDI0NTp7fSwyNDY6e30sMjQ3Ont9LDI0ODp7fSwyNDk6e30sMjUxOnt9LDI1Mjp7Zjp5Zn0sMjUzOntmOkJmfSwyNTU6e2Y6RGZ9LDI1Njp7fSwyNTk6e30sMjkwOnt9LDMxMTp7fSwzMTI6e30sMzE1Ont9LDMxNzp7ZjpKbn0sMzE4Ont9LDMxOTp7fSwzMjA6e30sMzMwOnt9LDMzMTp7fSwzMzM6e30sMzM0Ont9LDMzNTp7fSwzMzY6e30sMzM3Ont9LDMzODp7fSwzMzk6e30sMzQwOnt9LDM1MTp7fSwzNTI6e2Y6UmV9LDM1Mzp7Zjokcn0sNDAxOnt9LDQwMjp7fSw0MDM6e30sNDA0Ont9LDQwNTp7fSw0MDY6e30sNDA3Ont9LDQwODp7fSw0MjU6e30sNDI2Ont9LDQyNzp7fSw0Mjg6e30sNDI5Ont9LDQzMDp7ZjpZZn0sNDMxOntmOlJlfSw0MzI6e30sNDMzOnt9LDQzNDp7fSw0Mzc6e30sNDM4OntmOmlvfSw0Mzk6e2Y6UmV9LDQ0MDp7Zjpjb30sNDQxOnt9LDQ0Mjp7ZjpCYX0sNDQzOnt9LDQ0NDp7ZjpNZX0sNDQ1Ont9LDQ0Njp7fSw0NDg6e2Y6JHJ9LDQ0OTp7ZjpJZixyOjJ9LDQ1MDp7Zjokcn0sNTEyOntmOnRzfSw1MTM6e2Y6cG99LDUxNTp7ZjpLZn0sNTE2OntmOmJmfSw1MTc6e2Y6bnN9LDUxOTp7Zjptb30sNTIwOntmOk9mfSw1MjM6e30sNTQ1OntmOm9zfSw1NDk6e2Y6YXN9LDU2Njp7fSw1NzQ6e2Y6UGZ9LDYzODp7ZjpWZn0sNjU5Ont9LDEwNDg6e30sMTA1NDp7ZjpVZn0sMTA4NDp7fSwxMjEyOntmOnFmfSwyMDQ4OntmOmZvfSwyMDQ5Ont9LDIwNTA6e30sMjA1MTp7fSwyMDUyOnt9LDIwNTM6e30sMjA1NDp7fSwyMDU1Ont9LDIwNTY6e30sMjA1Nzp7Zjp2dH0sMjA1ODp7fSwyMDU5Ont9LDIwNjA6e30sMjA2MTp7fSwyMDYyOnt9LDIwNjM6e30sMjA2NDp7fSwyMDY2Ont9LDIwNjc6e30sMjEyODp7fSwyMTI5Ont9LDIxMzA6e30sMjEzMTp7fSwyMTMyOnt9LDIxMzM6e30sMjEzNDp7fSwyMTM1Ont9LDIxMzY6e30sMjEzNzp7fSwyMTM4Ont9LDIxNDY6e30sMjE0Nzp7cjoxMn0sMjE0ODp7fSwyMTQ5Ont9LDIxNTA6e30sMjE1MTp7Zjokcn0sMjE1Mjp7fSwyMTU0Ont9LDIxNTU6e30sMjE1Njp7fSwyMTYxOnt9LDIxNjI6e30sMjE2NDp7fSwyMTY1Ont9LDIxNjY6e30sMjE2Nzp7fSwyMTY4Ont9LDIxNjk6e30sMjE3MDp7fSwyMTcxOnt9LDIxNzI6e2Y6dW8scjoxMn0sMjE3Mzp7ZjpHbCxyOjEyfSwyMTc0Ont9LDIxNzU6e30sMjE4MDp7fSwyMTgxOnt9LDIxODI6e30sMjE4Mzp7fSwyMTg0Ont9LDIxODU6e30sMjE4Njp7fSwyMTg3Ont9LDIxODg6e2Y6UmUscjoxMn0sMjE4OTp7fSwyMTkwOntyOjEyfSwyMTkxOnt9LDIxOTI6e30sMjE5NDp7fSwyMTk1Ont9LDIxOTY6e2Y6WmYscjoxMn0sMjE5Nzp7fSwyMTk4OntmOkJsLHI6MTJ9LDIxOTk6e30sMjIwMDp7fSwyMjAxOnt9LDIyMDI6e2Y6UWYscjoxMn0sMjIwMzp7Zjokcn0sMjIwNDp7fSwyMjA1Ont9LDIyMDY6e30sMjIwNzp7fSwyMjExOntmOlJmfSwyMjEyOnt9LDIyMTM6e30sMjIxNDp7fSwyMjE1Ont9LDQwOTc6e30sNDA5ODp7fSw0MDk5Ont9LDQxMDI6e30sNDEwMzp7fSw0MTA1Ont9LDQxMDY6e30sNDEwNzp7fSw0MTA4Ont9LDQxMDk6e30sNDExNjp7fSw0MTE3Ont9LDQxMTg6e30sNDExOTp7fSw0MTIwOnt9LDQxMjE6e30sNDEyMjp7fSw0MTIzOnt9LDQxMjQ6e30sNDEyNTp7fSw0MTI2Ont9LDQxMjc6e30sNDEyODp7fSw0MTI5Ont9LDQxMzA6e30sNDEzMjp7fSw0MTMzOnt9LDQxMzQ6e2Y6TWV9LDQxMzU6e30sNDE0Njp7fSw0MTQ3Ont9LDQxNDg6e30sNDE0OTp7fSw0MTU0Ont9LDQxNTY6e30sNDE1Nzp7fSw0MTU4Ont9LDQxNTk6e30sNDE2MDp7fSw0MTYxOnt9LDQxNjM6e30sNDE2NDp7Zjp2b30sNDE2NTp7fSw0MTY2Ont9LDQxNjg6e30sNDE3MDp7fSw0MTcxOnt9LDQxNzQ6e30sNDE3NTp7fSw0MTc2Ont9LDQxNzc6e30sNDE4Nzp7fSw0MTg4OntmOmxvfSw0MTg5Ont9LDQxOTE6e30sNDE5Mjp7fSw0MTkzOnt9LDQxOTQ6e30sNDE5NTp7fSw0MTk2Ont9LDQxOTc6e30sNDE5ODp7fSw0MTk5Ont9LDQyMDA6e30sMDp7Zjp0c30sMTp7fSwyOntmOmtvfSwzOntmOlRvfSw0OntmOkVvfSw1OntmOm5zfSw3OntmOndvfSw4Ont9LDk6e2Y6dnR9LDExOnt9LDIyOntmOk1lfSwzMDp7ZjpIZn0sMzE6e30sMzI6e30sMzM6e2Y6b3N9LDM2Ont9LDM3OntmOmFzfSw1MDp7ZjpBb30sNjI6e30sNTI6e30sNjc6e30sNjg6e2Y6TWV9LDY5Ont9LDg2Ont9LDEyNjp7fSwxMjc6e2Y6X299LDEzNTp7fSwxMzY6e30sMTM3Ont9LDE0NTp7fSwxNDg6e30sMTQ5Ont9LDE1MDp7fSwxNjk6e30sMTcxOnt9LDE4ODp7fSwxOTE6e30sMTkyOnt9LDE5NDp7fSwxOTU6e30sMjE0OntmOkZvfSwyMjM6e30sMjM0Ont9LDM1NDp7fSw0MjE6e30sNTE4OntmOmEwfSw1MjE6e2Y6dnR9LDUzNjp7Zjpjc30sNTQ3OntmOmlzfSw1NjE6e30sNTc5Ont9LDEwMzA6e2Y6YTB9LDEwMzM6e2Y6dnR9LDEwOTE6e30sMjE1Nzp7fSwyMTYzOnt9LDIxNzc6e30sMjI0MDp7fSwyMjQxOnt9LDIyNDI6e30sMjI0Mzp7fSwyMjQ0Ont9LDIyNDU6e30sMjI0Njp7fSwyMjQ3Ont9LDIyNDg6e30sMjI0OTp7fSwyMjUwOnt9LDIyNTE6e30sMjI2Mjp7cjoxMn0sMjkyODI6e319O2Z1bmN0aW9uIEFyKGUsYSxyLG4pe3ZhciB0PWE7aWYoIWlzTmFOKHQpKXt2YXIgcz0ocnx8W10pLmxlbmd0aHx8MCxpPWUubmV4dCg0KTtpLndyaXRlX3NoaWZ0KDIsdCksaS53cml0ZV9zaGlmdCgyLHMpLHM+MCYmRG4ocikmJmUucHVzaChyKX19ZnVuY3Rpb24genMoZSxhKXt2YXIgcj1hfHx7fSxuPXIuZGVuc2U/W106e307ZT1lLnJlcGxhY2UoLzwhLS0uKj8tLT4vZywiIik7dmFyIHQ9ZS5tYXRjaCgvPHRhYmxlL2kpO2lmKCF0KXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBIVE1MOiBjb3VsZCBub3QgZmluZCA8dGFibGU+Iik7dmFyIHM9ZS5tYXRjaCgvPFwvdGFibGUvaSksaT10LmluZGV4LGM9cyYmcy5pbmRleHx8ZS5sZW5ndGgsZj16aShlLnNsaWNlKGksYyksLyg6Pzx0cltePl0qPikvaSwiPHRyPiIpLG89LTEsbD0wLGg9MCx4PTAsZD17czp7cjoxZTcsYzoxZTd9LGU6e3I6MCxjOjB9fSx2PVtdO2ZvcihpPTA7aTxmLmxlbmd0aDsrK2kpe3ZhciB1PWZbaV0udHJpbSgpLGc9dS5zbGljZSgwLDMpLnRvTG93ZXJDYXNlKCk7aWYoZz09Ijx0ciIpe2lmKCsrbyxyLnNoZWV0Um93cyYmci5zaGVldFJvd3M8PW8pey0tbzticmVha31sPTA7Y29udGludWV9aWYoIShnIT0iPHRkIiYmZyE9Ijx0aCIpKXt2YXIgRj11LnNwbGl0KC88XC90W2RoXT4vaSk7Zm9yKGM9MDtjPEYubGVuZ3RoOysrYyl7dmFyIHk9RltjXS50cmltKCk7aWYoeS5tYXRjaCgvPHRbZGhdL2kpKXtmb3IodmFyIF89eSxOPTA7Xy5jaGFyQXQoMCk9PSI8IiYmKE49Xy5pbmRleE9mKCI+IikpPi0xOylfPV8uc2xpY2UoTisxKTtmb3IodmFyIGI9MDtiPHYubGVuZ3RoOysrYil7dmFyIEk9dltiXTtJLnMuYz09bCYmSS5zLnI8byYmbzw9SS5lLnImJihsPUkuZS5jKzEsYj0tMSl9dmFyIEE9b2UoeS5zbGljZSgwLHkuaW5kZXhPZigiPiIpKSk7eD1BLmNvbHNwYW4/K0EuY29sc3BhbjoxLCgoaD0rQS5yb3dzcGFuKT4xfHx4PjEpJiZ2LnB1c2goe3M6e3I6byxjOmx9LGU6e3I6bysoaHx8MSktMSxjOmwreC0xfX0pO3ZhciBWPUEudHx8QVsiZGF0YS10Il18fCIiO2lmKCFfLmxlbmd0aCl7bCs9eDtjb250aW51ZX1pZihfPWxuKF8pLGQucy5yPm8mJihkLnMucj1vKSxkLmUucjxvJiYoZC5lLnI9byksZC5zLmM+bCYmKGQucy5jPWwpLGQuZS5jPGwmJihkLmUuYz1sKSwhXy5sZW5ndGgpe2wrPXg7Y29udGludWV9dmFyIEQ9e3Q6InMiLHY6X307ci5yYXd8fCFfLnRyaW0oKS5sZW5ndGh8fFY9PSJzInx8KF89PT0iVFJVRSI/RD17dDoiYiIsdjohMH06Xz09PSJGQUxTRSI/RD17dDoiYiIsdjohMX06aXNOYU4oa3IoXykpP2lzTmFOKGRhKF8pLmdldERhdGUoKSl8fChEPXt0OiJkIix2OldlKF8pfSxyLmNlbGxEYXRlc3x8KEQ9e3Q6Im4iLHY6dHIoRC52KX0pLEQuej1yLmRhdGVORnx8ZGVbMTRdKTpEPXt0OiJuIix2OmtyKF8pfSksci5kZW5zZT8obltvXXx8KG5bb109W10pLG5bb11bbF09RCk6blt1ZSh7cjpvLGM6bH0pXT1ELGwrPXh9fX19cmV0dXJuIG5bIiFyZWYiXT1fZShkKSx2Lmxlbmd0aCYmKG5bIiFtZXJnZXMiXT12KSxufWZ1bmN0aW9uIEF4KGUsYSxyLG4pe2Zvcih2YXIgdD1lWyIhbWVyZ2VzIl18fFtdLHM9W10saT1hLnMuYztpPD1hLmUuYzsrK2kpe2Zvcih2YXIgYz0wLGY9MCxvPTA7bzx0Lmxlbmd0aDsrK28paWYoISh0W29dLnMucj5yfHx0W29dLnMuYz5pKSYmISh0W29dLmUucjxyfHx0W29dLmUuYzxpKSl7aWYodFtvXS5zLnI8cnx8dFtvXS5zLmM8aSl7Yz0tMTticmVha31jPXRbb10uZS5yLXRbb10ucy5yKzEsZj10W29dLmUuYy10W29dLnMuYysxO2JyZWFrfWlmKCEoYzwwKSl7dmFyIGw9dWUoe3IsYzppfSksaD1uLmRlbnNlPyhlW3JdfHxbXSlbaV06ZVtsXSx4PWgmJmgudiE9bnVsbCYmKGguaHx8UHQoaC53fHwoTHIoaCksaC53KXx8IiIpKXx8IiIsZD17fTtjPjEmJihkLnJvd3NwYW49YyksZj4xJiYoZC5jb2xzcGFuPWYpLG4uZWRpdGFibGU/eD0nPHNwYW4gY29udGVudGVkaXRhYmxlPSJ0cnVlIj4nK3grIjwvc3Bhbj4iOmgmJihkWyJkYXRhLXQiXT1oJiZoLnR8fCJ6IixoLnYhPW51bGwmJihkWyJkYXRhLXYiXT1oLnYpLGgueiE9bnVsbCYmKGRbImRhdGEteiJdPWgueiksaC5sJiYoaC5sLlRhcmdldHx8IiMiKS5jaGFyQXQoMCkhPSIjIiYmKHg9JzxhIGhyZWY9IicraC5sLlRhcmdldCsnIj4nK3grIjwvYT4iKSksZC5pZD0obi5pZHx8InNqcyIpKyItIitsLHMucHVzaChmYygidGQiLHgsZCkpfX12YXIgdj0iPHRyPiI7cmV0dXJuIHYrcy5qb2luKCIiKSsiPC90cj4ifXZhciBGeD0nPGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNldD0idXRmLTgiLz48dGl0bGU+U2hlZXRKUyBUYWJsZSBFeHBvcnQ8L3RpdGxlPjwvaGVhZD48Ym9keT4nLFN4PSI8L2JvZHk+PC9odG1sPiI7ZnVuY3Rpb24gQ3goZSxhKXt2YXIgcj1lLm1hdGNoKC88dGFibGVbXHNcU10qPz5bXHNcU10qPzxcL3RhYmxlPi9naSk7aWYoIXJ8fHIubGVuZ3RoPT0wKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBIVE1MOiBjb3VsZCBub3QgZmluZCA8dGFibGU+Iik7aWYoci5sZW5ndGg9PTEpcmV0dXJuIFhyKHpzKHJbMF0sYSksYSk7dmFyIG49bTAoKTtyZXR1cm4gci5mb3JFYWNoKGZ1bmN0aW9uKHQscyl7XzAobix6cyh0LGEpLCJTaGVldCIrKHMrMSkpfSksbn1mdW5jdGlvbiB5eChlLGEscil7dmFyIG49W107cmV0dXJuIG4uam9pbigiIikrIjx0YWJsZSIrKHImJnIuaWQ/JyBpZD0iJytyLmlkKyciJzoiIikrIj4ifWZ1bmN0aW9uIER4KGUsYSl7dmFyIHI9YXx8e30sbj1yLmhlYWRlciE9bnVsbD9yLmhlYWRlcjpGeCx0PXIuZm9vdGVyIT1udWxsP3IuZm9vdGVyOlN4LHM9W25dLGk9cGEoZVsiIXJlZiJdKTtyLmRlbnNlPUFycmF5LmlzQXJyYXkoZSkscy5wdXNoKHl4KGUsaSxyKSk7Zm9yKHZhciBjPWkucy5yO2M8PWkuZS5yOysrYylzLnB1c2goQXgoZSxpLGMscikpO3JldHVybiBzLnB1c2goIjwvdGFibGU+Iit0KSxzLmpvaW4oIiIpfWZ1bmN0aW9uIEtzKGUsYSxyKXt2YXIgbj1yfHx7fSx0PTAscz0wO2lmKG4ub3JpZ2luIT1udWxsKWlmKHR5cGVvZiBuLm9yaWdpbj09Im51bWJlciIpdD1uLm9yaWdpbjtlbHNle3ZhciBpPXR5cGVvZiBuLm9yaWdpbj09InN0cmluZyI/bnIobi5vcmlnaW4pOm4ub3JpZ2luO3Q9aS5yLHM9aS5jfXZhciBjPWEuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRyIiksZj1NYXRoLm1pbihuLnNoZWV0Um93c3x8MWU3LGMubGVuZ3RoKSxvPXtzOntyOjAsYzowfSxlOntyOnQsYzpzfX07aWYoZVsiIXJlZiJdKXt2YXIgbD1wYShlWyIhcmVmIl0pO28ucy5yPU1hdGgubWluKG8ucy5yLGwucy5yKSxvLnMuYz1NYXRoLm1pbihvLnMuYyxsLnMuYyksby5lLnI9TWF0aC5tYXgoby5lLnIsbC5lLnIpLG8uZS5jPU1hdGgubWF4KG8uZS5jLGwuZS5jKSx0PT0tMSYmKG8uZS5yPXQ9bC5lLnIrMSl9dmFyIGg9W10seD0wLGQ9ZVsiIXJvd3MiXXx8KGVbIiFyb3dzIl09W10pLHY9MCx1PTAsZz0wLEY9MCx5PTAsXz0wO2ZvcihlWyIhY29scyJdfHwoZVsiIWNvbHMiXT1bXSk7djxjLmxlbmd0aCYmdTxmOysrdil7dmFyIE49Y1t2XTtpZihqcyhOKSl7aWYobi5kaXNwbGF5KWNvbnRpbnVlO2RbdV09e2hpZGRlbjohMH19dmFyIGI9Ti5jaGlsZHJlbjtmb3IoZz1GPTA7ZzxiLmxlbmd0aDsrK2cpe3ZhciBJPWJbZ107aWYoIShuLmRpc3BsYXkmJmpzKEkpKSl7dmFyIEE9SS5oYXNBdHRyaWJ1dGUoImRhdGEtdiIpP0kuZ2V0QXR0cmlidXRlKCJkYXRhLXYiKTpJLmhhc0F0dHJpYnV0ZSgidiIpP0kuZ2V0QXR0cmlidXRlKCJ2Iik6bG4oSS5pbm5lckhUTUwpLFY9SS5nZXRBdHRyaWJ1dGUoImRhdGEteiIpfHxJLmdldEF0dHJpYnV0ZSgieiIpO2Zvcih4PTA7eDxoLmxlbmd0aDsrK3gpe3ZhciBEPWhbeF07RC5zLmM9PUYrcyYmRC5zLnI8dSt0JiZ1K3Q8PUQuZS5yJiYoRj1ELmUuYysxLXMseD0tMSl9Xz0rSS5nZXRBdHRyaWJ1dGUoImNvbHNwYW4iKXx8MSwoKHk9K0kuZ2V0QXR0cmlidXRlKCJyb3dzcGFuIil8fDEpPjF8fF8+MSkmJmgucHVzaCh7czp7cjp1K3QsYzpGK3N9LGU6e3I6dSt0Kyh5fHwxKS0xLGM6RitzKyhffHwxKS0xfX0pO3ZhciB6PXt0OiJzIix2OkF9LEc9SS5nZXRBdHRyaWJ1dGUoImRhdGEtdCIpfHxJLmdldEF0dHJpYnV0ZSgidCIpfHwiIjtBIT1udWxsJiYoQS5sZW5ndGg9PTA/ei50PUd8fCJ6IjpuLnJhd3x8QS50cmltKCkubGVuZ3RoPT0wfHxHPT0icyJ8fChBPT09IlRSVUUiP3o9e3Q6ImIiLHY6ITB9OkE9PT0iRkFMU0UiP3o9e3Q6ImIiLHY6ITF9OmlzTmFOKGtyKEEpKT9pc05hTihkYShBKS5nZXREYXRlKCkpfHwoej17dDoiZCIsdjpXZShBKX0sbi5jZWxsRGF0ZXN8fCh6PXt0OiJuIix2OnRyKHoudil9KSx6Lno9bi5kYXRlTkZ8fGRlWzE0XSk6ej17dDoibiIsdjprcihBKX0pKSx6Lno9PT12b2lkIDAmJlYhPW51bGwmJih6Lno9Vik7dmFyIFA9IiIsSj1JLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJBIik7aWYoSiYmSi5sZW5ndGgpZm9yKHZhciBmZT0wO2ZlPEoubGVuZ3RoJiYhKEpbZmVdLmhhc0F0dHJpYnV0ZSgiaHJlZiIpJiYoUD1KW2ZlXS5nZXRBdHRyaWJ1dGUoImhyZWYiKSxQLmNoYXJBdCgwKSE9IiMiKSk7KytmZSk7UCYmUC5jaGFyQXQoMCkhPSIjIiYmKHoubD17VGFyZ2V0OlB9KSxuLmRlbnNlPyhlW3UrdF18fChlW3UrdF09W10pLGVbdSt0XVtGK3NdPXopOmVbdWUoe2M6RitzLHI6dSt0fSldPXosby5lLmM8RitzJiYoby5lLmM9RitzKSxGKz1ffX0rK3V9cmV0dXJuIGgubGVuZ3RoJiYoZVsiIW1lcmdlcyJdPShlWyIhbWVyZ2VzIl18fFtdKS5jb25jYXQoaCkpLG8uZS5yPU1hdGgubWF4KG8uZS5yLHUtMSt0KSxlWyIhcmVmIl09X2UobyksdT49ZiYmKGVbIiFmdWxscmVmIl09X2UoKG8uZS5yPWMubGVuZ3RoLXYrdS0xK3QsbykpKSxlfWZ1bmN0aW9uIFlzKGUsYSl7dmFyIHI9YXx8e30sbj1yLmRlbnNlP1tdOnt9O3JldHVybiBLcyhuLGUsYSl9ZnVuY3Rpb24gT3goZSxhKXtyZXR1cm4gWHIoWXMoZSxhKSxhKX1mdW5jdGlvbiBqcyhlKXt2YXIgYT0iIixyPVJ4KGUpO3JldHVybiByJiYoYT1yKGUpLmdldFByb3BlcnR5VmFsdWUoImRpc3BsYXkiKSksYXx8KGE9ZS5zdHlsZSYmZS5zdHlsZS5kaXNwbGF5KSxhPT09Im5vbmUifWZ1bmN0aW9uIFJ4KGUpe3JldHVybiBlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcmJnR5cGVvZiBlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZT09ImZ1bmN0aW9uIj9lLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZTp0eXBlb2YgZ2V0Q29tcHV0ZWRTdHlsZT09ImZ1bmN0aW9uIj9nZXRDb21wdXRlZFN0eWxlOm51bGx9ZnVuY3Rpb24gSXgoZSl7dmFyIGE9ZS5yZXBsYWNlKC9bXHRcclxuXS9nLCIgIikudHJpbSgpLnJlcGxhY2UoLyArL2csIiAiKS5yZXBsYWNlKC88dGV4dDpzXC8+L2csIiAiKS5yZXBsYWNlKC88dGV4dDpzIHRleHQ6Yz0iKFxkKykiXC8+L2csZnVuY3Rpb24obix0KXtyZXR1cm4gQXJyYXkocGFyc2VJbnQodCwxMCkrMSkuam9pbigiICIpfSkucmVwbGFjZSgvPHRleHQ6dGFiW14+XSpcLz4vZywiCSIpLnJlcGxhY2UoLzx0ZXh0OmxpbmUtYnJlYWtcLz4vZyxgCmApLHI9RWUoYS5yZXBsYWNlKC88W14+XSo+L2csIiIpKTtyZXR1cm5bcl19dmFyIEpzPXtkYXk6WyJkIiwiZGQiXSxtb250aDpbIm0iLCJtbSJdLHllYXI6WyJ5IiwieXkiXSxob3VyczpbImgiLCJoaCJdLG1pbnV0ZXM6WyJtIiwibW0iXSxzZWNvbmRzOlsicyIsInNzIl0sImFtLXBtIjpbIkEvUCIsIkFNL1BNIl0sImRheS1vZi13ZWVrIjpbImRkZCIsImRkZGQiXSxlcmE6WyJlIiwiZWUiXSxxdWFydGVyOlsiXFxRbSIsJ21cXCJ0aCBxdWFydGVyIiddfTtmdW5jdGlvbiBacyhlLGEpe3ZhciByPWF8fHt9LG49TXQoZSksdD1bXSxzLGksYz17bmFtZToiIn0sZj0iIixvPTAsbCxoLHg9e30sZD1bXSx2PXIuZGVuc2U/W106e30sdSxnLEY9e3ZhbHVlOiIifSx5PSIiLF89MCxOPVtdLGI9LTEsST0tMSxBPXtzOntyOjFlNixjOjFlN30sZTp7cjowLGM6MH19LFY9MCxEPXt9LHo9W10sRz17fSxQPTAsSj0wLGZlPVtdLHJlPTEsY2U9MSxpZT1bXSxGZT17TmFtZXM6W119LFc9e30sbGU9WyIiLCIiXSxoZT1bXSxTPXt9LFU9IiIsUj0wLE89ITEsSz0hMSxlZT0wO2ZvcihEYS5sYXN0SW5kZXg9MCxuPW4ucmVwbGFjZSgvPCEtLShbXHNcU10qPyktLT4vbWcsIiIpLnJlcGxhY2UoLzwhRE9DVFlQRVteXFtdKlxbW15cXV0qXF0+L2dtLCIiKTt1PURhLmV4ZWMobik7KXN3aXRjaCh1WzNdPXVbM10ucmVwbGFjZSgvXy4qJC8sIiIpKXtjYXNlInRhYmxlIjpjYXNlIuW3peS9nOihqCI6dVsxXT09PSIvIj8oQS5lLmM+PUEucy5jJiZBLmUucj49QS5zLnI/dlsiIXJlZiJdPV9lKEEpOnZbIiFyZWYiXT0iQTE6QTEiLHIuc2hlZXRSb3dzPjAmJnIuc2hlZXRSb3dzPD1BLmUuciYmKHZbIiFmdWxscmVmIl09dlsiIXJlZiJdLEEuZS5yPXIuc2hlZXRSb3dzLTEsdlsiIXJlZiJdPV9lKEEpKSx6Lmxlbmd0aCYmKHZbIiFtZXJnZXMiXT16KSxmZS5sZW5ndGgmJih2WyIhcm93cyJdPWZlKSxsLm5hbWU9bC7lkI3np7B8fGwubmFtZSx0eXBlb2YgSlNPTjwidSImJkpTT04uc3RyaW5naWZ5KGwpLGQucHVzaChsLm5hbWUpLHhbbC5uYW1lXT12LEs9ITEpOnVbMF0uY2hhckF0KHVbMF0ubGVuZ3RoLTIpIT09Ii8iJiYobD1vZSh1WzBdLCExKSxiPUk9LTEsQS5zLnI9QS5zLmM9MWU3LEEuZS5yPUEuZS5jPTAsdj1yLmRlbnNlP1tdOnt9LHo9W10sZmU9W10sSz0hMCk7YnJlYWs7Y2FzZSJ0YWJsZS1yb3ctZ3JvdXAiOnVbMV09PT0iLyI/LS1WOisrVjticmVhaztjYXNlInRhYmxlLXJvdyI6Y2FzZSLooYwiOmlmKHVbMV09PT0iLyIpe2IrPXJlLHJlPTE7YnJlYWt9aWYoaD1vZSh1WzBdLCExKSxoLuihjOWPtz9iPWgu6KGM5Y+3LTE6Yj09LTEmJihiPTApLHJlPStoWyJudW1iZXItcm93cy1yZXBlYXRlZCJdfHwxLHJlPDEwKWZvcihlZT0wO2VlPHJlOysrZWUpVj4wJiYoZmVbYitlZV09e2xldmVsOlZ9KTtJPS0xO2JyZWFrO2Nhc2UiY292ZXJlZC10YWJsZS1jZWxsIjp1WzFdIT09Ii8iJiYrK0ksci5zaGVldFN0dWJzJiYoci5kZW5zZT8odltiXXx8KHZbYl09W10pLHZbYl1bSV09e3Q6InoifSk6dlt1ZSh7cjpiLGM6SX0pXT17dDoieiJ9KSx5PSIiLE49W107YnJlYWs7Y2FzZSJ0YWJsZS1jZWxsIjpjYXNlIuaVsOaNriI6aWYodVswXS5jaGFyQXQodVswXS5sZW5ndGgtMik9PT0iLyIpKytJLEY9b2UodVswXSwhMSksY2U9cGFyc2VJbnQoRlsibnVtYmVyLWNvbHVtbnMtcmVwZWF0ZWQiXXx8IjEiLDEwKSxnPXt0OiJ6Iix2Om51bGx9LEYuZm9ybXVsYSYmci5jZWxsRm9ybXVsYSE9ITEmJihnLmY9UHMoRWUoRi5mb3JtdWxhKSkpLChGLuaVsOaNruexu+Wei3x8RlsidmFsdWUtdHlwZSJdKT09InN0cmluZyImJihnLnQ9InMiLGcudj1FZShGWyJzdHJpbmctdmFsdWUiXXx8IiIpLHIuZGVuc2U/KHZbYl18fCh2W2JdPVtdKSx2W2JdW0ldPWcpOnZbdWUoe3I6YixjOkl9KV09ZyksSSs9Y2UtMTtlbHNlIGlmKHVbMV0hPT0iLyIpeysrSSx5PSIiLF89MCxOPVtdLGNlPTE7dmFyIG5lPXJlP2IrcmUtMTpiO2lmKEk+QS5lLmMmJihBLmUuYz1JKSxJPEEucy5jJiYoQS5zLmM9SSksYjxBLnMuciYmKEEucy5yPWIpLG5lPkEuZS5yJiYoQS5lLnI9bmUpLEY9b2UodVswXSwhMSksaGU9W10sUz17fSxnPXt0OkYu5pWw5o2u57G75Z6LfHxGWyJ2YWx1ZS10eXBlIl0sdjpudWxsfSxyLmNlbGxGb3JtdWxhKWlmKEYuZm9ybXVsYSYmKEYuZm9ybXVsYT1FZShGLmZvcm11bGEpKSxGWyJudW1iZXItbWF0cml4LWNvbHVtbnMtc3Bhbm5lZCJdJiZGWyJudW1iZXItbWF0cml4LXJvd3Mtc3Bhbm5lZCJdJiYoUD1wYXJzZUludChGWyJudW1iZXItbWF0cml4LXJvd3Mtc3Bhbm5lZCJdLDEwKXx8MCxKPXBhcnNlSW50KEZbIm51bWJlci1tYXRyaXgtY29sdW1ucy1zcGFubmVkIl0sMTApfHwwLEc9e3M6e3I6YixjOkl9LGU6e3I6YitQLTEsYzpJK0otMX19LGcuRj1fZShHKSxpZS5wdXNoKFtHLGcuRl0pKSxGLmZvcm11bGEpZy5mPVBzKEYuZm9ybXVsYSk7ZWxzZSBmb3IoZWU9MDtlZTxpZS5sZW5ndGg7KytlZSliPj1pZVtlZV1bMF0ucy5yJiZiPD1pZVtlZV1bMF0uZS5yJiZJPj1pZVtlZV1bMF0ucy5jJiZJPD1pZVtlZV1bMF0uZS5jJiYoZy5GPWllW2VlXVsxXSk7c3dpdGNoKChGWyJudW1iZXItY29sdW1ucy1zcGFubmVkIl18fEZbIm51bWJlci1yb3dzLXNwYW5uZWQiXSkmJihQPXBhcnNlSW50KEZbIm51bWJlci1yb3dzLXNwYW5uZWQiXSwxMCl8fDAsSj1wYXJzZUludChGWyJudW1iZXItY29sdW1ucy1zcGFubmVkIl0sMTApfHwwLEc9e3M6e3I6YixjOkl9LGU6e3I6YitQLTEsYzpJK0otMX19LHoucHVzaChHKSksRlsibnVtYmVyLWNvbHVtbnMtcmVwZWF0ZWQiXSYmKGNlPXBhcnNlSW50KEZbIm51bWJlci1jb2x1bW5zLXJlcGVhdGVkIl0sMTApKSxnLnQpe2Nhc2UiYm9vbGVhbiI6Zy50PSJiIixnLnY9U2UoRlsiYm9vbGVhbi12YWx1ZSJdKTticmVhaztjYXNlImZsb2F0IjpnLnQ9Im4iLGcudj1wYXJzZUZsb2F0KEYudmFsdWUpO2JyZWFrO2Nhc2UicGVyY2VudGFnZSI6Zy50PSJuIixnLnY9cGFyc2VGbG9hdChGLnZhbHVlKTticmVhaztjYXNlImN1cnJlbmN5IjpnLnQ9Im4iLGcudj1wYXJzZUZsb2F0KEYudmFsdWUpO2JyZWFrO2Nhc2UiZGF0ZSI6Zy50PSJkIixnLnY9V2UoRlsiZGF0ZS12YWx1ZSJdKSxyLmNlbGxEYXRlc3x8KGcudD0ibiIsZy52PXRyKGcudikpLGcuej0ibS9kL3l5IjticmVhaztjYXNlInRpbWUiOmcudD0ibiIsZy52PUdpKEZbInRpbWUtdmFsdWUiXSkvODY0MDAsci5jZWxsRGF0ZXMmJihnLnQ9ImQiLGcudj1pdChnLnYpKSxnLno9IkhIOk1NOlNTIjticmVhaztjYXNlIm51bWJlciI6Zy50PSJuIixnLnY9cGFyc2VGbG9hdChGLuaVsOaNruaVsOWAvCk7YnJlYWs7ZGVmYXVsdDppZihnLnQ9PT0ic3RyaW5nInx8Zy50PT09InRleHQifHwhZy50KWcudD0icyIsRlsic3RyaW5nLXZhbHVlIl0hPW51bGwmJih5PUVlKEZbInN0cmluZy12YWx1ZSJdKSxOPVtdKTtlbHNlIHRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgdmFsdWUgdHlwZSAiK2cudCl9fWVsc2V7aWYoTz0hMSxnLnQ9PT0icyImJihnLnY9eXx8IiIsTi5sZW5ndGgmJihnLlI9TiksTz1fPT0wKSxXLlRhcmdldCYmKGcubD1XKSxoZS5sZW5ndGg+MCYmKGcuYz1oZSxoZT1bXSkseSYmci5jZWxsVGV4dCE9PSExJiYoZy53PXkpLE8mJihnLnQ9InoiLGRlbGV0ZSBnLnYpLCghT3x8ci5zaGVldFN0dWJzKSYmIShyLnNoZWV0Um93cyYmci5zaGVldFJvd3M8PWIpKWZvcih2YXIgcT0wO3E8cmU7KytxKXtpZihjZT1wYXJzZUludChGWyJudW1iZXItY29sdW1ucy1yZXBlYXRlZCJdfHwiMSIsMTApLHIuZGVuc2UpZm9yKHZbYitxXXx8KHZbYitxXT1bXSksdltiK3FdW0ldPXE9PTA/ZzpYZShnKTstLWNlPjA7KXZbYitxXVtJK2NlXT1YZShnKTtlbHNlIGZvcih2W3VlKHtyOmIrcSxjOkl9KV09ZzstLWNlPjA7KXZbdWUoe3I6YitxLGM6SStjZX0pXT1YZShnKTtBLmUuYzw9SSYmKEEuZS5jPUkpfWNlPXBhcnNlSW50KEZbIm51bWJlci1jb2x1bW5zLXJlcGVhdGVkIl18fCIxIiwxMCksSSs9Y2UtMSxjZT0wLGc9e30seT0iIixOPVtdfVc9e307YnJlYWs7Y2FzZSJkb2N1bWVudCI6Y2FzZSJkb2N1bWVudC1jb250ZW50IjpjYXNlIueUteWtkOihqOagvOaWh+ahoyI6Y2FzZSJzcHJlYWRzaGVldCI6Y2FzZSLkuLvkvZMiOmNhc2Uic2NyaXB0cyI6Y2FzZSJzdHlsZXMiOmNhc2UiZm9udC1mYWNlLWRlY2xzIjpjYXNlIm1hc3Rlci1zdHlsZXMiOmlmKHVbMV09PT0iLyIpe2lmKChzPXQucG9wKCkpWzBdIT09dVszXSl0aHJvdyJCYWQgc3RhdGU6ICIrc31lbHNlIHVbMF0uY2hhckF0KHVbMF0ubGVuZ3RoLTIpIT09Ii8iJiZ0LnB1c2goW3VbM10sITBdKTticmVhaztjYXNlImFubm90YXRpb24iOmlmKHVbMV09PT0iLyIpe2lmKChzPXQucG9wKCkpWzBdIT09dVszXSl0aHJvdyJCYWQgc3RhdGU6ICIrcztTLnQ9eSxOLmxlbmd0aCYmKFMuUj1OKSxTLmE9VSxoZS5wdXNoKFMpfWVsc2UgdVswXS5jaGFyQXQodVswXS5sZW5ndGgtMikhPT0iLyImJnQucHVzaChbdVszXSwhMV0pO1U9IiIsUj0wLHk9IiIsXz0wLE49W107YnJlYWs7Y2FzZSJjcmVhdG9yIjp1WzFdPT09Ii8iP1U9bi5zbGljZShSLHUuaW5kZXgpOlI9dS5pbmRleCt1WzBdLmxlbmd0aDticmVhaztjYXNlIm1ldGEiOmNhc2Ui5YWD5pWw5o2uIjpjYXNlInNldHRpbmdzIjpjYXNlImNvbmZpZy1pdGVtLXNldCI6Y2FzZSJjb25maWctaXRlbS1tYXAtaW5kZXhlZCI6Y2FzZSJjb25maWctaXRlbS1tYXAtZW50cnkiOmNhc2UiY29uZmlnLWl0ZW0tbWFwLW5hbWVkIjpjYXNlInNoYXBlcyI6Y2FzZSJmcmFtZSI6Y2FzZSJ0ZXh0LWJveCI6Y2FzZSJpbWFnZSI6Y2FzZSJkYXRhLXBpbG90LXRhYmxlcyI6Y2FzZSJsaXN0LXN0eWxlIjpjYXNlImZvcm0iOmNhc2UiZGRlLWxpbmtzIjpjYXNlImV2ZW50LWxpc3RlbmVycyI6Y2FzZSJjaGFydCI6aWYodVsxXT09PSIvIil7aWYoKHM9dC5wb3AoKSlbMF0hPT11WzNdKXRocm93IkJhZCBzdGF0ZTogIitzfWVsc2UgdVswXS5jaGFyQXQodVswXS5sZW5ndGgtMikhPT0iLyImJnQucHVzaChbdVszXSwhMV0pO3k9IiIsXz0wLE49W107YnJlYWs7Y2FzZSJzY2llbnRpZmljLW51bWJlciI6YnJlYWs7Y2FzZSJjdXJyZW5jeS1zeW1ib2wiOmJyZWFrO2Nhc2UiY3VycmVuY3ktc3R5bGUiOmJyZWFrO2Nhc2UibnVtYmVyLXN0eWxlIjpjYXNlInBlcmNlbnRhZ2Utc3R5bGUiOmNhc2UiZGF0ZS1zdHlsZSI6Y2FzZSJ0aW1lLXN0eWxlIjppZih1WzFdPT09Ii8iKXtpZihEW2MubmFtZV09Ziwocz10LnBvcCgpKVswXSE9PXVbM10pdGhyb3ciQmFkIHN0YXRlOiAiK3N9ZWxzZSB1WzBdLmNoYXJBdCh1WzBdLmxlbmd0aC0yKSE9PSIvIiYmKGY9IiIsYz1vZSh1WzBdLCExKSx0LnB1c2goW3VbM10sITBdKSk7YnJlYWs7Y2FzZSJzY3JpcHQiOmJyZWFrO2Nhc2UibGlicmFyaWVzIjpicmVhaztjYXNlImF1dG9tYXRpYy1zdHlsZXMiOmJyZWFrO2Nhc2UiZGVmYXVsdC1zdHlsZSI6Y2FzZSJwYWdlLWxheW91dCI6YnJlYWs7Y2FzZSJzdHlsZSI6YnJlYWs7Y2FzZSJtYXAiOmJyZWFrO2Nhc2UiZm9udC1mYWNlIjpicmVhaztjYXNlInBhcmFncmFwaC1wcm9wZXJ0aWVzIjpicmVhaztjYXNlInRhYmxlLXByb3BlcnRpZXMiOmJyZWFrO2Nhc2UidGFibGUtY29sdW1uLXByb3BlcnRpZXMiOmJyZWFrO2Nhc2UidGFibGUtcm93LXByb3BlcnRpZXMiOmJyZWFrO2Nhc2UidGFibGUtY2VsbC1wcm9wZXJ0aWVzIjpicmVhaztjYXNlIm51bWJlciI6c3dpdGNoKHRbdC5sZW5ndGgtMV1bMF0pe2Nhc2UidGltZS1zdHlsZSI6Y2FzZSJkYXRlLXN0eWxlIjppPW9lKHVbMF0sITEpLGYrPUpzW3VbM11dW2kuc3R5bGU9PT0ibG9uZyI/MTowXTticmVha31icmVhaztjYXNlImZyYWN0aW9uIjpicmVhaztjYXNlImRheSI6Y2FzZSJtb250aCI6Y2FzZSJ5ZWFyIjpjYXNlImVyYSI6Y2FzZSJkYXktb2Ytd2VlayI6Y2FzZSJ3ZWVrLW9mLXllYXIiOmNhc2UicXVhcnRlciI6Y2FzZSJob3VycyI6Y2FzZSJtaW51dGVzIjpjYXNlInNlY29uZHMiOmNhc2UiYW0tcG0iOnN3aXRjaCh0W3QubGVuZ3RoLTFdWzBdKXtjYXNlInRpbWUtc3R5bGUiOmNhc2UiZGF0ZS1zdHlsZSI6aT1vZSh1WzBdLCExKSxmKz1Kc1t1WzNdXVtpLnN0eWxlPT09ImxvbmciPzE6MF07YnJlYWt9YnJlYWs7Y2FzZSJib29sZWFuLXN0eWxlIjpicmVhaztjYXNlImJvb2xlYW4iOmJyZWFrO2Nhc2UidGV4dC1zdHlsZSI6YnJlYWs7Y2FzZSJ0ZXh0IjppZih1WzBdLnNsaWNlKC0yKT09PSIvPiIpYnJlYWs7aWYodVsxXT09PSIvIilzd2l0Y2godFt0Lmxlbmd0aC0xXVswXSl7Y2FzZSJudW1iZXItc3R5bGUiOmNhc2UiZGF0ZS1zdHlsZSI6Y2FzZSJ0aW1lLXN0eWxlIjpmKz1uLnNsaWNlKG8sdS5pbmRleCk7YnJlYWt9ZWxzZSBvPXUuaW5kZXgrdVswXS5sZW5ndGg7YnJlYWs7Y2FzZSJuYW1lZC1yYW5nZSI6aT1vZSh1WzBdLCExKSxsZT10MChpWyJjZWxsLXJhbmdlLWFkZHJlc3MiXSk7dmFyIGo9e05hbWU6aS5uYW1lLFJlZjpsZVswXSsiISIrbGVbMV19O0smJihqLlNoZWV0PWQubGVuZ3RoKSxGZS5OYW1lcy5wdXNoKGopO2JyZWFrO2Nhc2UidGV4dC1jb250ZW50IjpicmVhaztjYXNlInRleHQtcHJvcGVydGllcyI6YnJlYWs7Y2FzZSJlbWJlZGRlZC10ZXh0IjpicmVhaztjYXNlImJvZHkiOmNhc2Ui55S15a2Q6KGo5qC8IjpicmVhaztjYXNlImZvcm1zIjpicmVhaztjYXNlInRhYmxlLWNvbHVtbiI6YnJlYWs7Y2FzZSJ0YWJsZS1oZWFkZXItcm93cyI6YnJlYWs7Y2FzZSJ0YWJsZS1yb3dzIjpicmVhaztjYXNlInRhYmxlLWNvbHVtbi1ncm91cCI6YnJlYWs7Y2FzZSJ0YWJsZS1oZWFkZXItY29sdW1ucyI6YnJlYWs7Y2FzZSJ0YWJsZS1jb2x1bW5zIjpicmVhaztjYXNlIm51bGwtZGF0ZSI6YnJlYWs7Y2FzZSJncmFwaGljLXByb3BlcnRpZXMiOmJyZWFrO2Nhc2UiY2FsY3VsYXRpb24tc2V0dGluZ3MiOmJyZWFrO2Nhc2UibmFtZWQtZXhwcmVzc2lvbnMiOmJyZWFrO2Nhc2UibGFiZWwtcmFuZ2UiOmJyZWFrO2Nhc2UibGFiZWwtcmFuZ2VzIjpicmVhaztjYXNlIm5hbWVkLWV4cHJlc3Npb24iOmJyZWFrO2Nhc2Uic29ydCI6YnJlYWs7Y2FzZSJzb3J0LWJ5IjpicmVhaztjYXNlInNvcnQtZ3JvdXBzIjpicmVhaztjYXNlInRhYiI6YnJlYWs7Y2FzZSJsaW5lLWJyZWFrIjpicmVhaztjYXNlInNwYW4iOmJyZWFrO2Nhc2UicCI6Y2FzZSLmlofmnKzkuLIiOmlmKFsibWFzdGVyLXN0eWxlcyJdLmluZGV4T2YodFt0Lmxlbmd0aC0xXVswXSk+LTEpYnJlYWs7aWYodVsxXT09PSIvIiYmKCFGfHwhRlsic3RyaW5nLXZhbHVlIl0pKXt2YXIgVGU9SXgobi5zbGljZShfLHUuaW5kZXgpKTt5PSh5Lmxlbmd0aD4wP3krYApgOiIiKStUZVswXX1lbHNlIG9lKHVbMF0sITEpLF89dS5pbmRleCt1WzBdLmxlbmd0aDticmVhaztjYXNlInMiOmJyZWFrO2Nhc2UiZGF0YWJhc2UtcmFuZ2UiOmlmKHVbMV09PT0iLyIpYnJlYWs7dHJ5e2xlPXQwKG9lKHVbMF0pWyJ0YXJnZXQtcmFuZ2UtYWRkcmVzcyJdKSx4W2xlWzBdXVsiIWF1dG9maWx0ZXIiXT17cmVmOmxlWzFdfX1jYXRjaHt9YnJlYWs7Y2FzZSJkYXRlIjpicmVhaztjYXNlIm9iamVjdCI6YnJlYWs7Y2FzZSJ0aXRsZSI6Y2FzZSLmoIfpopgiOmJyZWFrO2Nhc2UiZGVzYyI6YnJlYWs7Y2FzZSJiaW5hcnktZGF0YSI6YnJlYWs7Y2FzZSJ0YWJsZS1zb3VyY2UiOmJyZWFrO2Nhc2Uic2NlbmFyaW8iOmJyZWFrO2Nhc2UiaXRlcmF0aW9uIjpicmVhaztjYXNlImNvbnRlbnQtdmFsaWRhdGlvbnMiOmJyZWFrO2Nhc2UiY29udGVudC12YWxpZGF0aW9uIjpicmVhaztjYXNlImhlbHAtbWVzc2FnZSI6YnJlYWs7Y2FzZSJlcnJvci1tZXNzYWdlIjpicmVhaztjYXNlImRhdGFiYXNlLXJhbmdlcyI6YnJlYWs7Y2FzZSJmaWx0ZXIiOmJyZWFrO2Nhc2UiZmlsdGVyLWFuZCI6YnJlYWs7Y2FzZSJmaWx0ZXItb3IiOmJyZWFrO2Nhc2UiZmlsdGVyLWNvbmRpdGlvbiI6YnJlYWs7Y2FzZSJsaXN0LWxldmVsLXN0eWxlLWJ1bGxldCI6YnJlYWs7Y2FzZSJsaXN0LWxldmVsLXN0eWxlLW51bWJlciI6YnJlYWs7Y2FzZSJsaXN0LWxldmVsLXByb3BlcnRpZXMiOmJyZWFrO2Nhc2Uic2VuZGVyLWZpcnN0bmFtZSI6Y2FzZSJzZW5kZXItbGFzdG5hbWUiOmNhc2Uic2VuZGVyLWluaXRpYWxzIjpjYXNlInNlbmRlci10aXRsZSI6Y2FzZSJzZW5kZXItcG9zaXRpb24iOmNhc2Uic2VuZGVyLWVtYWlsIjpjYXNlInNlbmRlci1waG9uZS1wcml2YXRlIjpjYXNlInNlbmRlci1mYXgiOmNhc2Uic2VuZGVyLWNvbXBhbnkiOmNhc2Uic2VuZGVyLXBob25lLXdvcmsiOmNhc2Uic2VuZGVyLXN0cmVldCI6Y2FzZSJzZW5kZXItY2l0eSI6Y2FzZSJzZW5kZXItcG9zdGFsLWNvZGUiOmNhc2Uic2VuZGVyLWNvdW50cnkiOmNhc2Uic2VuZGVyLXN0YXRlLW9yLXByb3ZpbmNlIjpjYXNlImF1dGhvci1uYW1lIjpjYXNlImF1dGhvci1pbml0aWFscyI6Y2FzZSJjaGFwdGVyIjpjYXNlImZpbGUtbmFtZSI6Y2FzZSJ0ZW1wbGF0ZS1uYW1lIjpjYXNlInNoZWV0LW5hbWUiOmJyZWFrO2Nhc2UiZXZlbnQtbGlzdGVuZXIiOmJyZWFrO2Nhc2UiaW5pdGlhbC1jcmVhdG9yIjpjYXNlImNyZWF0aW9uLWRhdGUiOmNhc2UicHJpbnQtZGF0ZSI6Y2FzZSJnZW5lcmF0b3IiOmNhc2UiZG9jdW1lbnQtc3RhdGlzdGljIjpjYXNlInVzZXItZGVmaW5lZCI6Y2FzZSJlZGl0aW5nLWR1cmF0aW9uIjpjYXNlImVkaXRpbmctY3ljbGVzIjpicmVhaztjYXNlImNvbmZpZy1pdGVtIjpicmVhaztjYXNlInBhZ2UtbnVtYmVyIjpicmVhaztjYXNlInBhZ2UtY291bnQiOmJyZWFrO2Nhc2UidGltZSI6YnJlYWs7Y2FzZSJjZWxsLXJhbmdlLXNvdXJjZSI6YnJlYWs7Y2FzZSJkZXRlY3RpdmUiOmJyZWFrO2Nhc2Uib3BlcmF0aW9uIjpicmVhaztjYXNlImhpZ2hsaWdodGVkLXJhbmdlIjpicmVhaztjYXNlImRhdGEtcGlsb3QtdGFibGUiOmNhc2Uic291cmNlLWNlbGwtcmFuZ2UiOmNhc2Uic291cmNlLXNlcnZpY2UiOmNhc2UiZGF0YS1waWxvdC1maWVsZCI6Y2FzZSJkYXRhLXBpbG90LWxldmVsIjpjYXNlImRhdGEtcGlsb3Qtc3VidG90YWxzIjpjYXNlImRhdGEtcGlsb3Qtc3VidG90YWwiOmNhc2UiZGF0YS1waWxvdC1tZW1iZXJzIjpjYXNlImRhdGEtcGlsb3QtbWVtYmVyIjpjYXNlImRhdGEtcGlsb3QtZGlzcGxheS1pbmZvIjpjYXNlImRhdGEtcGlsb3Qtc29ydC1pbmZvIjpjYXNlImRhdGEtcGlsb3QtbGF5b3V0LWluZm8iOmNhc2UiZGF0YS1waWxvdC1maWVsZC1yZWZlcmVuY2UiOmNhc2UiZGF0YS1waWxvdC1ncm91cHMiOmNhc2UiZGF0YS1waWxvdC1ncm91cCI6Y2FzZSJkYXRhLXBpbG90LWdyb3VwLW1lbWJlciI6YnJlYWs7Y2FzZSJyZWN0IjpicmVhaztjYXNlImRkZS1jb25uZWN0aW9uLWRlY2xzIjpjYXNlImRkZS1jb25uZWN0aW9uLWRlY2wiOmNhc2UiZGRlLWxpbmsiOmNhc2UiZGRlLXNvdXJjZSI6YnJlYWs7Y2FzZSJwcm9wZXJ0aWVzIjpicmVhaztjYXNlInByb3BlcnR5IjpicmVhaztjYXNlImEiOmlmKHVbMV0hPT0iLyIpe2lmKFc9b2UodVswXSwhMSksIVcuaHJlZilicmVhaztXLlRhcmdldD1FZShXLmhyZWYpLGRlbGV0ZSBXLmhyZWYsVy5UYXJnZXQuY2hhckF0KDApPT0iIyImJlcuVGFyZ2V0LmluZGV4T2YoIi4iKT4tMT8obGU9dDAoVy5UYXJnZXQuc2xpY2UoMSkpLFcuVGFyZ2V0PSIjIitsZVswXSsiISIrbGVbMV0pOlcuVGFyZ2V0Lm1hdGNoKC9eXC5cLltcXFwvXS8pJiYoVy5UYXJnZXQ9Vy5UYXJnZXQuc2xpY2UoMykpfWJyZWFrO2Nhc2UidGFibGUtcHJvdGVjdGlvbiI6YnJlYWs7Y2FzZSJkYXRhLXBpbG90LWdyYW5kLXRvdGFsIjpicmVhaztjYXNlIm9mZmljZS1kb2N1bWVudC1jb21tb24tYXR0cnMiOmJyZWFrO2RlZmF1bHQ6c3dpdGNoKHVbMl0pe2Nhc2UiZGM6IjpjYXNlImNhbGNleHQ6IjpjYXNlImxvZXh0OiI6Y2FzZSJvb286IjpjYXNlImNoYXJ0b29vOiI6Y2FzZSJkcmF3OiI6Y2FzZSJzdHlsZToiOmNhc2UiY2hhcnQ6IjpjYXNlImZvcm06IjpjYXNlInVvZjoiOmNhc2Ui6KGoOiI6Y2FzZSLlrZc6IjpicmVhaztkZWZhdWx0OmlmKHIuV1RGKXRocm93IG5ldyBFcnJvcih1KX19dmFyIEM9e1NoZWV0czp4LFNoZWV0TmFtZXM6ZCxXb3JrYm9vazpGZX07cmV0dXJuIHIuYm9va1NoZWV0cyYmZGVsZXRlIEMuU2hlZXRzLEN9ZnVuY3Rpb24gcXMoZSxhKXthPWF8fHt9LGRyKGUsIk1FVEEtSU5GL21hbmlmZXN0LnhtbCIpJiZ6YyhMZShlLCJNRVRBLUlORi9tYW5pZmVzdC54bWwiKSxhKTt2YXIgcj1vcihlLCJjb250ZW50LnhtbCIpO2lmKCFyKXRocm93IG5ldyBFcnJvcigiTWlzc2luZyBjb250ZW50LnhtbCBpbiBPRFMgLyBVT0YgZmlsZSIpO3ZhciBuPVpzKEFlKHIpLGEpO3JldHVybiBkcihlLCJtZXRhLnhtbCIpJiYobi5Qcm9wcz1WbihMZShlLCJtZXRhLnhtbCIpKSksbn1mdW5jdGlvbiBRcyhlLGEpe3JldHVybiBacyhlLGEpfS8qISBzaGVldGpzIChDKSAyMDEzLXByZXNlbnQgU2hlZXRKUyAtLSBodHRwOi8vc2hlZXRqcy5jb20gKi9mdW5jdGlvbiBmMChlKXtyZXR1cm4gbmV3IERhdGFWaWV3KGUuYnVmZmVyLGUuYnl0ZU9mZnNldCxlLmJ5dGVMZW5ndGgpfWZ1bmN0aW9uIG8wKGUpe3JldHVybiB0eXBlb2YgVGV4dERlY29kZXI8InUiP25ldyBUZXh0RGVjb2RlcigpLmRlY29kZShlKTpBZShacihlKSl9ZnVuY3Rpb24gbDAoZSl7dmFyIGE9ZS5yZWR1Y2UoZnVuY3Rpb24odCxzKXtyZXR1cm4gdCtzLmxlbmd0aH0sMCkscj1uZXcgVWludDhBcnJheShhKSxuPTA7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbih0KXtyLnNldCh0LG4pLG4rPXQubGVuZ3RofSkscn1mdW5jdGlvbiBlaShlKXtyZXR1cm4gZS09ZT4+MSYxNDMxNjU1NzY1LGU9KGUmODU4OTkzNDU5KSsoZT4+MiY4NTg5OTM0NTkpLChlKyhlPj40KSYyNTI2NDUxMzUpKjE2ODQzMDA5Pj4+MjR9ZnVuY3Rpb24gTngoZSxhKXtmb3IodmFyIHI9KGVbYSsxNV0mMTI3KTw8N3xlW2ErMTRdPj4xLG49ZVthKzE0XSYxLHQ9YSsxMzt0Pj1hOy0tdCluPW4qMjU2K2VbdF07cmV0dXJuKGVbYSsxNV0mMTI4Py1uOm4pKk1hdGgucG93KDEwLHItNjE3Nil9ZnVuY3Rpb24gWWEoZSxhKXt2YXIgcj1hP2FbMF06MCxuPWVbcl0mMTI3O2U6aWYoZVtyKytdPj0xMjgmJihufD0oZVtyXSYxMjcpPDw3LGVbcisrXTwxMjh8fChufD0oZVtyXSYxMjcpPDwxNCxlW3IrK108MTI4KXx8KG58PShlW3JdJjEyNyk8PDIxLGVbcisrXTwxMjgpfHwobis9KGVbcl0mMTI3KSpNYXRoLnBvdygyLDI4KSwrK3IsZVtyKytdPDEyOCl8fChuKz0oZVtyXSYxMjcpKk1hdGgucG93KDIsMzUpLCsrcixlW3IrK108MTI4KXx8KG4rPShlW3JdJjEyNykqTWF0aC5wb3coMiw0MiksKytyLGVbcisrXTwxMjgpKSlicmVhayBlO3JldHVybiBhJiYoYVswXT1yKSxufWZ1bmN0aW9uIEhlKGUpe3ZhciBhPTAscj1lW2FdJjEyNztlOmlmKGVbYSsrXT49MTI4KXtpZihyfD0oZVthXSYxMjcpPDw3LGVbYSsrXTwxMjh8fChyfD0oZVthXSYxMjcpPDwxNCxlW2ErK108MTI4KXx8KHJ8PShlW2FdJjEyNyk8PDIxLGVbYSsrXTwxMjgpKWJyZWFrIGU7cnw9KGVbYV0mMTI3KTw8Mjh9cmV0dXJuIHJ9ZnVuY3Rpb24gUWUoZSl7Zm9yKHZhciBhPVtdLHI9WzBdO3JbMF08ZS5sZW5ndGg7KXt2YXIgbj1yWzBdLHQ9WWEoZSxyKSxzPXQmNzt0PU1hdGguZmxvb3IodC84KTt2YXIgaT0wLGM7aWYodD09MClicmVhaztzd2l0Y2gocyl7Y2FzZSAwOntmb3IodmFyIGY9clswXTtlW3JbMF0rK10+PTEyODspO2M9ZS5zbGljZShmLHJbMF0pfWJyZWFrO2Nhc2UgNTppPTQsYz1lLnNsaWNlKHJbMF0sclswXStpKSxyWzBdKz1pO2JyZWFrO2Nhc2UgMTppPTgsYz1lLnNsaWNlKHJbMF0sclswXStpKSxyWzBdKz1pO2JyZWFrO2Nhc2UgMjppPVlhKGUsciksYz1lLnNsaWNlKHJbMF0sclswXStpKSxyWzBdKz1pO2JyZWFrO2Nhc2UgMzpjYXNlIDQ6ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlBCIFR5cGUgIi5jb25jYXQocywiIGZvciBGaWVsZCAiKS5jb25jYXQodCwiIGF0IG9mZnNldCAiKS5jb25jYXQobikpfXZhciBvPXtkYXRhOmMsdHlwZTpzfTthW3RdPT1udWxsP2FbdF09W29dOmFbdF0ucHVzaChvKX1yZXR1cm4gYX1mdW5jdGlvbiBoMChlLGEpe3JldHVybihlPT1udWxsP3ZvaWQgMDplLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gYShyLmRhdGEpfSkpfHxbXX1mdW5jdGlvbiBQeChlKXtmb3IodmFyIGEscj1bXSxuPVswXTtuWzBdPGUubGVuZ3RoOyl7dmFyIHQ9WWEoZSxuKSxzPVFlKGUuc2xpY2UoblswXSxuWzBdK3QpKTtuWzBdKz10O3ZhciBpPXtpZDpIZShzWzFdWzBdLmRhdGEpLG1lc3NhZ2VzOltdfTtzWzJdLmZvckVhY2goZnVuY3Rpb24oYyl7dmFyIGY9UWUoYy5kYXRhKSxvPUhlKGZbM11bMF0uZGF0YSk7aS5tZXNzYWdlcy5wdXNoKHttZXRhOmYsZGF0YTplLnNsaWNlKG5bMF0sblswXStvKX0pLG5bMF0rPW99KSwoYT1zWzNdKSE9bnVsbCYmYVswXSYmKGkubWVyZ2U9SGUoc1szXVswXS5kYXRhKT4+PjA+MCksci5wdXNoKGkpfXJldHVybiByfWZ1bmN0aW9uIEx4KGUsYSl7aWYoZSE9MCl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgU25hcHB5IGNodW5rIHR5cGUgIi5jb25jYXQoZSkpO2Zvcih2YXIgcj1bMF0sbj1ZYShhLHIpLHQ9W107clswXTxhLmxlbmd0aDspe3ZhciBzPWFbclswXV0mMztpZihzPT0wKXt2YXIgaT1hW3JbMF0rK10+PjI7aWYoaTw2MCkrK2k7ZWxzZXt2YXIgYz1pLTU5O2k9YVtyWzBdXSxjPjEmJihpfD1hW3JbMF0rMV08PDgpLGM+MiYmKGl8PWFbclswXSsyXTw8MTYpLGM+MyYmKGl8PWFbclswXSszXTw8MjQpLGk+Pj49MCxpKyssclswXSs9Y310LnB1c2goYS5zbGljZShyWzBdLHJbMF0raSkpLHJbMF0rPWk7Y29udGludWV9ZWxzZXt2YXIgZj0wLG89MDtpZihzPT0xPyhvPShhW3JbMF1dPj4yJjcpKzQsZj0oYVtyWzBdKytdJjIyNCk8PDMsZnw9YVtyWzBdKytdKToobz0oYVtyWzBdKytdPj4yKSsxLHM9PTI/KGY9YVtyWzBdXXxhW3JbMF0rMV08PDgsclswXSs9Mik6KGY9KGFbclswXV18YVtyWzBdKzFdPDw4fGFbclswXSsyXTw8MTZ8YVtyWzBdKzNdPDwyNCk+Pj4wLHJbMF0rPTQpKSx0PVtsMCh0KV0sZj09MCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgb2Zmc2V0IDAiKTtpZihmPnRbMF0ubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBvZmZzZXQgYmV5b25kIGxlbmd0aCIpO2lmKG8+PWYpZm9yKHQucHVzaCh0WzBdLnNsaWNlKC1mKSksby09ZjtvPj10W3QubGVuZ3RoLTFdLmxlbmd0aDspdC5wdXNoKHRbdC5sZW5ndGgtMV0pLG8tPXRbdC5sZW5ndGgtMV0ubGVuZ3RoO3QucHVzaCh0WzBdLnNsaWNlKC1mLC1mK28pKX19dmFyIGw9bDAodCk7aWYobC5sZW5ndGghPW4pdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIGxlbmd0aDogIi5jb25jYXQobC5sZW5ndGgsIiAhPSAiKS5jb25jYXQobikpO3JldHVybiBsfWZ1bmN0aW9uIE14KGUpe2Zvcih2YXIgYT1bXSxyPTA7cjxlLmxlbmd0aDspe3ZhciBuPWVbcisrXSx0PWVbcl18ZVtyKzFdPDw4fGVbcisyXTw8MTY7cis9MyxhLnB1c2goTHgobixlLnNsaWNlKHIscit0KSkpLHIrPXR9aWYociE9PWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiZGF0YSBpcyBub3QgYSB2YWxpZCBmcmFtZWQgc3RyZWFtISIpO3JldHVybiBsMChhKX1mdW5jdGlvbiBCeChlLGEscixuKXt2YXIgdD1mMChlKSxzPXQuZ2V0VWludDMyKDQsITApLGk9KG4+MT8xMjo4KStlaShzJihuPjE/MzQ3MDozOTgpKSo0LGM9LTEsZj0tMSxvPU5hTixsPW5ldyBEYXRlKDIwMDEsMCwxKTtzJjUxMiYmKGM9dC5nZXRVaW50MzIoaSwhMCksaSs9NCksaSs9ZWkocyYobj4xPzEyMjg4OjQwOTYpKSo0LHMmMTYmJihmPXQuZ2V0VWludDMyKGksITApLGkrPTQpLHMmMzImJihvPXQuZ2V0RmxvYXQ2NChpLCEwKSxpKz04KSxzJjY0JiYobC5zZXRUaW1lKGwuZ2V0VGltZSgpK3QuZ2V0RmxvYXQ2NChpLCEwKSoxZTMpLGkrPTgpO3ZhciBoO3N3aXRjaChlWzJdKXtjYXNlIDA6YnJlYWs7Y2FzZSAyOmg9e3Q6Im4iLHY6b307YnJlYWs7Y2FzZSAzOmg9e3Q6InMiLHY6YVtmXX07YnJlYWs7Y2FzZSA1Omg9e3Q6ImQiLHY6bH07YnJlYWs7Y2FzZSA2Omg9e3Q6ImIiLHY6bz4wfTticmVhaztjYXNlIDc6aD17dDoibiIsdjpvLzg2NDAwfTticmVhaztjYXNlIDg6aD17dDoiZSIsdjowfTticmVhaztjYXNlIDk6aWYoYz4tMSloPXt0OiJzIix2OnJbY119O2Vsc2UgaWYoZj4tMSloPXt0OiJzIix2OmFbZl19O2Vsc2UgaWYoIWlzTmFOKG8pKWg9e3Q6Im4iLHY6b307ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGNlbGwgdHlwZSAiLmNvbmNhdChlLnNsaWNlKDAsNCkpKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgY2VsbCB0eXBlICIuY29uY2F0KGUuc2xpY2UoMCw0KSkpfXJldHVybiBofWZ1bmN0aW9uIGJ4KGUsYSxyKXt2YXIgbj1mMChlKSx0PW4uZ2V0VWludDMyKDgsITApLHM9MTIsaT0tMSxjPS0xLGY9TmFOLG89TmFOLGw9bmV3IERhdGUoMjAwMSwwLDEpO3QmMSYmKGY9TngoZSxzKSxzKz0xNiksdCYyJiYobz1uLmdldEZsb2F0NjQocywhMCkscys9OCksdCY0JiYobC5zZXRUaW1lKGwuZ2V0VGltZSgpK24uZ2V0RmxvYXQ2NChzLCEwKSoxZTMpLHMrPTgpLHQmOCYmKGM9bi5nZXRVaW50MzIocywhMCkscys9NCksdCYxNiYmKGk9bi5nZXRVaW50MzIocywhMCkscys9NCk7dmFyIGg7c3dpdGNoKGVbMV0pe2Nhc2UgMDpicmVhaztjYXNlIDI6aD17dDoibiIsdjpmfTticmVhaztjYXNlIDM6aD17dDoicyIsdjphW2NdfTticmVhaztjYXNlIDU6aD17dDoiZCIsdjpsfTticmVhaztjYXNlIDY6aD17dDoiYiIsdjpvPjB9O2JyZWFrO2Nhc2UgNzpoPXt0OiJuIix2Om8vODY0MDB9O2JyZWFrO2Nhc2UgODpoPXt0OiJlIix2OjB9O2JyZWFrO2Nhc2UgOTppZihpPi0xKWg9e3Q6InMiLHY6cltpXX07ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGNlbGwgdHlwZSAiLmNvbmNhdChlWzFdLCIgOiAiKS5jb25jYXQodCYzMSwiIDogIikuY29uY2F0KGUuc2xpY2UoMCw0KSkpO2JyZWFrO2Nhc2UgMTA6aD17dDoibiIsdjpmfTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgY2VsbCB0eXBlICIuY29uY2F0KGVbMV0sIiA6ICIpLmNvbmNhdCh0JjMxLCIgOiAiKS5jb25jYXQoZS5zbGljZSgwLDQpKSl9cmV0dXJuIGh9ZnVuY3Rpb24gVXgoZSxhLHIpe3N3aXRjaChlWzBdKXtjYXNlIDA6Y2FzZSAxOmNhc2UgMjpjYXNlIDM6cmV0dXJuIEJ4KGUsYSxyLGVbMF0pO2Nhc2UgNTpyZXR1cm4gYngoZSxhLHIpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBwYXlsb2FkIHZlcnNpb24gIi5jb25jYXQoZVswXSkpfX1mdW5jdGlvbiBLcihlKXt2YXIgYT1RZShlKTtyZXR1cm4gWWEoYVsxXVswXS5kYXRhKX1mdW5jdGlvbiByaShlLGEpe3ZhciByPVFlKGEuZGF0YSksbj1IZShyWzFdWzBdLmRhdGEpLHQ9clszXSxzPVtdO3JldHVybih0fHxbXSkuZm9yRWFjaChmdW5jdGlvbihpKXt2YXIgYz1RZShpLmRhdGEpLGY9SGUoY1sxXVswXS5kYXRhKT4+PjA7c3dpdGNoKG4pe2Nhc2UgMTpzW2ZdPW8wKGNbM11bMF0uZGF0YSk7YnJlYWs7Y2FzZSA4Ont2YXIgbz1lW0tyKGNbOV1bMF0uZGF0YSldWzBdLGw9UWUoby5kYXRhKSxoPWVbS3IobFsxXVswXS5kYXRhKV1bMF0seD1IZShoLm1ldGFbMV1bMF0uZGF0YSk7aWYoeCE9MjAwMSl0aHJvdyBuZXcgRXJyb3IoIjIwMDAgdW5leHBlY3RlZCByZWZlcmVuY2UgdG8gIi5jb25jYXQoeCkpO3ZhciBkPVFlKGguZGF0YSk7c1tmXT1kWzNdLm1hcChmdW5jdGlvbih2KXtyZXR1cm4gbzAodi5kYXRhKX0pLmpvaW4oIiIpfWJyZWFrfX0pLHN9ZnVuY3Rpb24gSHgoZSxhKXt2YXIgcixuLHQscyxpLGMsZixvLGwsaCx4LGQsdix1LGc9UWUoZSksRj1IZShnWzFdWzBdLmRhdGEpPj4+MCx5PUhlKGdbMl1bMF0uZGF0YSk+Pj4wLF89KChuPShyPWdbOF0pPT1udWxsP3ZvaWQgMDpyWzBdKT09bnVsbD92b2lkIDA6bi5kYXRhKSYmSGUoZ1s4XVswXS5kYXRhKT4wfHwhMSxOLGI7aWYoKHM9KHQ9Z1s3XSk9PW51bGw/dm9pZCAwOnRbMF0pIT1udWxsJiZzLmRhdGEmJmEhPTApTj0oYz0oaT1nWzddKT09bnVsbD92b2lkIDA6aVswXSk9PW51bGw/dm9pZCAwOmMuZGF0YSxiPShvPShmPWdbNl0pPT1udWxsP3ZvaWQgMDpmWzBdKT09bnVsbD92b2lkIDA6by5kYXRhO2Vsc2UgaWYoKGg9KGw9Z1s0XSk9PW51bGw/dm9pZCAwOmxbMF0pIT1udWxsJiZoLmRhdGEmJmEhPTEpTj0oZD0oeD1nWzRdKT09bnVsbD92b2lkIDA6eFswXSk9PW51bGw/dm9pZCAwOmQuZGF0YSxiPSh1PSh2PWdbM10pPT1udWxsP3ZvaWQgMDp2WzBdKT09bnVsbD92b2lkIDA6dS5kYXRhO2Vsc2UgdGhyb3ciTlVNQkVSUyBUaWxlIG1pc3NpbmcgIi5jb25jYXQoYSwiIGNlbGwgc3RvcmFnZSIpO2Zvcih2YXIgST1fPzQ6MSxBPWYwKE4pLFY9W10sRD0wO0Q8Ti5sZW5ndGgvMjsrK0Qpe3ZhciB6PUEuZ2V0VWludDE2KEQqMiwhMCk7ejw2NTUzNSYmVi5wdXNoKFtELHpdKX1pZihWLmxlbmd0aCE9eSl0aHJvdyJFeHBlY3RlZCAiLmNvbmNhdCh5LCIgY2VsbHMsIGZvdW5kICIpLmNvbmNhdChWLmxlbmd0aCk7dmFyIEc9W107Zm9yKEQ9MDtEPFYubGVuZ3RoLTE7KytEKUdbVltEXVswXV09Yi5zdWJhcnJheShWW0RdWzFdKkksVltEKzFdWzFdKkkpO3JldHVybiBWLmxlbmd0aD49MSYmKEdbVltWLmxlbmd0aC0xXVswXV09Yi5zdWJhcnJheShWW1YubGVuZ3RoLTFdWzFdKkkpKSx7UjpGLGNlbGxzOkd9fWZ1bmN0aW9uIFZ4KGUsYSl7dmFyIHIsbj1RZShhLmRhdGEpLHQ9KHI9bj09bnVsbD92b2lkIDA6bls3XSkhPW51bGwmJnJbMF0/SGUobls3XVswXS5kYXRhKT4+PjA+MD8xOjA6LTEscz1oMChuWzVdLGZ1bmN0aW9uKGkpe3JldHVybiBIeChpLHQpfSk7cmV0dXJue25yb3dzOkhlKG5bNF1bMF0uZGF0YSk+Pj4wLGRhdGE6cy5yZWR1Y2UoZnVuY3Rpb24oaSxjKXtyZXR1cm4gaVtjLlJdfHwoaVtjLlJdPVtdKSxjLmNlbGxzLmZvckVhY2goZnVuY3Rpb24oZixvKXtpZihpW2MuUl1bb10pdGhyb3cgbmV3IEVycm9yKCJEdXBsaWNhdGUgY2VsbCByPSIuY29uY2F0KGMuUiwiIGM9IikuY29uY2F0KG8pKTtpW2MuUl1bb109Zn0pLGl9LFtdKX19ZnVuY3Rpb24gV3goZSxhLHIpe3ZhciBuLHQ9UWUoYS5kYXRhKSxzPXtzOntyOjAsYzowfSxlOntyOjAsYzowfX07aWYocy5lLnI9KEhlKHRbNl1bMF0uZGF0YSk+Pj4wKS0xLHMuZS5yPDApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHJvdyB2YXJpbnQgIi5jb25jYXQodFs2XVswXS5kYXRhKSk7aWYocy5lLmM9KEhlKHRbN11bMF0uZGF0YSk+Pj4wKS0xLHMuZS5jPDApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNvbCB2YXJpbnQgIi5jb25jYXQodFs3XVswXS5kYXRhKSk7clsiIXJlZiJdPV9lKHMpO3ZhciBpPVFlKHRbNF1bMF0uZGF0YSksYz1yaShlLGVbS3IoaVs0XVswXS5kYXRhKV1bMF0pLGY9KG49aVsxN10pIT1udWxsJiZuWzBdP3JpKGUsZVtLcihpWzE3XVswXS5kYXRhKV1bMF0pOltdLG89UWUoaVszXVswXS5kYXRhKSxsPTA7b1sxXS5mb3JFYWNoKGZ1bmN0aW9uKGgpe3ZhciB4PVFlKGguZGF0YSksZD1lW0tyKHhbMl1bMF0uZGF0YSldWzBdLHY9SGUoZC5tZXRhWzFdWzBdLmRhdGEpO2lmKHYhPTYwMDIpdGhyb3cgbmV3IEVycm9yKCI2MDAxIHVuZXhwZWN0ZWQgcmVmZXJlbmNlIHRvICIuY29uY2F0KHYpKTt2YXIgdT1WeChlLGQpO3UuZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGcsRil7Zy5mb3JFYWNoKGZ1bmN0aW9uKHksXyl7dmFyIE49dWUoe3I6bCtGLGM6X30pLGI9VXgoeSxjLGYpO2ImJihyW05dPWIpfSl9KSxsKz11Lm5yb3dzfSl9ZnVuY3Rpb24gR3goZSxhKXt2YXIgcj1RZShhLmRhdGEpLG49eyIhcmVmIjoiQTEifSx0PWVbS3IoclsyXVswXS5kYXRhKV0scz1IZSh0WzBdLm1ldGFbMV1bMF0uZGF0YSk7aWYocyE9NjAwMSl0aHJvdyBuZXcgRXJyb3IoIjYwMDAgdW5leHBlY3RlZCByZWZlcmVuY2UgdG8gIi5jb25jYXQocykpO3JldHVybiBXeChlLHRbMF0sbiksbn1mdW5jdGlvbiBYeChlLGEpe3ZhciByLG49UWUoYS5kYXRhKSx0PXtuYW1lOihyPW5bMV0pIT1udWxsJiZyWzBdP28wKG5bMV1bMF0uZGF0YSk6IiIsc2hlZXRzOltdfSxzPWgwKG5bMl0sS3IpO3JldHVybiBzLmZvckVhY2goZnVuY3Rpb24oaSl7ZVtpXS5mb3JFYWNoKGZ1bmN0aW9uKGMpe3ZhciBmPUhlKGMubWV0YVsxXVswXS5kYXRhKTtmPT02ZTMmJnQuc2hlZXRzLnB1c2goR3goZSxjKSl9KX0pLHR9ZnVuY3Rpb24gJHgoZSxhKXt2YXIgcj1tMCgpLG49UWUoYS5kYXRhKSx0PWgwKG5bMV0sS3IpO2lmKHQuZm9yRWFjaChmdW5jdGlvbihzKXtlW3NdLmZvckVhY2goZnVuY3Rpb24oaSl7dmFyIGM9SGUoaS5tZXRhWzFdWzBdLmRhdGEpO2lmKGM9PTIpe3ZhciBmPVh4KGUsaSk7Zi5zaGVldHMuZm9yRWFjaChmdW5jdGlvbihvLGwpe18wKHIsbyxsPT0wP2YubmFtZTpmLm5hbWUrIl8iK2wsITApfSl9fSl9KSxyLlNoZWV0TmFtZXMubGVuZ3RoPT0wKXRocm93IG5ldyBFcnJvcigiRW1wdHkgTlVNQkVSUyBmaWxlIik7cmV0dXJuIHJ9ZnVuY3Rpb24gdTAoZSl7dmFyIGEscixuLHQscz17fSxpPVtdO2lmKGUuRnVsbFBhdGhzLmZvckVhY2goZnVuY3Rpb24oZil7aWYoZi5tYXRjaCgvXC5pd3B2Mi8pKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgcGFzc3dvcmQgcHJvdGVjdGlvbiIpfSksZS5GaWxlSW5kZXguZm9yRWFjaChmdW5jdGlvbihmKXtpZihmLm5hbWUubWF0Y2goL1wuaXdhJC8pKXt2YXIgbzt0cnl7bz1NeChmLmNvbnRlbnQpfWNhdGNoKGgpe3JldHVybiBjb25zb2xlLmxvZygiPz8gIitmLmNvbnRlbnQubGVuZ3RoKyIgIisoaC5tZXNzYWdlfHxoKSl9dmFyIGw7dHJ5e2w9UHgobyl9Y2F0Y2goaCl7cmV0dXJuIGNvbnNvbGUubG9nKCIjIyAiKyhoLm1lc3NhZ2V8fGgpKX1sLmZvckVhY2goZnVuY3Rpb24oaCl7c1toLmlkXT1oLm1lc3NhZ2VzLGkucHVzaChoLmlkKX0pfX0pLCFpLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkZpbGUgaGFzIG5vIG1lc3NhZ2VzIik7dmFyIGM9KCh0PShuPShyPShhPXM9PW51bGw/dm9pZCAwOnNbMV0pPT1udWxsP3ZvaWQgMDphWzBdKT09bnVsbD92b2lkIDA6ci5tZXRhKT09bnVsbD92b2lkIDA6blsxXSk9PW51bGw/dm9pZCAwOnRbMF0uZGF0YSkmJkhlKHNbMV1bMF0ubWV0YVsxXVswXS5kYXRhKT09MSYmc1sxXVswXTtpZihjfHxpLmZvckVhY2goZnVuY3Rpb24oZil7c1tmXS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3ZhciBsPUhlKG8ubWV0YVsxXVswXS5kYXRhKT4+PjA7aWYobD09MSlpZighYyljPW87ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIkRvY3VtZW50IGhhcyBtdWx0aXBsZSByb290cyIpfSl9KSwhYyl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIERvY3VtZW50IHJvb3QiKTtyZXR1cm4gJHgocyxjKX1mdW5jdGlvbiB6eChlKXtyZXR1cm4gZnVuY3Rpb24ocil7Zm9yKHZhciBuPTA7biE9ZS5sZW5ndGg7KytuKXt2YXIgdD1lW25dO3JbdFswXV09PT12b2lkIDAmJihyW3RbMF1dPXRbMV0pLHRbMl09PT0ibiImJihyW3RbMF1dPU51bWJlcihyW3RbMF1dKSl9fX1mdW5jdGlvbiB4MChlKXt6eChbWyJjZWxsTkYiLCExXSxbImNlbGxIVE1MIiwhMF0sWyJjZWxsRm9ybXVsYSIsITBdLFsiY2VsbFN0eWxlcyIsITFdLFsiY2VsbFRleHQiLCEwXSxbImNlbGxEYXRlcyIsITFdLFsic2hlZXRTdHVicyIsITFdLFsic2hlZXRSb3dzIiwwLCJuIl0sWyJib29rRGVwcyIsITFdLFsiYm9va1NoZWV0cyIsITFdLFsiYm9va1Byb3BzIiwhMV0sWyJib29rRmlsZXMiLCExXSxbImJvb2tWQkEiLCExXSxbInBhc3N3b3JkIiwiIl0sWyJXVEYiLCExXV0pKGUpfWZ1bmN0aW9uIEt4KGUpe3JldHVybiBtYS5XUy5pbmRleE9mKGUpPi0xPyJzaGVldCI6ZT09bWEuQ1M/ImNoYXJ0IjplPT1tYS5EUz8iZGlhbG9nIjplPT1tYS5NUz8ibWFjcm8iOmUmJmUubGVuZ3RoP2U6InNoZWV0In1mdW5jdGlvbiBZeChlLGEpe2lmKCFlKXJldHVybiAwO3RyeXtlPWEubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLmlkfHwobi5pZD1uLnN0clJlbElEKSxbbi5uYW1lLGVbIiFpZCJdW24uaWRdLlRhcmdldCxLeChlWyIhaWQiXVtuLmlkXS5UeXBlKV19KX1jYXRjaHtyZXR1cm4gbnVsbH1yZXR1cm4hZXx8ZS5sZW5ndGg9PT0wP251bGw6ZX1mdW5jdGlvbiBqeChlLGEscixuLHQscyxpLGMsZixvLGwsaCl7dHJ5e3Nbbl09UGEob3IoZSxyLCEwKSxhKTt2YXIgeD1MZShlLGEpLGQ7c3dpdGNoKGMpe2Nhc2Uic2hlZXQiOmQ9cngoeCxhLHQsZixzW25dLG8sbCxoKTticmVhaztjYXNlImNoYXJ0IjppZihkPWF4KHgsYSx0LGYsc1tuXSxvLGwsaCksIWR8fCFkWyIhZHJhd2VsIl0pYnJlYWs7dmFyIHY9U2EoZFsiIWRyYXdlbCJdLlRhcmdldCxhKSx1PUt0KHYpLGc9ZTEob3IoZSx2LCEwKSxQYShvcihlLHUsITApLHYpKSxGPVNhKGcsdikseT1LdChGKTtkPWJ1KG9yKGUsRiwhMCksRixmLFBhKG9yKGUseSwhMCksRiksbyxkKTticmVhaztjYXNlIm1hY3JvIjpkPXR4KHgsYSx0LGYsc1tuXSxvLGwsaCk7YnJlYWs7Y2FzZSJkaWFsb2ciOmQ9bngoeCxhLHQsZixzW25dLG8sbCxoKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHNoZWV0IHR5cGUgIitjKX1pW25dPWQ7dmFyIF89W107cyYmc1tuXSYmU3Ioc1tuXSkuZm9yRWFjaChmdW5jdGlvbihOKXt2YXIgYj0iIjtpZihzW25dW05dLlR5cGU9PW1hLkNNTlQpe2I9U2Eoc1tuXVtOXS5UYXJnZXQsYSk7dmFyIEk9ZngoTGUoZSxiLCEwKSxiLGYpO2lmKCFJfHwhSS5sZW5ndGgpcmV0dXJuO0VzKGQsSSwhMSl9c1tuXVtOXS5UeXBlPT1tYS5UQ01OVCYmKGI9U2Eoc1tuXVtOXS5UYXJnZXQsYSksXz1fLmNvbmNhdChhMShMZShlLGIsITApLGYpKSl9KSxfJiZfLmxlbmd0aCYmRXMoZCxfLCEwLGYucGVvcGxlfHxbXSl9Y2F0Y2goTil7aWYoZi5XVEYpdGhyb3cgTn19ZnVuY3Rpb24gcHIoZSl7cmV0dXJuIGUuY2hhckF0KDApPT0iLyI/ZS5zbGljZSgxKTplfWZ1bmN0aW9uIEp4KGUsYSl7aWYoSzAoKSxhPWF8fHt9LHgwKGEpLGRyKGUsIk1FVEEtSU5GL21hbmlmZXN0LnhtbCIpfHxkcihlLCJvYmplY3RkYXRhLnhtbCIpKXJldHVybiBxcyhlLGEpO2lmKGRyKGUsIkluZGV4L0RvY3VtZW50Lml3YSIpKXtpZih0eXBlb2YgVWludDhBcnJheT4idSIpdGhyb3cgbmV3IEVycm9yKCJOVU1CRVJTIGZpbGUgcGFyc2luZyByZXF1aXJlcyBVaW50OEFycmF5IHN1cHBvcnQiKTtpZih0eXBlb2YgdTA8InUiKXtpZihlLkZpbGVJbmRleClyZXR1cm4gdTAoZSk7dmFyIHI9bWUudXRpbHMuY2ZiX25ldygpO3JldHVybiBybihlKS5mb3JFYWNoKGZ1bmN0aW9uKGZlKXtqaShyLGZlLFlpKGUsZmUpKX0pLHUwKHIpfXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgTlVNQkVSUyBmaWxlIil9aWYoIWRyKGUsIltDb250ZW50X1R5cGVzXS54bWwiKSl0aHJvdyBkcihlLCJpbmRleC54bWwuZ3oiKT9uZXcgRXJyb3IoIlVuc3VwcG9ydGVkIE5VTUJFUlMgMDggZmlsZSIpOmRyKGUsImluZGV4LnhtbCIpP25ldyBFcnJvcigiVW5zdXBwb3J0ZWQgTlVNQkVSUyAwOSBmaWxlIik6bmV3IEVycm9yKCJVbnN1cHBvcnRlZCBaSVAgZmlsZSIpO3ZhciBuPXJuKGUpLHQ9WGMob3IoZSwiW0NvbnRlbnRfVHlwZXNdLnhtbCIpKSxzPSExLGksYztpZih0Lndvcmtib29rcy5sZW5ndGg9PT0wJiYoYz0ieGwvd29ya2Jvb2sueG1sIixMZShlLGMsITApJiZ0Lndvcmtib29rcy5wdXNoKGMpKSx0Lndvcmtib29rcy5sZW5ndGg9PT0wKXtpZihjPSJ4bC93b3JrYm9vay5iaW4iLCFMZShlLGMsITApKXRocm93IG5ldyBFcnJvcigiQ291bGQgbm90IGZpbmQgd29ya2Jvb2siKTt0Lndvcmtib29rcy5wdXNoKGMpLHM9ITB9dC53b3JrYm9va3NbMF0uc2xpY2UoLTMpPT0iYmluIiYmKHM9ITApO3ZhciBmPXt9LG89e307aWYoIWEuYm9va1NoZWV0cyYmIWEuYm9va1Byb3BzKXtpZigkYT1bXSx0LnNzdCl0cnl7JGE9Y3goTGUoZSxwcih0LnNzdCkpLHQuc3N0LGEpfWNhdGNoKGZlKXtpZihhLldURil0aHJvdyBmZX1hLmNlbGxTdHlsZXMmJnQudGhlbWVzLmxlbmd0aCYmKGY9aXgob3IoZSx0LnRoZW1lc1swXS5yZXBsYWNlKC9eXC8vLCIiKSwhMCl8fCIiLHQudGhlbWVzWzBdLGEpKSx0LnN0eWxlJiYobz1zeChMZShlLHByKHQuc3R5bGUpKSx0LnN0eWxlLGYsYSkpfXQubGlua3MubWFwKGZ1bmN0aW9uKGZlKXt0cnl7dmFyIHJlPVBhKG9yKGUsS3QocHIoZmUpKSksZmUpO3JldHVybiBseChMZShlLHByKGZlKSkscmUsZmUsYSl9Y2F0Y2h7fX0pO3ZhciBsPWV4KExlKGUscHIodC53b3JrYm9va3NbMF0pKSx0Lndvcmtib29rc1swXSxhKSxoPXt9LHg9IiI7dC5jb3JlcHJvcHMubGVuZ3RoJiYoeD1MZShlLHByKHQuY29yZXByb3BzWzBdKSwhMCkseCYmKGg9Vm4oeCkpLHQuZXh0cHJvcHMubGVuZ3RoIT09MCYmKHg9TGUoZSxwcih0LmV4dHByb3BzWzBdKSwhMCkseCYmamMoeCxoLGEpKSk7dmFyIGQ9e307KCFhLmJvb2tTaGVldHN8fGEuYm9va1Byb3BzKSYmdC5jdXN0cHJvcHMubGVuZ3RoIT09MCYmKHg9b3IoZSxwcih0LmN1c3Rwcm9wc1swXSksITApLHgmJihkPVpjKHgsYSkpKTt2YXIgdj17fTtpZigoYS5ib29rU2hlZXRzfHxhLmJvb2tQcm9wcykmJihsLlNoZWV0cz9pPWwuU2hlZXRzLm1hcChmdW5jdGlvbihyZSl7cmV0dXJuIHJlLm5hbWV9KTpoLldvcmtzaGVldHMmJmguU2hlZXROYW1lcy5sZW5ndGg+MCYmKGk9aC5TaGVldE5hbWVzKSxhLmJvb2tQcm9wcyYmKHYuUHJvcHM9aCx2LkN1c3Rwcm9wcz1kKSxhLmJvb2tTaGVldHMmJnR5cGVvZiBpPCJ1IiYmKHYuU2hlZXROYW1lcz1pKSxhLmJvb2tTaGVldHM/di5TaGVldE5hbWVzOmEuYm9va1Byb3BzKSlyZXR1cm4gdjtpPXt9O3ZhciB1PXt9O2EuYm9va0RlcHMmJnQuY2FsY2NoYWluJiYodT1veChMZShlLHByKHQuY2FsY2NoYWluKSksdC5jYWxjY2hhaW4pKTt2YXIgZz0wLEY9e30seSxfO3t2YXIgTj1sLlNoZWV0cztoLldvcmtzaGVldHM9Ti5sZW5ndGgsaC5TaGVldE5hbWVzPVtdO2Zvcih2YXIgYj0wO2IhPU4ubGVuZ3RoOysrYiloLlNoZWV0TmFtZXNbYl09TltiXS5uYW1lfXZhciBJPXM/ImJpbiI6InhtbCIsQT10Lndvcmtib29rc1swXS5sYXN0SW5kZXhPZigiLyIpLFY9KHQud29ya2Jvb2tzWzBdLnNsaWNlKDAsQSsxKSsiX3JlbHMvIit0Lndvcmtib29rc1swXS5zbGljZShBKzEpKyIucmVscyIpLnJlcGxhY2UoL15cLy8sIiIpO2RyKGUsVil8fChWPSJ4bC9fcmVscy93b3JrYm9vay4iK0krIi5yZWxzIik7dmFyIEQ9UGEob3IoZSxWLCEwKSxWLnJlcGxhY2UoL19yZWxzLiovLCJzNXMiKSk7KHQubWV0YWRhdGF8fFtdKS5sZW5ndGg+PTEmJihhLnhsbWV0YT1oeChMZShlLHByKHQubWV0YWRhdGFbMF0pKSx0Lm1ldGFkYXRhWzBdLGEpKSwodC5wZW9wbGV8fFtdKS5sZW5ndGg+PTEmJihhLnBlb3BsZT10MShMZShlLHByKHQucGVvcGxlWzBdKSksYSkpLEQmJihEPVl4KEQsbC5TaGVldHMpKTt2YXIgej1MZShlLCJ4bC93b3Jrc2hlZXRzL3NoZWV0LnhtbCIsITApPzE6MDtlOmZvcihnPTA7ZyE9aC5Xb3Jrc2hlZXRzOysrZyl7dmFyIEc9InNoZWV0IjtpZihEJiZEW2ddPyh5PSJ4bC8iK0RbZ11bMV0ucmVwbGFjZSgvW1wvXT94bFwvLywiIiksZHIoZSx5KXx8KHk9RFtnXVsxXSksZHIoZSx5KXx8KHk9Vi5yZXBsYWNlKC9fcmVsc1wvLiokLywiIikrRFtnXVsxXSksRz1EW2ddWzJdKTooeT0ieGwvd29ya3NoZWV0cy9zaGVldCIrKGcrMS16KSsiLiIrSSx5PXkucmVwbGFjZSgvc2hlZXQwXC4vLCJzaGVldC4iKSksXz15LnJlcGxhY2UoL14oLiopKFwvKShbXlwvXSopJC8sIiQxL19yZWxzLyQzLnJlbHMiKSxhJiZhLnNoZWV0cyE9bnVsbClzd2l0Y2godHlwZW9mIGEuc2hlZXRzKXtjYXNlIm51bWJlciI6aWYoZyE9YS5zaGVldHMpY29udGludWUgZTticmVhaztjYXNlInN0cmluZyI6aWYoaC5TaGVldE5hbWVzW2ddLnRvTG93ZXJDYXNlKCkhPWEuc2hlZXRzLnRvTG93ZXJDYXNlKCkpY29udGludWUgZTticmVhaztkZWZhdWx0OmlmKEFycmF5LmlzQXJyYXkmJkFycmF5LmlzQXJyYXkoYS5zaGVldHMpKXtmb3IodmFyIFA9ITEsSj0wO0ohPWEuc2hlZXRzLmxlbmd0aDsrK0opdHlwZW9mIGEuc2hlZXRzW0pdPT0ibnVtYmVyIiYmYS5zaGVldHNbSl09PWcmJihQPTEpLHR5cGVvZiBhLnNoZWV0c1tKXT09InN0cmluZyImJmEuc2hlZXRzW0pdLnRvTG93ZXJDYXNlKCk9PWguU2hlZXROYW1lc1tnXS50b0xvd2VyQ2FzZSgpJiYoUD0xKTtpZighUCljb250aW51ZSBlfX1qeChlLHksXyxoLlNoZWV0TmFtZXNbZ10sZyxGLGksRyxhLGwsZixvKX1yZXR1cm4gdj17RGlyZWN0b3J5OnQsV29ya2Jvb2s6bCxQcm9wczpoLEN1c3Rwcm9wczpkLERlcHM6dSxTaGVldHM6aSxTaGVldE5hbWVzOmguU2hlZXROYW1lcyxTdHJpbmdzOiRhLFN0eWxlczpvLFRoZW1lczpmLFNTRjpYZShkZSl9LGEmJmEuYm9va0ZpbGVzJiYoZS5maWxlcz8odi5rZXlzPW4sdi5maWxlcz1lLmZpbGVzKToodi5rZXlzPVtdLHYuZmlsZXM9e30sZS5GdWxsUGF0aHMuZm9yRWFjaChmdW5jdGlvbihmZSxyZSl7ZmU9ZmUucmVwbGFjZSgvXlJvb3QgRW50cnlbXC9dLywiIiksdi5rZXlzLnB1c2goZmUpLHYuZmlsZXNbZmVdPWUuRmlsZUluZGV4W3JlXX0pKSksYSYmYS5ib29rVkJBJiYodC52YmEubGVuZ3RoPjA/di52YmFyYXc9TGUoZSxwcih0LnZiYVswXSksITApOnQuZGVmYXVsdHMmJnQuZGVmYXVsdHMuYmluPT09YzEmJih2LnZiYXJhdz1MZShlLCJ4bC92YmFQcm9qZWN0LmJpbiIsITApKSksdn1mdW5jdGlvbiBaeChlLGEpe3ZhciByPWF8fHt9LG49Ildvcmtib29rIix0PW1lLmZpbmQoZSxuKTt0cnl7aWYobj0iLyFEYXRhU3BhY2VzL1ZlcnNpb24iLHQ9bWUuZmluZChlLG4pLCF0fHwhdC5jb250ZW50KXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUgbWlzc2luZyAiK24pO2lmKEdvKHQuY29udGVudCksbj0iLyFEYXRhU3BhY2VzL0RhdGFTcGFjZU1hcCIsdD1tZS5maW5kKGUsbiksIXR8fCF0LmNvbnRlbnQpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBFbmNyeXB0ZWQgZmlsZSBtaXNzaW5nICIrbik7dmFyIHM9JG8odC5jb250ZW50KTtpZihzLmxlbmd0aCE9PTF8fHNbMF0uY29tcHMubGVuZ3RoIT09MXx8c1swXS5jb21wc1swXS50IT09MHx8c1swXS5uYW1lIT09IlN0cm9uZ0VuY3J5cHRpb25EYXRhU3BhY2UifHxzWzBdLmNvbXBzWzBdLnYhPT0iRW5jcnlwdGVkUGFja2FnZSIpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBFbmNyeXB0ZWQgZmlsZSBiYWQgIituKTtpZihuPSIvIURhdGFTcGFjZXMvRGF0YVNwYWNlSW5mby9TdHJvbmdFbmNyeXB0aW9uRGF0YVNwYWNlIix0PW1lLmZpbmQoZSxuKSwhdHx8IXQuY29udGVudCl0aHJvdyBuZXcgRXJyb3IoIkVDTUEtMzc2IEVuY3J5cHRlZCBmaWxlIG1pc3NpbmcgIituKTt2YXIgaT16byh0LmNvbnRlbnQpO2lmKGkubGVuZ3RoIT0xfHxpWzBdIT0iU3Ryb25nRW5jcnlwdGlvblRyYW5zZm9ybSIpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBFbmNyeXB0ZWQgZmlsZSBiYWQgIituKTtpZihuPSIvIURhdGFTcGFjZXMvVHJhbnNmb3JtSW5mby9TdHJvbmdFbmNyeXB0aW9uVHJhbnNmb3JtLyFQcmltYXJ5Iix0PW1lLmZpbmQoZSxuKSwhdHx8IXQuY29udGVudCl0aHJvdyBuZXcgRXJyb3IoIkVDTUEtMzc2IEVuY3J5cHRlZCBmaWxlIG1pc3NpbmcgIituKTtZbyh0LmNvbnRlbnQpfWNhdGNoe31pZihuPSIvRW5jcnlwdGlvbkluZm8iLHQ9bWUuZmluZChlLG4pLCF0fHwhdC5jb250ZW50KXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUgbWlzc2luZyAiK24pO3ZhciBjPWpvKHQuY29udGVudCk7aWYobj0iL0VuY3J5cHRlZFBhY2thZ2UiLHQ9bWUuZmluZChlLG4pLCF0fHwhdC5jb250ZW50KXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUgbWlzc2luZyAiK24pO2lmKGNbMF09PTQmJnR5cGVvZiBkZWNyeXB0X2FnaWxlPCJ1IilyZXR1cm4gZGVjcnlwdF9hZ2lsZShjWzFdLHQuY29udGVudCxyLnBhc3N3b3JkfHwiIixyKTtpZihjWzBdPT0yJiZ0eXBlb2YgZGVjcnlwdF9zdGQ3NjwidSIpcmV0dXJuIGRlY3J5cHRfc3RkNzYoY1sxXSx0LmNvbnRlbnQsci5wYXNzd29yZHx8IiIscik7dGhyb3cgbmV3IEVycm9yKCJGaWxlIGlzIHBhc3N3b3JkLXByb3RlY3RlZCIpfWZ1bmN0aW9uIGQwKGUsYSl7dmFyIHI9IiI7c3dpdGNoKChhfHx7fSkudHlwZXx8ImJhc2U2NCIpe2Nhc2UiYnVmZmVyIjpyZXR1cm5bZVswXSxlWzFdLGVbMl0sZVszXSxlWzRdLGVbNV0sZVs2XSxlWzddXTtjYXNlImJhc2U2NCI6cj1mcihlLnNsaWNlKDAsMTIpKTticmVhaztjYXNlImJpbmFyeSI6cj1lO2JyZWFrO2Nhc2UiYXJyYXkiOnJldHVybltlWzBdLGVbMV0sZVsyXSxlWzNdLGVbNF0sZVs1XSxlWzZdLGVbN11dO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiKyhhJiZhLnR5cGV8fCJ1bmRlZmluZWQiKSl9cmV0dXJuW3IuY2hhckNvZGVBdCgwKSxyLmNoYXJDb2RlQXQoMSksci5jaGFyQ29kZUF0KDIpLHIuY2hhckNvZGVBdCgzKSxyLmNoYXJDb2RlQXQoNCksci5jaGFyQ29kZUF0KDUpLHIuY2hhckNvZGVBdCg2KSxyLmNoYXJDb2RlQXQoNyldfWZ1bmN0aW9uIHF4KGUsYSl7cmV0dXJuIG1lLmZpbmQoZSwiRW5jcnlwdGVkUGFja2FnZSIpP1p4KGUsYSk6JHMoZSxhKX1mdW5jdGlvbiBReChlLGEpe3ZhciByLG49ZSx0PWF8fHt9O3JldHVybiB0LnR5cGV8fCh0LnR5cGU9Z2UmJkJ1ZmZlci5pc0J1ZmZlcihlKT8iYnVmZmVyIjoiYmFzZTY0Iikscj1hbihuLHQpLEp4KHIsdCl9ZnVuY3Rpb24gYWkoZSxhKXt2YXIgcj0wO2U6Zm9yKDtyPGUubGVuZ3RoOylzd2l0Y2goZS5jaGFyQ29kZUF0KHIpKXtjYXNlIDEwOmNhc2UgMTM6Y2FzZSAzMjorK3I7YnJlYWs7Y2FzZSA2MDpyZXR1cm4gaTAoZS5zbGljZShyKSxhKTtkZWZhdWx0OmJyZWFrIGV9cmV0dXJuIGJhLnRvX3dvcmtib29rKGUsYSl9ZnVuY3Rpb24gZWQoZSxhKXt2YXIgcj0iIixuPWQwKGUsYSk7c3dpdGNoKGEudHlwZSl7Y2FzZSJiYXNlNjQiOnI9ZnIoZSk7YnJlYWs7Y2FzZSJiaW5hcnkiOnI9ZTticmVhaztjYXNlImJ1ZmZlciI6cj1lLnRvU3RyaW5nKCJiaW5hcnkiKTticmVhaztjYXNlImFycmF5IjpyPXJhKGUpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiK2EudHlwZSl9cmV0dXJuIG5bMF09PTIzOSYmblsxXT09MTg3JiZuWzJdPT0xOTEmJihyPUFlKHIpKSxhLnR5cGU9ImJpbmFyeSIsYWkocixhKX1mdW5jdGlvbiByZChlLGEpe3ZhciByPWU7cmV0dXJuIGEudHlwZT09ImJhc2U2NCImJihyPWZyKHIpKSxyPXdhLnV0aWxzLmRlY29kZSgxMjAwLHIuc2xpY2UoMiksInN0ciIpLGEudHlwZT0iYmluYXJ5IixhaShyLGEpfWZ1bmN0aW9uIGFkKGUpe3JldHVybiBlLm1hdGNoKC9bXlx4MDAtXHg3Rl0vKT9DYShlKTplfWZ1bmN0aW9uIHYwKGUsYSxyLG4pe3JldHVybiBuPyhyLnR5cGU9InN0cmluZyIsYmEudG9fd29ya2Jvb2soZSxyKSk6YmEudG9fd29ya2Jvb2soYSxyKX1mdW5jdGlvbiBwMChlLGEpe0EwKCk7dmFyIHI9YXx8e307aWYodHlwZW9mIEFycmF5QnVmZmVyPCJ1IiYmZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXJldHVybiBwMChuZXcgVWludDhBcnJheShlKSwocj1YZShyKSxyLnR5cGU9ImFycmF5IixyKSk7dHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZlIGluc3RhbmNlb2YgVWludDhBcnJheSYmIXIudHlwZSYmKHIudHlwZT10eXBlb2YgRGVubzwidSI/ImJ1ZmZlciI6ImFycmF5Iik7dmFyIG49ZSx0PVswLDAsMCwwXSxzPSExO2lmKHIuY2VsbFN0eWxlcyYmKHIuY2VsbE5GPSEwLHIuc2hlZXRTdHVicz0hMCksVGE9e30sci5kYXRlTkYmJihUYS5kYXRlTkY9ci5kYXRlTkYpLHIudHlwZXx8KHIudHlwZT1nZSYmQnVmZmVyLmlzQnVmZmVyKGUpPyJidWZmZXIiOiJiYXNlNjQiKSxyLnR5cGU9PSJmaWxlIiYmKHIudHlwZT1nZT8iYnVmZmVyIjoiYmluYXJ5IixuPVZpKGUpLHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmIWdlJiYoci50eXBlPSJhcnJheSIpKSxyLnR5cGU9PSJzdHJpbmciJiYocz0hMCxyLnR5cGU9ImJpbmFyeSIsci5jb2RlcGFnZT02NTAwMSxuPWFkKGUpKSxyLnR5cGU9PSJhcnJheSImJnR5cGVvZiBVaW50OEFycmF5PCJ1IiYmZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkmJnR5cGVvZiBBcnJheUJ1ZmZlcjwidSIpe3ZhciBpPW5ldyBBcnJheUJ1ZmZlcigzKSxjPW5ldyBVaW50OEFycmF5KGkpO2lmKGMuZm9vPSJiYXIiLCFjLmZvbylyZXR1cm4gcj1YZShyKSxyLnR5cGU9ImFycmF5IixwMCh5dChuKSxyKX1zd2l0Y2goKHQ9ZDAobixyKSlbMF0pe2Nhc2UgMjA4OmlmKHRbMV09PT0yMDcmJnRbMl09PT0xNyYmdFszXT09PTIyNCYmdFs0XT09PTE2MSYmdFs1XT09PTE3NyYmdFs2XT09PTI2JiZ0WzddPT09MjI1KXJldHVybiBxeChtZS5yZWFkKG4scikscik7YnJlYWs7Y2FzZSA5OmlmKHRbMV08PTgpcmV0dXJuICRzKG4scik7YnJlYWs7Y2FzZSA2MDpyZXR1cm4gaTAobixyKTtjYXNlIDczOmlmKHRbMV09PT03MyYmdFsyXT09PTQyJiZ0WzNdPT09MCl0aHJvdyBuZXcgRXJyb3IoIlRJRkYgSW1hZ2UgRmlsZSBpcyBub3QgYSBzcHJlYWRzaGVldCIpO2lmKHRbMV09PT02OClyZXR1cm4gT28obixyKTticmVhaztjYXNlIDg0OmlmKHRbMV09PT02NSYmdFsyXT09PTY2JiZ0WzNdPT09NzYpcmV0dXJuIHlvLnRvX3dvcmtib29rKG4scik7YnJlYWs7Y2FzZSA4MDpyZXR1cm4gdFsxXT09PTc1JiZ0WzJdPDkmJnRbM108OT9ReChuLHIpOnYwKGUsbixyLHMpO2Nhc2UgMjM5OnJldHVybiB0WzNdPT09NjA/aTAobixyKTp2MChlLG4scixzKTtjYXNlIDI1NTppZih0WzFdPT09MjU0KXJldHVybiByZChuLHIpO2lmKHRbMV09PT0wJiZ0WzJdPT09MiYmdFszXT09PTApcmV0dXJuIFVhLnRvX3dvcmtib29rKG4scik7YnJlYWs7Y2FzZSAwOmlmKHRbMV09PT0wJiYodFsyXT49MiYmdFszXT09PTB8fHRbMl09PT0wJiYodFszXT09PTh8fHRbM109PT05KSkpcmV0dXJuIFVhLnRvX3dvcmtib29rKG4scik7YnJlYWs7Y2FzZSAzOmNhc2UgMTMxOmNhc2UgMTM5OmNhc2UgMTQwOnJldHVybiBocy50b193b3JrYm9vayhuLHIpO2Nhc2UgMTIzOmlmKHRbMV09PT05MiYmdFsyXT09PTExNCYmdFszXT09PTExNilyZXR1cm4gY2wudG9fd29ya2Jvb2sobixyKTticmVhaztjYXNlIDEwOmNhc2UgMTM6Y2FzZSAzMjpyZXR1cm4gZWQobixyKTtjYXNlIDEzNzppZih0WzFdPT09ODAmJnRbMl09PT03OCYmdFszXT09PTcxKXRocm93IG5ldyBFcnJvcigiUE5HIEltYWdlIEZpbGUgaXMgbm90IGEgc3ByZWFkc2hlZXQiKTticmVha31yZXR1cm4gU28uaW5kZXhPZih0WzBdKT4tMSYmdFsyXTw9MTImJnRbM108PTMxP2hzLnRvX3dvcmtib29rKG4scik6djAoZSxuLHIscyl9ZnVuY3Rpb24gdGQoZSxhLHIsbix0LHMsaSxjKXt2YXIgZj16ZShyKSxvPWMuZGVmdmFsLGw9Yy5yYXd8fCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYywicmF3IiksaD0hMCx4PXQ9PT0xP1tdOnt9O2lmKHQhPT0xKWlmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSl0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHgsIl9fcm93TnVtX18iLHt2YWx1ZTpyLGVudW1lcmFibGU6ITF9KX1jYXRjaHt4Ll9fcm93TnVtX189cn1lbHNlIHguX19yb3dOdW1fXz1yO2lmKCFpfHxlW3JdKWZvcih2YXIgZD1hLnMuYztkPD1hLmUuYzsrK2Qpe3ZhciB2PWk/ZVtyXVtkXTplW25bZF0rZl07aWYodj09PXZvaWQgMHx8di50PT09dm9pZCAwKXtpZihvPT09dm9pZCAwKWNvbnRpbnVlO3NbZF0hPW51bGwmJih4W3NbZF1dPW8pO2NvbnRpbnVlfXZhciB1PXYudjtzd2l0Y2godi50KXtjYXNlInoiOmlmKHU9PW51bGwpYnJlYWs7Y29udGludWU7Y2FzZSJlIjp1PXU9PTA/bnVsbDp2b2lkIDA7YnJlYWs7Y2FzZSJzIjpjYXNlImQiOmNhc2UiYiI6Y2FzZSJuIjpicmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkIHR5cGUgIit2LnQpfWlmKHNbZF0hPW51bGwpe2lmKHU9PW51bGwpaWYodi50PT0iZSImJnU9PT1udWxsKXhbc1tkXV09bnVsbDtlbHNlIGlmKG8hPT12b2lkIDApeFtzW2RdXT1vO2Vsc2UgaWYobCYmdT09PW51bGwpeFtzW2RdXT1udWxsO2Vsc2UgY29udGludWU7ZWxzZSB4W3NbZF1dPWwmJih2LnQhPT0ibiJ8fHYudD09PSJuIiYmYy5yYXdOdW1iZXJzIT09ITEpP3U6THIodix1LGMpO3UhPW51bGwmJihoPSExKX19cmV0dXJue3Jvdzp4LGlzZW1wdHk6aH19ZnVuY3Rpb24gZzAoZSxhKXtpZihlPT1udWxsfHxlWyIhcmVmIl09PW51bGwpcmV0dXJuW107dmFyIHI9e3Q6Im4iLHY6MH0sbj0wLHQ9MSxzPVtdLGk9MCxjPSIiLGY9e3M6e3I6MCxjOjB9LGU6e3I6MCxjOjB9fSxvPWF8fHt9LGw9by5yYW5nZSE9bnVsbD9vLnJhbmdlOmVbIiFyZWYiXTtzd2l0Y2goby5oZWFkZXI9PT0xP249MTpvLmhlYWRlcj09PSJBIj9uPTI6QXJyYXkuaXNBcnJheShvLmhlYWRlcik/bj0zOm8uaGVhZGVyPT1udWxsJiYobj0wKSx0eXBlb2YgbCl7Y2FzZSJzdHJpbmciOmY9T2UobCk7YnJlYWs7Y2FzZSJudW1iZXIiOmY9T2UoZVsiIXJlZiJdKSxmLnMucj1sO2JyZWFrO2RlZmF1bHQ6Zj1sfW4+MCYmKHQ9MCk7dmFyIGg9emUoZi5zLnIpLHg9W10sZD1bXSx2PTAsdT0wLGc9QXJyYXkuaXNBcnJheShlKSxGPWYucy5yLHk9MCxfPXt9O2cmJiFlW0ZdJiYoZVtGXT1bXSk7dmFyIE49by5za2lwSGlkZGVuJiZlWyIhY29scyJdfHxbXSxiPW8uc2tpcEhpZGRlbiYmZVsiIXJvd3MiXXx8W107Zm9yKHk9Zi5zLmM7eTw9Zi5lLmM7Kyt5KWlmKCEoTlt5XXx8e30pLmhpZGRlbilzd2l0Y2goeFt5XT1VZSh5KSxyPWc/ZVtGXVt5XTplW3hbeV0raF0sbil7Y2FzZSAxOnNbeV09eS1mLnMuYzticmVhaztjYXNlIDI6c1t5XT14W3ldO2JyZWFrO2Nhc2UgMzpzW3ldPW8uaGVhZGVyW3ktZi5zLmNdO2JyZWFrO2RlZmF1bHQ6aWYocj09bnVsbCYmKHI9e3c6Il9fRU1QVFkiLHQ6InMifSksYz1pPUxyKHIsbnVsbCxvKSx1PV9baV18fDAsIXUpX1tpXT0xO2Vsc2V7ZG8gYz1pKyJfIit1Kys7d2hpbGUoX1tjXSk7X1tpXT11LF9bY109MX1zW3ldPWN9Zm9yKEY9Zi5zLnIrdDtGPD1mLmUucjsrK0YpaWYoIShiW0ZdfHx7fSkuaGlkZGVuKXt2YXIgST10ZChlLGYsRix4LG4scyxnLG8pOyhJLmlzZW1wdHk9PT0hMXx8KG49PT0xP28uYmxhbmtyb3dzIT09ITE6by5ibGFua3Jvd3MpKSYmKGRbdisrXT1JLnJvdyl9cmV0dXJuIGQubGVuZ3RoPXYsZH12YXIgdGk9LyIvZztmdW5jdGlvbiBuZChlLGEscixuLHQscyxpLGMpe2Zvcih2YXIgZj0hMCxvPVtdLGw9IiIsaD16ZShyKSx4PWEucy5jO3g8PWEuZS5jOysreClpZihuW3hdKXt2YXIgZD1jLmRlbnNlPyhlW3JdfHxbXSlbeF06ZVtuW3hdK2hdO2lmKGQ9PW51bGwpbD0iIjtlbHNlIGlmKGQudiE9bnVsbCl7Zj0hMSxsPSIiKyhjLnJhd051bWJlcnMmJmQudD09Im4iP2QudjpMcihkLG51bGwsYykpO2Zvcih2YXIgdj0wLHU9MDt2IT09bC5sZW5ndGg7Kyt2KWlmKCh1PWwuY2hhckNvZGVBdCh2KSk9PT10fHx1PT09c3x8dT09PTM0fHxjLmZvcmNlUXVvdGVzKXtsPSciJytsLnJlcGxhY2UodGksJyIiJykrJyInO2JyZWFrfWw9PSJJRCImJihsPSciSUQiJyl9ZWxzZSBkLmYhPW51bGwmJiFkLkY/KGY9ITEsbD0iPSIrZC5mLGwuaW5kZXhPZigiLCIpPj0wJiYobD0nIicrbC5yZXBsYWNlKHRpLCciIicpKyciJykpOmw9IiI7by5wdXNoKGwpfXJldHVybiBjLmJsYW5rcm93cz09PSExJiZmP251bGw6by5qb2luKGkpfWZ1bmN0aW9uIG5pKGUsYSl7dmFyIHI9W10sbj1hPz97fTtpZihlPT1udWxsfHxlWyIhcmVmIl09PW51bGwpcmV0dXJuIiI7dmFyIHQ9T2UoZVsiIXJlZiJdKSxzPW4uRlMhPT12b2lkIDA/bi5GUzoiLCIsaT1zLmNoYXJDb2RlQXQoMCksYz1uLlJTIT09dm9pZCAwP24uUlM6YApgLGY9Yy5jaGFyQ29kZUF0KDApLG89bmV3IFJlZ0V4cCgocz09InwiPyJcXHwiOnMpKyIrJCIpLGw9IiIsaD1bXTtuLmRlbnNlPUFycmF5LmlzQXJyYXkoZSk7Zm9yKHZhciB4PW4uc2tpcEhpZGRlbiYmZVsiIWNvbHMiXXx8W10sZD1uLnNraXBIaWRkZW4mJmVbIiFyb3dzIl18fFtdLHY9dC5zLmM7djw9dC5lLmM7Kyt2KSh4W3ZdfHx7fSkuaGlkZGVufHwoaFt2XT1VZSh2KSk7Zm9yKHZhciB1PTAsZz10LnMucjtnPD10LmUucjsrK2cpKGRbZ118fHt9KS5oaWRkZW58fChsPW5kKGUsdCxnLGgsaSxmLHMsbiksbCE9bnVsbCYmKG4uc3RyaXAmJihsPWwucmVwbGFjZShvLCIiKSksKGx8fG4uYmxhbmtyb3dzIT09ITEpJiZyLnB1c2goKHUrKz9jOiIiKStsKSkpO3JldHVybiBkZWxldGUgbi5kZW5zZSxyLmpvaW4oIiIpfWZ1bmN0aW9uIHNkKGUsYSl7YXx8KGE9e30pLGEuRlM9IgkiLGEuUlM9YApgO3ZhciByPW5pKGUsYSk7cmV0dXJuIHJ9ZnVuY3Rpb24gaWQoZSl7dmFyIGE9IiIscixuPSIiO2lmKGU9PW51bGx8fGVbIiFyZWYiXT09bnVsbClyZXR1cm5bXTt2YXIgdD1PZShlWyIhcmVmIl0pLHM9IiIsaT1bXSxjLGY9W10sbz1BcnJheS5pc0FycmF5KGUpO2ZvcihjPXQucy5jO2M8PXQuZS5jOysrYylpW2NdPVVlKGMpO2Zvcih2YXIgbD10LnMucjtsPD10LmUucjsrK2wpZm9yKHM9emUobCksYz10LnMuYztjPD10LmUuYzsrK2MpaWYoYT1pW2NdK3Mscj1vPyhlW2xdfHxbXSlbY106ZVthXSxuPSIiLHIhPT12b2lkIDApe2lmKHIuRiE9bnVsbCl7aWYoYT1yLkYsIXIuZiljb250aW51ZTtuPXIuZixhLmluZGV4T2YoIjoiKT09LTEmJihhPWErIjoiK2EpfWlmKHIuZiE9bnVsbCluPXIuZjtlbHNle2lmKHIudD09InoiKWNvbnRpbnVlO2lmKHIudD09Im4iJiZyLnYhPW51bGwpbj0iIityLnY7ZWxzZSBpZihyLnQ9PSJiIiluPXIudj8iVFJVRSI6IkZBTFNFIjtlbHNlIGlmKHIudyE9PXZvaWQgMCluPSInIityLnc7ZWxzZXtpZihyLnY9PT12b2lkIDApY29udGludWU7ci50PT0icyI/bj0iJyIrci52Om49IiIrci52fX1mW2YubGVuZ3RoXT1hKyI9IitufXJldHVybiBmfWZ1bmN0aW9uIHNpKGUsYSxyKXt2YXIgbj1yfHx7fSx0PSshbi5za2lwSGVhZGVyLHM9ZXx8e30saT0wLGM9MDtpZihzJiZuLm9yaWdpbiE9bnVsbClpZih0eXBlb2Ygbi5vcmlnaW49PSJudW1iZXIiKWk9bi5vcmlnaW47ZWxzZXt2YXIgZj10eXBlb2Ygbi5vcmlnaW49PSJzdHJpbmciP25yKG4ub3JpZ2luKTpuLm9yaWdpbjtpPWYucixjPWYuY312YXIgbyxsPXtzOntjOjAscjowfSxlOntjLHI6aSthLmxlbmd0aC0xK3R9fTtpZihzWyIhcmVmIl0pe3ZhciBoPU9lKHNbIiFyZWYiXSk7bC5lLmM9TWF0aC5tYXgobC5lLmMsaC5lLmMpLGwuZS5yPU1hdGgubWF4KGwuZS5yLGguZS5yKSxpPT0tMSYmKGk9aC5lLnIrMSxsLmUucj1pK2EubGVuZ3RoLTErdCl9ZWxzZSBpPT0tMSYmKGk9MCxsLmUucj1hLmxlbmd0aC0xK3QpO3ZhciB4PW4uaGVhZGVyfHxbXSxkPTA7YS5mb3JFYWNoKGZ1bmN0aW9uKHUsZyl7U3IodSkuZm9yRWFjaChmdW5jdGlvbihGKXsoZD14LmluZGV4T2YoRikpPT0tMSYmKHhbZD14Lmxlbmd0aF09Rik7dmFyIHk9dVtGXSxfPSJ6IixOPSIiLGI9dWUoe2M6YytkLHI6aStnK3R9KTtvPWphKHMsYikseSYmdHlwZW9mIHk9PSJvYmplY3QiJiYhKHkgaW5zdGFuY2VvZiBEYXRlKT9zW2JdPXk6KHR5cGVvZiB5PT0ibnVtYmVyIj9fPSJuIjp0eXBlb2YgeT09ImJvb2xlYW4iP189ImIiOnR5cGVvZiB5PT0ic3RyaW5nIj9fPSJzIjp5IGluc3RhbmNlb2YgRGF0ZT8oXz0iZCIsbi5jZWxsRGF0ZXN8fChfPSJuIix5PXRyKHkpKSxOPW4uZGF0ZU5GfHxkZVsxNF0pOnk9PT1udWxsJiZuLm51bGxFcnJvciYmKF89ImUiLHk9MCksbz8oby50PV8sby52PXksZGVsZXRlIG8udyxkZWxldGUgby5SLE4mJihvLno9TikpOnNbYl09bz17dDpfLHY6eX0sTiYmKG8uej1OKSl9KX0pLGwuZS5jPU1hdGgubWF4KGwuZS5jLGMreC5sZW5ndGgtMSk7dmFyIHY9emUoaSk7aWYodClmb3IoZD0wO2Q8eC5sZW5ndGg7KytkKXNbVWUoZCtjKSt2XT17dDoicyIsdjp4W2RdfTtyZXR1cm4gc1siIXJlZiJdPV9lKGwpLHN9ZnVuY3Rpb24gY2QoZSxhKXtyZXR1cm4gc2kobnVsbCxlLGEpfWZ1bmN0aW9uIGphKGUsYSxyKXtpZih0eXBlb2YgYT09InN0cmluZyIpe2lmKEFycmF5LmlzQXJyYXkoZSkpe3ZhciBuPW5yKGEpO3JldHVybiBlW24ucl18fChlW24ucl09W10pLGVbbi5yXVtuLmNdfHwoZVtuLnJdW24uY109e3Q6InoifSl9cmV0dXJuIGVbYV18fChlW2FdPXt0OiJ6In0pfXJldHVybiB0eXBlb2YgYSE9Im51bWJlciI/amEoZSx1ZShhKSk6amEoZSx1ZSh7cjphLGM6cnx8MH0pKX1mdW5jdGlvbiBmZChlLGEpe2lmKHR5cGVvZiBhPT0ibnVtYmVyIil7aWYoYT49MCYmZS5TaGVldE5hbWVzLmxlbmd0aD5hKXJldHVybiBhO3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGZpbmQgc2hlZXQgIyAiK2EpfWVsc2UgaWYodHlwZW9mIGE9PSJzdHJpbmciKXt2YXIgcj1lLlNoZWV0TmFtZXMuaW5kZXhPZihhKTtpZihyPi0xKXJldHVybiByO3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGZpbmQgc2hlZXQgbmFtZSB8IithKyJ8Iil9ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIHNoZWV0IHwiK2ErInwiKX1mdW5jdGlvbiBtMCgpe3JldHVybntTaGVldE5hbWVzOltdLFNoZWV0czp7fX19ZnVuY3Rpb24gXzAoZSxhLHIsbil7dmFyIHQ9MTtpZighcilmb3IoO3Q8PTY1NTM1JiZlLlNoZWV0TmFtZXMuaW5kZXhPZihyPSJTaGVldCIrdCkhPS0xOysrdCxyPXZvaWQgMCk7aWYoIXJ8fGUuU2hlZXROYW1lcy5sZW5ndGg+PTY1NTM1KXRocm93IG5ldyBFcnJvcigiVG9vIG1hbnkgd29ya3NoZWV0cyIpO2lmKG4mJmUuU2hlZXROYW1lcy5pbmRleE9mKHIpPj0wKXt2YXIgcz1yLm1hdGNoKC8oXi4qPykoXGQrKSQvKTt0PXMmJitzWzJdfHwwO3ZhciBpPXMmJnNbMV18fHI7Zm9yKCsrdDt0PD02NTUzNSYmZS5TaGVldE5hbWVzLmluZGV4T2Yocj1pK3QpIT0tMTsrK3QpO31pZih6dShyKSxlLlNoZWV0TmFtZXMuaW5kZXhPZihyKT49MCl0aHJvdyBuZXcgRXJyb3IoIldvcmtzaGVldCB3aXRoIG5hbWUgfCIrcisifCBhbHJlYWR5IGV4aXN0cyEiKTtyZXR1cm4gZS5TaGVldE5hbWVzLnB1c2gociksZS5TaGVldHNbcl09YSxyfWZ1bmN0aW9uIG9kKGUsYSxyKXtlLldvcmtib29rfHwoZS5Xb3JrYm9vaz17fSksZS5Xb3JrYm9vay5TaGVldHN8fChlLldvcmtib29rLlNoZWV0cz1bXSk7dmFyIG49ZmQoZSxhKTtzd2l0Y2goZS5Xb3JrYm9vay5TaGVldHNbbl18fChlLldvcmtib29rLlNoZWV0c1tuXT17fSkscil7Y2FzZSAwOmNhc2UgMTpjYXNlIDI6YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkJhZCBzaGVldCB2aXNpYmlsaXR5IHNldHRpbmcgIityKX1lLldvcmtib29rLlNoZWV0c1tuXS5IaWRkZW49cn1mdW5jdGlvbiBsZChlLGEpe3JldHVybiBlLno9YSxlfWZ1bmN0aW9uIGlpKGUsYSxyKXtyZXR1cm4gYT8oZS5sPXtUYXJnZXQ6YX0sciYmKGUubC5Ub29sdGlwPXIpKTpkZWxldGUgZS5sLGV9ZnVuY3Rpb24gaGQoZSxhLHIpe3JldHVybiBpaShlLCIjIithLHIpfWZ1bmN0aW9uIHVkKGUsYSxyKXtlLmN8fChlLmM9W10pLGUuYy5wdXNoKHt0OmEsYTpyfHwiU2hlZXRKUyJ9KX1mdW5jdGlvbiB4ZChlLGEscixuKXtmb3IodmFyIHQ9dHlwZW9mIGEhPSJzdHJpbmciP2E6T2UoYSkscz10eXBlb2YgYT09InN0cmluZyI/YTpfZShhKSxpPXQucy5yO2k8PXQuZS5yOysraSlmb3IodmFyIGM9dC5zLmM7Yzw9dC5lLmM7KytjKXt2YXIgZj1qYShlLGksYyk7Zi50PSJuIixmLkY9cyxkZWxldGUgZi52LGk9PXQucy5yJiZjPT10LnMuYyYmKGYuZj1yLG4mJihmLkQ9ITApKX1yZXR1cm4gZX12YXIgRTA9e2VuY29kZV9jb2w6VWUsZW5jb2RlX3Jvdzp6ZSxlbmNvZGVfY2VsbDp1ZSxlbmNvZGVfcmFuZ2U6X2UsZGVjb2RlX2NvbDpWdCxkZWNvZGVfcm93Okh0LHNwbGl0X2NlbGw6d2MsZGVjb2RlX2NlbGw6bnIsZGVjb2RlX3JhbmdlOnBhLGZvcm1hdF9jZWxsOkxyLHNoZWV0X2FkZF9hb2E6Tm4sc2hlZXRfYWRkX2pzb246c2ksc2hlZXRfYWRkX2RvbTpLcyxhb2FfdG9fc2hlZXQ6Z2EsanNvbl90b19zaGVldDpjZCx0YWJsZV90b19zaGVldDpZcyx0YWJsZV90b19ib29rOk94LHNoZWV0X3RvX2NzdjpuaSxzaGVldF90b190eHQ6c2Qsc2hlZXRfdG9fanNvbjpnMCxzaGVldF90b19odG1sOkR4LHNoZWV0X3RvX2Zvcm11bGFlOmlkLHNoZWV0X3RvX3Jvd19vYmplY3RfYXJyYXk6ZzAsc2hlZXRfZ2V0X2NlbGw6amEsYm9va19uZXc6bTAsYm9va19hcHBlbmRfc2hlZXQ6XzAsYm9va19zZXRfc2hlZXRfdmlzaWJpbGl0eTpvZCxjZWxsX3NldF9udW1iZXJfZm9ybWF0OmxkLGNlbGxfc2V0X2h5cGVybGluazppaSxjZWxsX3NldF9pbnRlcm5hbF9saW5rOmhkLGNlbGxfYWRkX2NvbW1lbnQ6dWQsc2hlZXRfc2V0X2FycmF5X2Zvcm11bGE6eGQsY29uc3RzOntTSEVFVF9WSVNJQkxFOjAsU0hFRVRfSElEREVOOjEsU0hFRVRfVkVSWV9ISURERU46Mn19O2NsYXNzIGRke3N0YXRpYyBpc0NTVihhKXt2YXIgcjtyZXR1cm4oKHI9YS5zcGxpdCgiLiIpLnBvcCgpKT09bnVsbD92b2lkIDA6ci50b0xvd2VyQ2FzZSgpKT09PSJjc3YifXN0YXRpYyBpc0V4Y2VsKGEpe3ZhciBuO2NvbnN0IHI9KG49YS5zcGxpdCgiLiIpLnBvcCgpKT09bnVsbD92b2lkIDA6bi50b0xvd2VyQ2FzZSgpO3JldHVybiByPT09InhscyJ8fHI9PT0ieGxzeCJ9c3RhdGljIGFzeW5jIHBhcnNlRmlsZShhLHIsbix0PSExKXtpZih0aGlzLmlzQ1NWKGEpKXtjb25zdCBzPWF3YWl0IHRoaXMucGFyc2VDU1YoYSxyLG4sdCk7cmV0dXJue3NoZWV0czpbey4uLnMsbmFtZToiQ1NWIn1dLC4uLnN9fWlmKHRoaXMuaXNFeGNlbChhKSlyZXR1cm4gdGhpcy5wYXJzZUV4Y2VsKHIsbix0KTt0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGZpbGUgZm9ybWF0Iil9c3RhdGljIGFzeW5jIHBhcnNlQ1NWKGEscixuLHQ9ITEpe2NvbnN0IGM9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpLmRlY29kZShyKS5zcGxpdChgCmApLmZpbHRlcihoPT5oLnRyaW0oKSk7aWYoYy5sZW5ndGg9PT0wKXRocm93IG5ldyBFcnJvcigiRmlsZSBpcyBlbXB0eSIpO2NvbnN0IGY9dGhpcy5wYXJzZUNTVkxpbmUoY1swXSksbz1jLmxlbmd0aC0xLGw9e25hbWU6YSxyb3dzOm8sY29sdW1uczpmfTtpZih0KXtjb25zdCBoPW4/TWF0aC5taW4obyxuKTpvLHg9W107Zm9yKGxldCBkPTE7ZDw9aDtkKyspe2NvbnN0IHY9dGhpcy5wYXJzZUNTVkxpbmUoY1tkXSksdT17fTtmLmZvckVhY2goKGcsRik9PnVbZ109dltGXXx8IiIpLHgucHVzaCh1KX1sLmRhdGE9eH1yZXR1cm4gbH1zdGF0aWMgcGFyc2VDU1ZMaW5lKGEpe2NvbnN0IHI9W107bGV0IG49IiIsdD0hMTtmb3IobGV0IHM9MDtzPGEubGVuZ3RoO3MrKyl7Y29uc3QgaT1hW3NdO2k9PT0nIic/dD0hdDppPT09IiwiJiYhdD8oci5wdXNoKG4udHJpbSgpKSxuPSIiKTpuKz1pfXJldHVybiByLnB1c2gobi50cmltKCkpLHJ9c3RhdGljIHBhcnNlRXhjZWwoYSxyLG49ITEpe2NvbnN0IHQ9cDAoYSx7dHlwZToiYXJyYXkifSkscz1bXTtmb3IoY29uc3QgYyBvZiB0LlNoZWV0TmFtZXMpe2NvbnN0IGY9dC5TaGVldHNbY10sbz1FMC5kZWNvZGVfcmFuZ2UoZlsiIXJlZiJdfHwiQTEiKSxsPW8uZS5yLGg9W107Zm9yKGxldCBkPW8ucy5jO2Q8PW8uZS5jO2QrKyl7Y29uc3Qgdj1FMC5lbmNvZGVfY2VsbCh7cjowLGM6ZH0pLHU9Zlt2XTtoLnB1c2godT9TdHJpbmcodS52KTpgQ29sdW1uJHtkKzF9YCl9Y29uc3QgeD17bmFtZTpjLHJvd3M6bCxjb2x1bW5zOmh9O2lmKG4pe2NvbnN0IGQ9cj9NYXRoLm1pbihsLHIpOmwsdj1FMC5zaGVldF90b19qc29uKGYse3JhbmdlOjEsaGVhZGVyOmgsZGVmdmFsOiIifSk7eC5kYXRhPXYuc2xpY2UoMCxkKX1zLnB1c2goeCl9Y29uc3QgaT1zWzBdfHx7cm93czowLGNvbHVtbnM6W119O3JldHVybntzaGVldHM6cyxyb3dzOmkucm93cyxjb2x1bW5zOmkuY29sdW1ucyxkYXRhOmkuZGF0YX19fXNlbGYub25tZXNzYWdlPWFzeW5jIGU9Pntjb25zdHtpZDphLHR5cGU6cixmaWxlOm4sbWF4Um93czp0LHJldHVybkRhdGE6c309ZS5kYXRhO3RyeXtpZihyPT09InBhcnNlIil7Y29uc3QgaT1hd2FpdCBkZC5wYXJzZUZpbGUobi5uYW1lLG4uYXJyYXlCdWZmZXIsdCxzKTtzZWxmLnBvc3RNZXNzYWdlKHtpZDphLHR5cGU6InN1Y2Nlc3MiLHJlc3VsdDppfSl9fWNhdGNoKGkpe3NlbGYucG9zdE1lc3NhZ2Uoe2lkOmEsdHlwZToiZXJyb3IiLGVycm9yOmkgaW5zdGFuY2VvZiBFcnJvcj9pLm1lc3NhZ2U6IlVua25vd24gZXJyb3IifSl9fX0pKCk7Cg==", Au = (t) => Uint8Array.from(atob(t), (l) => l.charCodeAt(0)), _l = typeof self < "u" && self.Blob && new Blob([Au(hi)], { type: "text/javascript;charset=utf-8" });
9023
- function $u(t) {
9027
+ }), hi = "KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiOy8qISB4bHN4LmpzIChDKSAyMDEzLXByZXNlbnQgU2hlZXRKUyAtLSBodHRwOi8vc2hlZXRqcy5jb20gKi92YXIgdzA9MTI1MixoaT1bODc0LDkzMiw5MzYsOTQ5LDk1MCwxMjUwLDEyNTEsMTI1MiwxMjUzLDEyNTQsMTI1NSwxMjU2LDEyNTcsMTI1OCwxZTRdLFN0PXswOjEyNTIsMTo2NTAwMSwyOjY1MDAxLDc3OjFlNCwxMjg6OTMyLDEyOTo5NDksMTMwOjEzNjEsMTM0OjkzNiwxMzY6OTUwLDE2MToxMjUzLDE2MjoxMjU0LDE2MzoxMjU4LDE3NzoxMjU1LDE3ODoxMjU2LDE4NjoxMjU3LDIwNDoxMjUxLDIyMjo4NzQsMjM4OjEyNTAsMjU1OjEyNTIsNjk6Njk2OX0sQ3Q9ZnVuY3Rpb24oZSl7aGkuaW5kZXhPZihlKSE9LTEmJih3MD1TdFswXT1lKX07ZnVuY3Rpb24gdWkoKXtDdCgxMjUyKX12YXIgX3I9ZnVuY3Rpb24oZSl7Q3QoZSl9O2Z1bmN0aW9uIEEwKCl7X3IoMTIwMCksdWkoKX1mdW5jdGlvbiBGMChlKXtmb3IodmFyIGE9W10scj0wLG49ZS5sZW5ndGg7cjxuOysrcilhW3JdPWUuY2hhckNvZGVBdChyKTtyZXR1cm4gYX1mdW5jdGlvbiB4aShlKXtmb3IodmFyIGE9W10scj0wO3I8ZS5sZW5ndGg+PjE7KytyKWFbcl09U3RyaW5nLmZyb21DaGFyQ29kZShlLmNoYXJDb2RlQXQoMipyKSsoZS5jaGFyQ29kZUF0KDIqcisxKTw8OCkpO3JldHVybiBhLmpvaW4oIiIpfWZ1bmN0aW9uIFMwKGUpe2Zvcih2YXIgYT1bXSxyPTA7cjxlLmxlbmd0aD4+MTsrK3IpYVtyXT1TdHJpbmcuZnJvbUNoYXJDb2RlKGUuY2hhckNvZGVBdCgyKnIrMSkrKGUuY2hhckNvZGVBdCgyKnIpPDw4KSk7cmV0dXJuIGEuam9pbigiIil9dmFyIGthPWZ1bmN0aW9uKGUpe3ZhciBhPWUuY2hhckNvZGVBdCgwKSxyPWUuY2hhckNvZGVBdCgxKTtyZXR1cm4gYT09MjU1JiZyPT0yNTQ/eGkoZS5zbGljZSgyKSk6YT09MjU0JiZyPT0yNTU/UzAoZS5zbGljZSgyKSk6YT09NjUyNzk/ZS5zbGljZSgxKTplfSxydD1mdW5jdGlvbihhKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShhKX0sQzA9ZnVuY3Rpb24oYSl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoYSl9LHdhLEhyPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSI7ZnVuY3Rpb24geTAoZSl7Zm9yKHZhciBhPSIiLHI9MCxuPTAsdD0wLHM9MCxpPTAsYz0wLGY9MCxvPTA7bzxlLmxlbmd0aDspcj1lLmNoYXJDb2RlQXQobysrKSxzPXI+PjIsbj1lLmNoYXJDb2RlQXQobysrKSxpPShyJjMpPDw0fG4+PjQsdD1lLmNoYXJDb2RlQXQobysrKSxjPShuJjE1KTw8Mnx0Pj42LGY9dCY2Myxpc05hTihuKT9jPWY9NjQ6aXNOYU4odCkmJihmPTY0KSxhKz1Ici5jaGFyQXQocykrSHIuY2hhckF0KGkpK0hyLmNoYXJBdChjKStIci5jaGFyQXQoZik7cmV0dXJuIGF9ZnVuY3Rpb24gZnIoZSl7dmFyIGE9IiIscj0wLG49MCx0PTAscz0wLGk9MCxjPTAsZj0wO2U9ZS5yZXBsYWNlKC9bXlx3XCtcL1w9XS9nLCIiKTtmb3IodmFyIG89MDtvPGUubGVuZ3RoOylzPUhyLmluZGV4T2YoZS5jaGFyQXQobysrKSksaT1Ici5pbmRleE9mKGUuY2hhckF0KG8rKykpLHI9czw8MnxpPj40LGErPVN0cmluZy5mcm9tQ2hhckNvZGUociksYz1Ici5pbmRleE9mKGUuY2hhckF0KG8rKykpLG49KGkmMTUpPDw0fGM+PjIsYyE9PTY0JiYoYSs9U3RyaW5nLmZyb21DaGFyQ29kZShuKSksZj1Ici5pbmRleE9mKGUuY2hhckF0KG8rKykpLHQ9KGMmMyk8PDZ8ZixmIT09NjQmJihhKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHQpKTtyZXR1cm4gYX12YXIgZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIEJ1ZmZlcjwidSImJnR5cGVvZiBwcm9jZXNzPCJ1IiYmdHlwZW9mIHByb2Nlc3MudmVyc2lvbnM8InUiJiYhIXByb2Nlc3MudmVyc2lvbnMubm9kZX0oKSxKcj1mdW5jdGlvbigpe2lmKHR5cGVvZiBCdWZmZXI8InUiKXt2YXIgZT0hQnVmZmVyLmZyb207aWYoIWUpdHJ5e0J1ZmZlci5mcm9tKCJmb28iLCJ1dGY4Iil9Y2F0Y2h7ZT0hMH1yZXR1cm4gZT9mdW5jdGlvbihhLHIpe3JldHVybiByP25ldyBCdWZmZXIoYSxyKTpuZXcgQnVmZmVyKGEpfTpCdWZmZXIuZnJvbS5iaW5kKEJ1ZmZlcil9cmV0dXJuIGZ1bmN0aW9uKCl7fX0oKTtmdW5jdGlvbiBWcihlKXtyZXR1cm4gZ2U/QnVmZmVyLmFsbG9jP0J1ZmZlci5hbGxvYyhlKTpuZXcgQnVmZmVyKGUpOnR5cGVvZiBVaW50OEFycmF5PCJ1Ij9uZXcgVWludDhBcnJheShlKTpuZXcgQXJyYXkoZSl9ZnVuY3Rpb24gRDAoZSl7cmV0dXJuIGdlP0J1ZmZlci5hbGxvY1Vuc2FmZT9CdWZmZXIuYWxsb2NVbnNhZmUoZSk6bmV3IEJ1ZmZlcihlKTp0eXBlb2YgVWludDhBcnJheTwidSI/bmV3IFVpbnQ4QXJyYXkoZSk6bmV3IEFycmF5KGUpfXZhciBFcj1mdW5jdGlvbihhKXtyZXR1cm4gZ2U/SnIoYSwiYmluYXJ5Iik6YS5zcGxpdCgiIikubWFwKGZ1bmN0aW9uKHIpe3JldHVybiByLmNoYXJDb2RlQXQoMCkmMjU1fSl9O2Z1bmN0aW9uIFpyKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGUubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKG4pfSkuam9pbigiIik7Zm9yKHZhciBhPVtdLHI9MDtyPGUubGVuZ3RoOysrcilhW3JdPVN0cmluZy5mcm9tQ2hhckNvZGUoZVtyXSk7cmV0dXJuIGEuam9pbigiIil9ZnVuY3Rpb24geXQoZSl7aWYodHlwZW9mIEFycmF5QnVmZmVyPiJ1Iil0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIik7aWYoZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXJldHVybiB5dChuZXcgVWludDhBcnJheShlKSk7Zm9yKHZhciBhPW5ldyBBcnJheShlLmxlbmd0aCkscj0wO3I8ZS5sZW5ndGg7KytyKWFbcl09ZVtyXTtyZXR1cm4gYX12YXIgV3I9Z2U/ZnVuY3Rpb24oZSl7cmV0dXJuIEJ1ZmZlci5jb25jYXQoZS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcihhKT9hOkpyKGEpfSkpfTpmdW5jdGlvbihlKXtpZih0eXBlb2YgVWludDhBcnJheTwidSIpe3ZhciBhPTAscj0wO2ZvcihhPTA7YTxlLmxlbmd0aDsrK2Epcis9ZVthXS5sZW5ndGg7dmFyIG49bmV3IFVpbnQ4QXJyYXkociksdD0wO2ZvcihhPTAscj0wO2E8ZS5sZW5ndGg7cis9dCwrK2EpaWYodD1lW2FdLmxlbmd0aCxlW2FdaW5zdGFuY2VvZiBVaW50OEFycmF5KW4uc2V0KGVbYV0scik7ZWxzZXtpZih0eXBlb2YgZVthXT09InN0cmluZyIpdGhyb3cid3RmIjtuLnNldChuZXcgVWludDhBcnJheShlW2FdKSxyKX1yZXR1cm4gbn1yZXR1cm5bXS5jb25jYXQuYXBwbHkoW10sZS5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuIEFycmF5LmlzQXJyYXkocyk/czpbXS5zbGljZS5jYWxsKHMpfSkpfTtmdW5jdGlvbiBkaShlKXtmb3IodmFyIGE9W10scj0wLG49ZS5sZW5ndGgrMjUwLHQ9VnIoZS5sZW5ndGgrMjU1KSxzPTA7czxlLmxlbmd0aDsrK3Mpe3ZhciBpPWUuY2hhckNvZGVBdChzKTtpZihpPDEyOCl0W3IrK109aTtlbHNlIGlmKGk8MjA0OCl0W3IrK109MTkyfGk+PjYmMzEsdFtyKytdPTEyOHxpJjYzO2Vsc2UgaWYoaT49NTUyOTYmJmk8NTczNDQpe2k9KGkmMTAyMykrNjQ7dmFyIGM9ZS5jaGFyQ29kZUF0KCsrcykmMTAyMzt0W3IrK109MjQwfGk+PjgmNyx0W3IrK109MTI4fGk+PjImNjMsdFtyKytdPTEyOHxjPj42JjE1fChpJjMpPDw0LHRbcisrXT0xMjh8YyY2M31lbHNlIHRbcisrXT0yMjR8aT4+MTImMTUsdFtyKytdPTEyOHxpPj42JjYzLHRbcisrXT0xMjh8aSY2MztyPm4mJihhLnB1c2godC5zbGljZSgwLHIpKSxyPTAsdD1Wcig2NTUzNSksbj02NTUzMCl9cmV0dXJuIGEucHVzaCh0LnNsaWNlKDAscikpLFdyKGEpfXZhciBycj0vXHUwMDAwL2csQWE9L1tcdTAwMDEtXHUwMDA2XS9nO2Z1bmN0aW9uIGhhKGUpe2Zvcih2YXIgYT0iIixyPWUubGVuZ3RoLTE7cj49MDspYSs9ZS5jaGFyQXQoci0tKTtyZXR1cm4gYX1mdW5jdGlvbiBUcihlLGEpe3ZhciByPSIiK2U7cmV0dXJuIHIubGVuZ3RoPj1hP3I6RGUoIjAiLGEtci5sZW5ndGgpK3J9ZnVuY3Rpb24gRHQoZSxhKXt2YXIgcj0iIitlO3JldHVybiByLmxlbmd0aD49YT9yOkRlKCIgIixhLXIubGVuZ3RoKStyfWZ1bmN0aW9uIGF0KGUsYSl7dmFyIHI9IiIrZTtyZXR1cm4gci5sZW5ndGg+PWE/cjpyK0RlKCIgIixhLXIubGVuZ3RoKX1mdW5jdGlvbiB2aShlLGEpe3ZhciByPSIiK01hdGgucm91bmQoZSk7cmV0dXJuIHIubGVuZ3RoPj1hP3I6RGUoIjAiLGEtci5sZW5ndGgpK3J9ZnVuY3Rpb24gcGkoZSxhKXt2YXIgcj0iIitlO3JldHVybiByLmxlbmd0aD49YT9yOkRlKCIwIixhLXIubGVuZ3RoKStyfXZhciBPMD1NYXRoLnBvdygyLDMyKTtmdW5jdGlvbiB1YShlLGEpe2lmKGU+TzB8fGU8LU8wKXJldHVybiB2aShlLGEpO3ZhciByPU1hdGgucm91bmQoZSk7cmV0dXJuIHBpKHIsYSl9ZnVuY3Rpb24gdHQoZSxhKXtyZXR1cm4gYT1hfHwwLGUubGVuZ3RoPj03K2EmJihlLmNoYXJDb2RlQXQoYSl8MzIpPT09MTAzJiYoZS5jaGFyQ29kZUF0KGErMSl8MzIpPT09MTAxJiYoZS5jaGFyQ29kZUF0KGErMil8MzIpPT09MTEwJiYoZS5jaGFyQ29kZUF0KGErMyl8MzIpPT09MTAxJiYoZS5jaGFyQ29kZUF0KGErNCl8MzIpPT09MTE0JiYoZS5jaGFyQ29kZUF0KGErNSl8MzIpPT09OTcmJihlLmNoYXJDb2RlQXQoYSs2KXwzMik9PT0xMDh9dmFyIFIwPVtbIlN1biIsIlN1bmRheSJdLFsiTW9uIiwiTW9uZGF5Il0sWyJUdWUiLCJUdWVzZGF5Il0sWyJXZWQiLCJXZWRuZXNkYXkiXSxbIlRodSIsIlRodXJzZGF5Il0sWyJGcmkiLCJGcmlkYXkiXSxbIlNhdCIsIlNhdHVyZGF5Il1dLE90PVtbIkoiLCJKYW4iLCJKYW51YXJ5Il0sWyJGIiwiRmViIiwiRmVicnVhcnkiXSxbIk0iLCJNYXIiLCJNYXJjaCJdLFsiQSIsIkFwciIsIkFwcmlsIl0sWyJNIiwiTWF5IiwiTWF5Il0sWyJKIiwiSnVuIiwiSnVuZSJdLFsiSiIsIkp1bCIsIkp1bHkiXSxbIkEiLCJBdWciLCJBdWd1c3QiXSxbIlMiLCJTZXAiLCJTZXB0ZW1iZXIiXSxbIk8iLCJPY3QiLCJPY3RvYmVyIl0sWyJOIiwiTm92IiwiTm92ZW1iZXIiXSxbIkQiLCJEZWMiLCJEZWNlbWJlciJdXTtmdW5jdGlvbiBnaShlKXtyZXR1cm4gZXx8KGU9e30pLGVbMF09IkdlbmVyYWwiLGVbMV09IjAiLGVbMl09IjAuMDAiLGVbM109IiMsIyMwIixlWzRdPSIjLCMjMC4wMCIsZVs5XT0iMCUiLGVbMTBdPSIwLjAwJSIsZVsxMV09IjAuMDBFKzAwIixlWzEyXT0iIyA/Lz8iLGVbMTNdPSIjID8/Lz8/IixlWzE0XT0ibS9kL3l5IixlWzE1XT0iZC1tbW0teXkiLGVbMTZdPSJkLW1tbSIsZVsxN109Im1tbS15eSIsZVsxOF09Img6bW0gQU0vUE0iLGVbMTldPSJoOm1tOnNzIEFNL1BNIixlWzIwXT0iaDptbSIsZVsyMV09Img6bW06c3MiLGVbMjJdPSJtL2QveXkgaDptbSIsZVszN109IiMsIyMwIDsoIywjIzApIixlWzM4XT0iIywjIzAgO1tSZWRdKCMsIyMwKSIsZVszOV09IiMsIyMwLjAwOygjLCMjMC4wMCkiLGVbNDBdPSIjLCMjMC4wMDtbUmVkXSgjLCMjMC4wMCkiLGVbNDVdPSJtbTpzcyIsZVs0Nl09IltoXTptbTpzcyIsZVs0N109Im1tc3MuMCIsZVs0OF09IiMjMC4wRSswIixlWzQ5XT0iQCIsZVs1Nl09JyLkuIrljYgv5LiL5Y2IICJoaCLmmYIibW0i5YiGInNzIuenkiAiJyxlfXZhciBkZT17MDoiR2VuZXJhbCIsMToiMCIsMjoiMC4wMCIsMzoiIywjIzAiLDQ6IiMsIyMwLjAwIiw5OiIwJSIsMTA6IjAuMDAlIiwxMToiMC4wMEUrMDAiLDEyOiIjID8vPyIsMTM6IiMgPz8vPz8iLDE0OiJtL2QveXkiLDE1OiJkLW1tbS15eSIsMTY6ImQtbW1tIiwxNzoibW1tLXl5IiwxODoiaDptbSBBTS9QTSIsMTk6Img6bW06c3MgQU0vUE0iLDIwOiJoOm1tIiwyMToiaDptbTpzcyIsMjI6Im0vZC95eSBoOm1tIiwzNzoiIywjIzAgOygjLCMjMCkiLDM4OiIjLCMjMCA7W1JlZF0oIywjIzApIiwzOToiIywjIzAuMDA7KCMsIyMwLjAwKSIsNDA6IiMsIyMwLjAwO1tSZWRdKCMsIyMwLjAwKSIsNDU6Im1tOnNzIiw0NjoiW2hdOm1tOnNzIiw0NzoibW1zcy4wIiw0ODoiIyMwLjBFKzAiLDQ5OiJAIiw1NjonIuS4iuWNiC/kuIvljYggImhoIuaZgiJtbSLliIYic3Mi56eSICInfSxJMD17NTozNyw2OjM4LDc6MzksODo0MCwyMzowLDI0OjAsMjU6MCwyNjowLDI3OjE0LDI4OjE0LDI5OjE0LDMwOjE0LDMxOjE0LDUwOjE0LDUxOjE0LDUyOjE0LDUzOjE0LDU0OjE0LDU1OjE0LDU2OjE0LDU3OjE0LDU4OjE0LDU5OjEsNjA6Miw2MTozLDYyOjQsNjc6OSw2ODoxMCw2OToxMiw3MDoxMyw3MToxNCw3MjoxNCw3MzoxNSw3NDoxNiw3NToxNyw3NjoyMCw3NzoyMSw3ODoyMiw3OTo0NSw4MDo0Niw4MTo0Nyw4MjowfSxtaT17NTonIiQiIywjIzBfKTtcXCgiJCIjLCMjMFxcKScsNjM6JyIkIiMsIyMwXyk7XFwoIiQiIywjIzBcXCknLDY6JyIkIiMsIyMwXyk7W1JlZF1cXCgiJCIjLCMjMFxcKScsNjQ6JyIkIiMsIyMwXyk7W1JlZF1cXCgiJCIjLCMjMFxcKScsNzonIiQiIywjIzAuMDBfKTtcXCgiJCIjLCMjMC4wMFxcKScsNjU6JyIkIiMsIyMwLjAwXyk7XFwoIiQiIywjIzAuMDBcXCknLDg6JyIkIiMsIyMwLjAwXyk7W1JlZF1cXCgiJCIjLCMjMC4wMFxcKScsNjY6JyIkIiMsIyMwLjAwXyk7W1JlZF1cXCgiJCIjLCMjMC4wMFxcKScsNDE6J18oKiAjLCMjMF8pO18oKiBcXCgjLCMjMFxcKTtfKCogIi0iXyk7XyhAXyknLDQyOidfKCIkIiogIywjIzBfKTtfKCIkIiogXFwoIywjIzBcXCk7XygiJCIqICItIl8pO18oQF8pJyw0MzonXygqICMsIyMwLjAwXyk7XygqIFxcKCMsIyMwLjAwXFwpO18oKiAiLSI/P18pO18oQF8pJyw0NDonXygiJCIqICMsIyMwLjAwXyk7XygiJCIqIFxcKCMsIyMwLjAwXFwpO18oIiQiKiAiLSI/P18pO18oQF8pJ307ZnVuY3Rpb24gbnQoZSxhLHIpe2Zvcih2YXIgbj1lPDA/LTE6MSx0PWUqbixzPTAsaT0xLGM9MCxmPTEsbz0wLGw9MCxoPU1hdGguZmxvb3IodCk7bzxhJiYoaD1NYXRoLmZsb29yKHQpLGM9aCppK3MsbD1oKm8rZiwhKHQtaDw1ZS04KSk7KXQ9MS8odC1oKSxzPWksaT1jLGY9byxvPWw7aWYobD5hJiYobz5hPyhsPWYsYz1zKToobD1vLGM9aSkpLCFyKXJldHVyblswLG4qYyxsXTt2YXIgeD1NYXRoLmZsb29yKG4qYy9sKTtyZXR1cm5beCxuKmMteCpsLGxdfWZ1bmN0aW9uIHFyKGUsYSxyKXtpZihlPjI5NTg0NjV8fGU8MClyZXR1cm4gbnVsbDt2YXIgbj1lfDAsdD1NYXRoLmZsb29yKDg2NDAwKihlLW4pKSxzPTAsaT1bXSxjPXtEOm4sVDp0LHU6ODY0MDAqKGUtbiktdCx5OjAsbTowLGQ6MCxIOjAsTTowLFM6MCxxOjB9O2lmKE1hdGguYWJzKGMudSk8MWUtNiYmKGMudT0wKSxhJiZhLmRhdGUxOTA0JiYobis9MTQ2MiksYy51Pi45OTk5JiYoYy51PTAsKyt0PT04NjQwMCYmKGMuVD10PTAsKytuLCsrYy5EKSksbj09PTYwKWk9cj9bMTMxNywxMCwyOV06WzE5MDAsMiwyOV0scz0zO2Vsc2UgaWYobj09PTApaT1yP1sxMzE3LDgsMjldOlsxOTAwLDEsMF0scz02O2Vsc2V7bj42MCYmLS1uO3ZhciBmPW5ldyBEYXRlKDE5MDAsMCwxKTtmLnNldERhdGUoZi5nZXREYXRlKCkrbi0xKSxpPVtmLmdldEZ1bGxZZWFyKCksZi5nZXRNb250aCgpKzEsZi5nZXREYXRlKCldLHM9Zi5nZXREYXkoKSxuPDYwJiYocz0ocys2KSU3KSxyJiYocz1BaShmLGkpKX1yZXR1cm4gYy55PWlbMF0sYy5tPWlbMV0sYy5kPWlbMl0sYy5TPXQlNjAsdD1NYXRoLmZsb29yKHQvNjApLGMuTT10JTYwLHQ9TWF0aC5mbG9vcih0LzYwKSxjLkg9dCxjLnE9cyxjfXZhciBOMD1uZXcgRGF0ZSgxODk5LDExLDMxLDAsMCwwKSxfaT1OMC5nZXRUaW1lKCksRWk9bmV3IERhdGUoMTkwMCwyLDEsMCwwLDApO2Z1bmN0aW9uIFAwKGUsYSl7dmFyIHI9ZS5nZXRUaW1lKCk7cmV0dXJuIGE/ci09MTQ2MSoyNCo2MCo2MCoxZTM6ZT49RWkmJihyKz0yNCo2MCo2MCoxZTMpLChyLShfaSsoZS5nZXRUaW1lem9uZU9mZnNldCgpLU4wLmdldFRpbWV6b25lT2Zmc2V0KCkpKjZlNCkpLygyNCo2MCo2MCoxZTMpfWZ1bmN0aW9uIFJ0KGUpe3JldHVybiBlLmluZGV4T2YoIi4iKT09LTE/ZTplLnJlcGxhY2UoLyg/OlwuMCp8KFwuXGQqWzEtOV0pMCspJC8sIiQxIil9ZnVuY3Rpb24gVGkoZSl7cmV0dXJuIGUuaW5kZXhPZigiRSIpPT0tMT9lOmUucmVwbGFjZSgvKD86XC4wKnwoXC5cZCpbMS05XSkwKylbRWVdLywiJDFFIikucmVwbGFjZSgvKEVbKy1dKShcZCkkLywiJDEwJDIiKX1mdW5jdGlvbiBraShlKXt2YXIgYT1lPDA/MTI6MTEscj1SdChlLnRvRml4ZWQoMTIpKTtyZXR1cm4gci5sZW5ndGg8PWF8fChyPWUudG9QcmVjaXNpb24oMTApLHIubGVuZ3RoPD1hKT9yOmUudG9FeHBvbmVudGlhbCg1KX1mdW5jdGlvbiB3aShlKXt2YXIgYT1SdChlLnRvRml4ZWQoMTEpKTtyZXR1cm4gYS5sZW5ndGg+KGU8MD8xMjoxMSl8fGE9PT0iMCJ8fGE9PT0iLTAiP2UudG9QcmVjaXNpb24oNik6YX1mdW5jdGlvbiBGYShlKXt2YXIgYT1NYXRoLmZsb29yKE1hdGgubG9nKE1hdGguYWJzKGUpKSpNYXRoLkxPRzEwRSkscjtyZXR1cm4gYT49LTQmJmE8PS0xP3I9ZS50b1ByZWNpc2lvbigxMCthKTpNYXRoLmFicyhhKTw9OT9yPWtpKGUpOmE9PT0xMD9yPWUudG9GaXhlZCgxMCkuc3Vic3RyKDAsMTIpOnI9d2koZSksUnQoVGkoci50b1VwcGVyQ2FzZSgpKSl9ZnVuY3Rpb24gUXIoZSxhKXtzd2l0Y2godHlwZW9mIGUpe2Nhc2Uic3RyaW5nIjpyZXR1cm4gZTtjYXNlImJvb2xlYW4iOnJldHVybiBlPyJUUlVFIjoiRkFMU0UiO2Nhc2UibnVtYmVyIjpyZXR1cm4oZXwwKT09PWU/ZS50b1N0cmluZygxMCk6RmEoZSk7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiIiO2Nhc2Uib2JqZWN0IjppZihlPT1udWxsKXJldHVybiIiO2lmKGUgaW5zdGFuY2VvZiBEYXRlKXJldHVybiB4cigxNCxQMChlLGEmJmEuZGF0ZTE5MDQpLGEpfXRocm93IG5ldyBFcnJvcigidW5zdXBwb3J0ZWQgdmFsdWUgaW4gR2VuZXJhbCBmb3JtYXQ6ICIrZSl9ZnVuY3Rpb24gQWkoZSxhKXthWzBdLT01ODE7dmFyIHI9ZS5nZXREYXkoKTtyZXR1cm4gZTw2MCYmKHI9KHIrNiklNykscn1mdW5jdGlvbiBGaShlLGEscixuKXt2YXIgdD0iIixzPTAsaT0wLGM9ci55LGYsbz0wO3N3aXRjaChlKXtjYXNlIDk4OmM9ci55KzU0MztjYXNlIDEyMTpzd2l0Y2goYS5sZW5ndGgpe2Nhc2UgMTpjYXNlIDI6Zj1jJTEwMCxvPTI7YnJlYWs7ZGVmYXVsdDpmPWMlMWU0LG89NDticmVha31icmVhaztjYXNlIDEwOTpzd2l0Y2goYS5sZW5ndGgpe2Nhc2UgMTpjYXNlIDI6Zj1yLm0sbz1hLmxlbmd0aDticmVhaztjYXNlIDM6cmV0dXJuIE90W3IubS0xXVsxXTtjYXNlIDU6cmV0dXJuIE90W3IubS0xXVswXTtkZWZhdWx0OnJldHVybiBPdFtyLm0tMV1bMl19YnJlYWs7Y2FzZSAxMDA6c3dpdGNoKGEubGVuZ3RoKXtjYXNlIDE6Y2FzZSAyOmY9ci5kLG89YS5sZW5ndGg7YnJlYWs7Y2FzZSAzOnJldHVybiBSMFtyLnFdWzBdO2RlZmF1bHQ6cmV0dXJuIFIwW3IucV1bMV19YnJlYWs7Y2FzZSAxMDQ6c3dpdGNoKGEubGVuZ3RoKXtjYXNlIDE6Y2FzZSAyOmY9MSsoci5IKzExKSUxMixvPWEubGVuZ3RoO2JyZWFrO2RlZmF1bHQ6dGhyb3ciYmFkIGhvdXIgZm9ybWF0OiAiK2F9YnJlYWs7Y2FzZSA3Mjpzd2l0Y2goYS5sZW5ndGgpe2Nhc2UgMTpjYXNlIDI6Zj1yLkgsbz1hLmxlbmd0aDticmVhaztkZWZhdWx0OnRocm93ImJhZCBob3VyIGZvcm1hdDogIithfWJyZWFrO2Nhc2UgNzc6c3dpdGNoKGEubGVuZ3RoKXtjYXNlIDE6Y2FzZSAyOmY9ci5NLG89YS5sZW5ndGg7YnJlYWs7ZGVmYXVsdDp0aHJvdyJiYWQgbWludXRlIGZvcm1hdDogIithfWJyZWFrO2Nhc2UgMTE1OmlmKGEhPSJzIiYmYSE9InNzIiYmYSE9Ii4wIiYmYSE9Ii4wMCImJmEhPSIuMDAwIil0aHJvdyJiYWQgc2Vjb25kIGZvcm1hdDogIithO3JldHVybiByLnU9PT0wJiYoYT09InMifHxhPT0ic3MiKT9UcihyLlMsYS5sZW5ndGgpOihuPj0yP2k9bj09PTM/MWUzOjEwMDppPW49PT0xPzEwOjEscz1NYXRoLnJvdW5kKGkqKHIuUytyLnUpKSxzPj02MCppJiYocz0wKSxhPT09InMiP3M9PT0wPyIwIjoiIitzL2k6KHQ9VHIocywyK24pLGE9PT0ic3MiP3Quc3Vic3RyKDAsMik6Ii4iK3Quc3Vic3RyKDIsYS5sZW5ndGgtMSkpKTtjYXNlIDkwOnN3aXRjaChhKXtjYXNlIltoXSI6Y2FzZSJbaGhdIjpmPXIuRCoyNCtyLkg7YnJlYWs7Y2FzZSJbbV0iOmNhc2UiW21tXSI6Zj0oci5EKjI0K3IuSCkqNjArci5NO2JyZWFrO2Nhc2UiW3NdIjpjYXNlIltzc10iOmY9KChyLkQqMjQrci5IKSo2MCtyLk0pKjYwK01hdGgucm91bmQoci5TK3IudSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyJiYWQgYWJzdGltZSBmb3JtYXQ6ICIrYX1vPWEubGVuZ3RoPT09Mz8xOjI7YnJlYWs7Y2FzZSAxMDE6Zj1jLG89MTticmVha312YXIgbD1vPjA/VHIoZixvKToiIjtyZXR1cm4gbH1mdW5jdGlvbiBHcihlKXt2YXIgYT0zO2lmKGUubGVuZ3RoPD1hKXJldHVybiBlO2Zvcih2YXIgcj1lLmxlbmd0aCVhLG49ZS5zdWJzdHIoMCxyKTtyIT1lLmxlbmd0aDtyKz1hKW4rPShuLmxlbmd0aD4wPyIsIjoiIikrZS5zdWJzdHIocixhKTtyZXR1cm4gbn12YXIgTDA9LyUvZztmdW5jdGlvbiBTaShlLGEscil7dmFyIG49YS5yZXBsYWNlKEwwLCIiKSx0PWEubGVuZ3RoLW4ubGVuZ3RoO3JldHVybiBJcihlLG4scipNYXRoLnBvdygxMCwyKnQpKStEZSgiJSIsdCl9ZnVuY3Rpb24gQ2koZSxhLHIpe2Zvcih2YXIgbj1hLmxlbmd0aC0xO2EuY2hhckNvZGVBdChuLTEpPT09NDQ7KS0tbjtyZXR1cm4gSXIoZSxhLnN1YnN0cigwLG4pLHIvTWF0aC5wb3coMTAsMyooYS5sZW5ndGgtbikpKX1mdW5jdGlvbiBNMChlLGEpe3ZhciByLG49ZS5pbmRleE9mKCJFIiktZS5pbmRleE9mKCIuIiktMTtpZihlLm1hdGNoKC9eIyswLjBFXCswJC8pKXtpZihhPT0wKXJldHVybiIwLjBFKzAiO2lmKGE8MClyZXR1cm4iLSIrTTAoZSwtYSk7dmFyIHQ9ZS5pbmRleE9mKCIuIik7dD09PS0xJiYodD1lLmluZGV4T2YoIkUiKSk7dmFyIHM9TWF0aC5mbG9vcihNYXRoLmxvZyhhKSpNYXRoLkxPRzEwRSkldDtpZihzPDAmJihzKz10KSxyPShhL01hdGgucG93KDEwLHMpKS50b1ByZWNpc2lvbihuKzErKHQrcykldCksci5pbmRleE9mKCJlIik9PT0tMSl7dmFyIGk9TWF0aC5mbG9vcihNYXRoLmxvZyhhKSpNYXRoLkxPRzEwRSk7Zm9yKHIuaW5kZXhPZigiLiIpPT09LTE/cj1yLmNoYXJBdCgwKSsiLiIrci5zdWJzdHIoMSkrIkUrIisoaS1yLmxlbmd0aCtzKTpyKz0iRSsiKyhpLXMpO3Iuc3Vic3RyKDAsMik9PT0iMC4iOylyPXIuY2hhckF0KDApK3Iuc3Vic3RyKDIsdCkrIi4iK3Iuc3Vic3RyKDIrdCkscj1yLnJlcGxhY2UoL14wKyhbMS05XSkvLCIkMSIpLnJlcGxhY2UoL14wK1wuLywiMC4iKTtyPXIucmVwbGFjZSgvXCstLywiLSIpfXI9ci5yZXBsYWNlKC9eKFsrLV0/KShcZCopXC4oXGQqKVtFZV0vLGZ1bmN0aW9uKGMsZixvLGwpe3JldHVybiBmK28rbC5zdWJzdHIoMCwodCtzKSV0KSsiLiIrbC5zdWJzdHIocykrIkUifSl9ZWxzZSByPWEudG9FeHBvbmVudGlhbChuKTtyZXR1cm4gZS5tYXRjaCgvRVwrMDAkLykmJnIubWF0Y2goL2VbKy1dXGQkLykmJihyPXIuc3Vic3RyKDAsci5sZW5ndGgtMSkrIjAiK3IuY2hhckF0KHIubGVuZ3RoLTEpKSxlLm1hdGNoKC9FXC0vKSYmci5tYXRjaCgvZVwrLykmJihyPXIucmVwbGFjZSgvZVwrLywiZSIpKSxyLnJlcGxhY2UoImUiLCJFIil9dmFyIEIwPS8jIChcPyspKCA/KVwvKCA/KShcZCspLztmdW5jdGlvbiB5aShlLGEscil7dmFyIG49cGFyc2VJbnQoZVs0XSwxMCksdD1NYXRoLnJvdW5kKGEqbikscz1NYXRoLmZsb29yKHQvbiksaT10LXMqbixjPW47cmV0dXJuIHIrKHM9PT0wPyIiOiIiK3MpKyIgIisoaT09PTA/RGUoIiAiLGVbMV0ubGVuZ3RoKzErZVs0XS5sZW5ndGgpOkR0KGksZVsxXS5sZW5ndGgpK2VbMl0rIi8iK2VbM10rVHIoYyxlWzRdLmxlbmd0aCkpfWZ1bmN0aW9uIERpKGUsYSxyKXtyZXR1cm4gcisoYT09PTA/IiI6IiIrYSkrRGUoIiAiLGVbMV0ubGVuZ3RoKzIrZVs0XS5sZW5ndGgpfXZhciBiMD0vXiMqMCpcLihbMCNdKykvLFUwPS9cKS4qWzAjXS8sSDA9L1woIyMjXCkgIyMjXFw/LSMjIyMvO2Z1bmN0aW9uIGFyKGUpe2Zvcih2YXIgYT0iIixyLG49MDtuIT1lLmxlbmd0aDsrK24pc3dpdGNoKHI9ZS5jaGFyQ29kZUF0KG4pKXtjYXNlIDM1OmJyZWFrO2Nhc2UgNjM6YSs9IiAiO2JyZWFrO2Nhc2UgNDg6YSs9IjAiO2JyZWFrO2RlZmF1bHQ6YSs9U3RyaW5nLmZyb21DaGFyQ29kZShyKX1yZXR1cm4gYX1mdW5jdGlvbiBWMChlLGEpe3ZhciByPU1hdGgucG93KDEwLGEpO3JldHVybiIiK01hdGgucm91bmQoZSpyKS9yfWZ1bmN0aW9uIFcwKGUsYSl7dmFyIHI9ZS1NYXRoLmZsb29yKGUpLG49TWF0aC5wb3coMTAsYSk7cmV0dXJuIGE8KCIiK01hdGgucm91bmQocipuKSkubGVuZ3RoPzA6TWF0aC5yb3VuZChyKm4pfWZ1bmN0aW9uIE9pKGUsYSl7cmV0dXJuIGE8KCIiK01hdGgucm91bmQoKGUtTWF0aC5mbG9vcihlKSkqTWF0aC5wb3coMTAsYSkpKS5sZW5ndGg/MTowfWZ1bmN0aW9uIFJpKGUpe3JldHVybiBlPDIxNDc0ODM2NDcmJmU+LTIxNDc0ODM2NDg/IiIrKGU+PTA/ZXwwOmUtMXwwKToiIitNYXRoLmZsb29yKGUpfWZ1bmN0aW9uIHVyKGUsYSxyKXtpZihlLmNoYXJDb2RlQXQoMCk9PT00MCYmIWEubWF0Y2goVTApKXt2YXIgbj1hLnJlcGxhY2UoL1woICovLCIiKS5yZXBsYWNlKC8gXCkvLCIiKS5yZXBsYWNlKC9cKS8sIiIpO3JldHVybiByPj0wP3VyKCJuIixuLHIpOiIoIit1cigibiIsbiwtcikrIikifWlmKGEuY2hhckNvZGVBdChhLmxlbmd0aC0xKT09PTQ0KXJldHVybiBDaShlLGEscik7aWYoYS5pbmRleE9mKCIlIikhPT0tMSlyZXR1cm4gU2koZSxhLHIpO2lmKGEuaW5kZXhPZigiRSIpIT09LTEpcmV0dXJuIE0wKGEscik7aWYoYS5jaGFyQ29kZUF0KDApPT09MzYpcmV0dXJuIiQiK3VyKGUsYS5zdWJzdHIoYS5jaGFyQXQoMSk9PSIgIj8yOjEpLHIpO3ZhciB0LHMsaSxjLGY9TWF0aC5hYnMociksbz1yPDA/Ii0iOiIiO2lmKGEubWF0Y2goL14wMCskLykpcmV0dXJuIG8rdWEoZixhLmxlbmd0aCk7aWYoYS5tYXRjaCgvXlsjP10rJC8pKXJldHVybiB0PXVhKHIsMCksdD09PSIwIiYmKHQ9IiIpLHQubGVuZ3RoPmEubGVuZ3RoP3Q6YXIoYS5zdWJzdHIoMCxhLmxlbmd0aC10Lmxlbmd0aCkpK3Q7aWYocz1hLm1hdGNoKEIwKSlyZXR1cm4geWkocyxmLG8pO2lmKGEubWF0Y2goL14jKzArJC8pKXJldHVybiBvK3VhKGYsYS5sZW5ndGgtYS5pbmRleE9mKCIwIikpO2lmKHM9YS5tYXRjaChiMCkpcmV0dXJuIHQ9VjAocixzWzFdLmxlbmd0aCkucmVwbGFjZSgvXihbXlwuXSspJC8sIiQxLiIrYXIoc1sxXSkpLnJlcGxhY2UoL1wuJC8sIi4iK2FyKHNbMV0pKS5yZXBsYWNlKC9cLihcZCopJC8sZnVuY3Rpb24odix1KXtyZXR1cm4iLiIrdStEZSgiMCIsYXIoc1sxXSkubGVuZ3RoLXUubGVuZ3RoKX0pLGEuaW5kZXhPZigiMC4iKSE9PS0xP3Q6dC5yZXBsYWNlKC9eMFwuLywiLiIpO2lmKGE9YS5yZXBsYWNlKC9eIysoWzAuXSkvLCIkMSIpLHM9YS5tYXRjaCgvXigwKilcLigjKikkLykpcmV0dXJuIG8rVjAoZixzWzJdLmxlbmd0aCkucmVwbGFjZSgvXC4oXGQqWzEtOV0pMCokLywiLiQxIikucmVwbGFjZSgvXigtP1xkKikkLywiJDEuIikucmVwbGFjZSgvXjBcLi8sc1sxXS5sZW5ndGg/IjAuIjoiLiIpO2lmKHM9YS5tYXRjaCgvXiN7MSwzfSwjIzAoXC4/KSQvKSlyZXR1cm4gbytHcih1YShmLDApKTtpZihzPWEubWF0Y2goL14jLCMjMFwuKFsjMF0qMCkkLykpcmV0dXJuIHI8MD8iLSIrdXIoZSxhLC1yKTpHcigiIisoTWF0aC5mbG9vcihyKStPaShyLHNbMV0ubGVuZ3RoKSkpKyIuIitUcihXMChyLHNbMV0ubGVuZ3RoKSxzWzFdLmxlbmd0aCk7aWYocz1hLm1hdGNoKC9eIywjKiwjMC8pKXJldHVybiB1cihlLGEucmVwbGFjZSgvXiMsIyosLywiIikscik7aWYocz1hLm1hdGNoKC9eKFswI10rKShcXD8tKFswI10rKSkrJC8pKXJldHVybiB0PWhhKHVyKGUsYS5yZXBsYWNlKC9bXFwtXS9nLCIiKSxyKSksaT0wLGhhKGhhKGEucmVwbGFjZSgvXFwvZywiIikpLnJlcGxhY2UoL1swI10vZyxmdW5jdGlvbih2KXtyZXR1cm4gaTx0Lmxlbmd0aD90LmNoYXJBdChpKyspOnY9PT0iMCI/IjAiOiIifSkpO2lmKGEubWF0Y2goSDApKXJldHVybiB0PXVyKGUsIiMjIyMjIyMjIyMiLHIpLCIoIit0LnN1YnN0cigwLDMpKyIpICIrdC5zdWJzdHIoMywzKSsiLSIrdC5zdWJzdHIoNik7dmFyIGw9IiI7aWYocz1hLm1hdGNoKC9eKFsjMD9dKykoID8pXC8oID8pKFsjMD9dKykvKSlyZXR1cm4gaT1NYXRoLm1pbihzWzRdLmxlbmd0aCw3KSxjPW50KGYsTWF0aC5wb3coMTAsaSktMSwhMSksdD0iIitvLGw9SXIoIm4iLHNbMV0sY1sxXSksbC5jaGFyQXQobC5sZW5ndGgtMSk9PSIgIiYmKGw9bC5zdWJzdHIoMCxsLmxlbmd0aC0xKSsiMCIpLHQrPWwrc1syXSsiLyIrc1szXSxsPWF0KGNbMl0saSksbC5sZW5ndGg8c1s0XS5sZW5ndGgmJihsPWFyKHNbNF0uc3Vic3RyKHNbNF0ubGVuZ3RoLWwubGVuZ3RoKSkrbCksdCs9bCx0O2lmKHM9YS5tYXRjaCgvXiMgKFsjMD9dKykoID8pXC8oID8pKFsjMD9dKykvKSlyZXR1cm4gaT1NYXRoLm1pbihNYXRoLm1heChzWzFdLmxlbmd0aCxzWzRdLmxlbmd0aCksNyksYz1udChmLE1hdGgucG93KDEwLGkpLTEsITApLG8rKGNbMF18fChjWzFdPyIiOiIwIikpKyIgIisoY1sxXT9EdChjWzFdLGkpK3NbMl0rIi8iK3NbM10rYXQoY1syXSxpKTpEZSgiICIsMippKzErc1syXS5sZW5ndGgrc1szXS5sZW5ndGgpKTtpZihzPWEubWF0Y2goL15bIzA/XSskLykpcmV0dXJuIHQ9dWEociwwKSxhLmxlbmd0aDw9dC5sZW5ndGg/dDphcihhLnN1YnN0cigwLGEubGVuZ3RoLXQubGVuZ3RoKSkrdDtpZihzPWEubWF0Y2goL14oWyMwP10rKVwuKFsjMF0rKSQvKSl7dD0iIityLnRvRml4ZWQoTWF0aC5taW4oc1syXS5sZW5ndGgsMTApKS5yZXBsYWNlKC8oW14wXSkwKyQvLCIkMSIpLGk9dC5pbmRleE9mKCIuIik7dmFyIGg9YS5pbmRleE9mKCIuIiktaSx4PWEubGVuZ3RoLXQubGVuZ3RoLWg7cmV0dXJuIGFyKGEuc3Vic3RyKDAsaCkrdCthLnN1YnN0cihhLmxlbmd0aC14KSl9aWYocz1hLm1hdGNoKC9eMDAsMDAwXC4oWyMwXSowKSQvKSlyZXR1cm4gaT1XMChyLHNbMV0ubGVuZ3RoKSxyPDA/Ii0iK3VyKGUsYSwtcik6R3IoUmkocikpLnJlcGxhY2UoL15cZCxcZHszfSQvLCIwJCYiKS5yZXBsYWNlKC9eXGQqJC8sZnVuY3Rpb24odil7cmV0dXJuIjAwLCIrKHYubGVuZ3RoPDM/VHIoMCwzLXYubGVuZ3RoKToiIikrdn0pKyIuIitUcihpLHNbMV0ubGVuZ3RoKTtzd2l0Y2goYSl7Y2FzZSIjIyMsIyMwLjAwIjpyZXR1cm4gdXIoZSwiIywjIzAuMDAiLHIpO2Nhc2UiIyMjLCMjIyI6Y2FzZSIjIywjIyMiOmNhc2UiIywjIyMiOnZhciBkPUdyKHVhKGYsMCkpO3JldHVybiBkIT09IjAiP28rZDoiIjtjYXNlIiMjIywjIyMuMDAiOnJldHVybiB1cihlLCIjIyMsIyMwLjAwIixyKS5yZXBsYWNlKC9eMFwuLywiLiIpO2Nhc2UiIywjIyMuMDAiOnJldHVybiB1cihlLCIjLCMjMC4wMCIscikucmVwbGFjZSgvXjBcLi8sIi4iKX10aHJvdyBuZXcgRXJyb3IoInVuc3VwcG9ydGVkIGZvcm1hdCB8IithKyJ8Iil9ZnVuY3Rpb24gSWkoZSxhLHIpe2Zvcih2YXIgbj1hLmxlbmd0aC0xO2EuY2hhckNvZGVBdChuLTEpPT09NDQ7KS0tbjtyZXR1cm4gSXIoZSxhLnN1YnN0cigwLG4pLHIvTWF0aC5wb3coMTAsMyooYS5sZW5ndGgtbikpKX1mdW5jdGlvbiBOaShlLGEscil7dmFyIG49YS5yZXBsYWNlKEwwLCIiKSx0PWEubGVuZ3RoLW4ubGVuZ3RoO3JldHVybiBJcihlLG4scipNYXRoLnBvdygxMCwyKnQpKStEZSgiJSIsdCl9ZnVuY3Rpb24gRzAoZSxhKXt2YXIgcixuPWUuaW5kZXhPZigiRSIpLWUuaW5kZXhPZigiLiIpLTE7aWYoZS5tYXRjaCgvXiMrMC4wRVwrMCQvKSl7aWYoYT09MClyZXR1cm4iMC4wRSswIjtpZihhPDApcmV0dXJuIi0iK0cwKGUsLWEpO3ZhciB0PWUuaW5kZXhPZigiLiIpO3Q9PT0tMSYmKHQ9ZS5pbmRleE9mKCJFIikpO3ZhciBzPU1hdGguZmxvb3IoTWF0aC5sb2coYSkqTWF0aC5MT0cxMEUpJXQ7aWYoczwwJiYocys9dCkscj0oYS9NYXRoLnBvdygxMCxzKSkudG9QcmVjaXNpb24obisxKyh0K3MpJXQpLCFyLm1hdGNoKC9bRWVdLykpe3ZhciBpPU1hdGguZmxvb3IoTWF0aC5sb2coYSkqTWF0aC5MT0cxMEUpO3IuaW5kZXhPZigiLiIpPT09LTE/cj1yLmNoYXJBdCgwKSsiLiIrci5zdWJzdHIoMSkrIkUrIisoaS1yLmxlbmd0aCtzKTpyKz0iRSsiKyhpLXMpLHI9ci5yZXBsYWNlKC9cKy0vLCItIil9cj1yLnJlcGxhY2UoL14oWystXT8pKFxkKilcLihcZCopW0VlXS8sZnVuY3Rpb24oYyxmLG8sbCl7cmV0dXJuIGYrbytsLnN1YnN0cigwLCh0K3MpJXQpKyIuIitsLnN1YnN0cihzKSsiRSJ9KX1lbHNlIHI9YS50b0V4cG9uZW50aWFsKG4pO3JldHVybiBlLm1hdGNoKC9FXCswMCQvKSYmci5tYXRjaCgvZVsrLV1cZCQvKSYmKHI9ci5zdWJzdHIoMCxyLmxlbmd0aC0xKSsiMCIrci5jaGFyQXQoci5sZW5ndGgtMSkpLGUubWF0Y2goL0VcLS8pJiZyLm1hdGNoKC9lXCsvKSYmKHI9ci5yZXBsYWNlKC9lXCsvLCJlIikpLHIucmVwbGFjZSgiZSIsIkUiKX1mdW5jdGlvbiBGcihlLGEscil7aWYoZS5jaGFyQ29kZUF0KDApPT09NDAmJiFhLm1hdGNoKFUwKSl7dmFyIG49YS5yZXBsYWNlKC9cKCAqLywiIikucmVwbGFjZSgvIFwpLywiIikucmVwbGFjZSgvXCkvLCIiKTtyZXR1cm4gcj49MD9GcigibiIsbixyKToiKCIrRnIoIm4iLG4sLXIpKyIpIn1pZihhLmNoYXJDb2RlQXQoYS5sZW5ndGgtMSk9PT00NClyZXR1cm4gSWkoZSxhLHIpO2lmKGEuaW5kZXhPZigiJSIpIT09LTEpcmV0dXJuIE5pKGUsYSxyKTtpZihhLmluZGV4T2YoIkUiKSE9PS0xKXJldHVybiBHMChhLHIpO2lmKGEuY2hhckNvZGVBdCgwKT09PTM2KXJldHVybiIkIitGcihlLGEuc3Vic3RyKGEuY2hhckF0KDEpPT0iICI/MjoxKSxyKTt2YXIgdCxzLGksYyxmPU1hdGguYWJzKHIpLG89cjwwPyItIjoiIjtpZihhLm1hdGNoKC9eMDArJC8pKXJldHVybiBvK1RyKGYsYS5sZW5ndGgpO2lmKGEubWF0Y2goL15bIz9dKyQvKSlyZXR1cm4gdD0iIityLHI9PT0wJiYodD0iIiksdC5sZW5ndGg+YS5sZW5ndGg/dDphcihhLnN1YnN0cigwLGEubGVuZ3RoLXQubGVuZ3RoKSkrdDtpZihzPWEubWF0Y2goQjApKXJldHVybiBEaShzLGYsbyk7aWYoYS5tYXRjaCgvXiMrMCskLykpcmV0dXJuIG8rVHIoZixhLmxlbmd0aC1hLmluZGV4T2YoIjAiKSk7aWYocz1hLm1hdGNoKGIwKSlyZXR1cm4gdD0oIiIrcikucmVwbGFjZSgvXihbXlwuXSspJC8sIiQxLiIrYXIoc1sxXSkpLnJlcGxhY2UoL1wuJC8sIi4iK2FyKHNbMV0pKSx0PXQucmVwbGFjZSgvXC4oXGQqKSQvLGZ1bmN0aW9uKHYsdSl7cmV0dXJuIi4iK3UrRGUoIjAiLGFyKHNbMV0pLmxlbmd0aC11Lmxlbmd0aCl9KSxhLmluZGV4T2YoIjAuIikhPT0tMT90OnQucmVwbGFjZSgvXjBcLi8sIi4iKTtpZihhPWEucmVwbGFjZSgvXiMrKFswLl0pLywiJDEiKSxzPWEubWF0Y2goL14oMCopXC4oIyopJC8pKXJldHVybiBvKygiIitmKS5yZXBsYWNlKC9cLihcZCpbMS05XSkwKiQvLCIuJDEiKS5yZXBsYWNlKC9eKC0/XGQqKSQvLCIkMS4iKS5yZXBsYWNlKC9eMFwuLyxzWzFdLmxlbmd0aD8iMC4iOiIuIik7aWYocz1hLm1hdGNoKC9eI3sxLDN9LCMjMChcLj8pJC8pKXJldHVybiBvK0dyKCIiK2YpO2lmKHM9YS5tYXRjaCgvXiMsIyMwXC4oWyMwXSowKSQvKSlyZXR1cm4gcjwwPyItIitGcihlLGEsLXIpOkdyKCIiK3IpKyIuIitEZSgiMCIsc1sxXS5sZW5ndGgpO2lmKHM9YS5tYXRjaCgvXiMsIyosIzAvKSlyZXR1cm4gRnIoZSxhLnJlcGxhY2UoL14jLCMqLC8sIiIpLHIpO2lmKHM9YS5tYXRjaCgvXihbMCNdKykoXFw/LShbMCNdKykpKyQvKSlyZXR1cm4gdD1oYShGcihlLGEucmVwbGFjZSgvW1xcLV0vZywiIikscikpLGk9MCxoYShoYShhLnJlcGxhY2UoL1xcL2csIiIpKS5yZXBsYWNlKC9bMCNdL2csZnVuY3Rpb24odil7cmV0dXJuIGk8dC5sZW5ndGg/dC5jaGFyQXQoaSsrKTp2PT09IjAiPyIwIjoiIn0pKTtpZihhLm1hdGNoKEgwKSlyZXR1cm4gdD1GcihlLCIjIyMjIyMjIyMjIixyKSwiKCIrdC5zdWJzdHIoMCwzKSsiKSAiK3Quc3Vic3RyKDMsMykrIi0iK3Quc3Vic3RyKDYpO3ZhciBsPSIiO2lmKHM9YS5tYXRjaCgvXihbIzA/XSspKCA/KVwvKCA/KShbIzA/XSspLykpcmV0dXJuIGk9TWF0aC5taW4oc1s0XS5sZW5ndGgsNyksYz1udChmLE1hdGgucG93KDEwLGkpLTEsITEpLHQ9IiIrbyxsPUlyKCJuIixzWzFdLGNbMV0pLGwuY2hhckF0KGwubGVuZ3RoLTEpPT0iICImJihsPWwuc3Vic3RyKDAsbC5sZW5ndGgtMSkrIjAiKSx0Kz1sK3NbMl0rIi8iK3NbM10sbD1hdChjWzJdLGkpLGwubGVuZ3RoPHNbNF0ubGVuZ3RoJiYobD1hcihzWzRdLnN1YnN0cihzWzRdLmxlbmd0aC1sLmxlbmd0aCkpK2wpLHQrPWwsdDtpZihzPWEubWF0Y2goL14jIChbIzA/XSspKCA/KVwvKCA/KShbIzA/XSspLykpcmV0dXJuIGk9TWF0aC5taW4oTWF0aC5tYXgoc1sxXS5sZW5ndGgsc1s0XS5sZW5ndGgpLDcpLGM9bnQoZixNYXRoLnBvdygxMCxpKS0xLCEwKSxvKyhjWzBdfHwoY1sxXT8iIjoiMCIpKSsiICIrKGNbMV0/RHQoY1sxXSxpKStzWzJdKyIvIitzWzNdK2F0KGNbMl0saSk6RGUoIiAiLDIqaSsxK3NbMl0ubGVuZ3RoK3NbM10ubGVuZ3RoKSk7aWYocz1hLm1hdGNoKC9eWyMwP10rJC8pKXJldHVybiB0PSIiK3IsYS5sZW5ndGg8PXQubGVuZ3RoP3Q6YXIoYS5zdWJzdHIoMCxhLmxlbmd0aC10Lmxlbmd0aCkpK3Q7aWYocz1hLm1hdGNoKC9eKFsjMF0rKVwuKFsjMF0rKSQvKSl7dD0iIityLnRvRml4ZWQoTWF0aC5taW4oc1syXS5sZW5ndGgsMTApKS5yZXBsYWNlKC8oW14wXSkwKyQvLCIkMSIpLGk9dC5pbmRleE9mKCIuIik7dmFyIGg9YS5pbmRleE9mKCIuIiktaSx4PWEubGVuZ3RoLXQubGVuZ3RoLWg7cmV0dXJuIGFyKGEuc3Vic3RyKDAsaCkrdCthLnN1YnN0cihhLmxlbmd0aC14KSl9aWYocz1hLm1hdGNoKC9eMDAsMDAwXC4oWyMwXSowKSQvKSlyZXR1cm4gcjwwPyItIitGcihlLGEsLXIpOkdyKCIiK3IpLnJlcGxhY2UoL15cZCxcZHszfSQvLCIwJCYiKS5yZXBsYWNlKC9eXGQqJC8sZnVuY3Rpb24odil7cmV0dXJuIjAwLCIrKHYubGVuZ3RoPDM/VHIoMCwzLXYubGVuZ3RoKToiIikrdn0pKyIuIitUcigwLHNbMV0ubGVuZ3RoKTtzd2l0Y2goYSl7Y2FzZSIjIyMsIyMjIjpjYXNlIiMjLCMjIyI6Y2FzZSIjLCMjIyI6dmFyIGQ9R3IoIiIrZik7cmV0dXJuIGQhPT0iMCI/bytkOiIiO2RlZmF1bHQ6aWYoYS5tYXRjaCgvXC5bMCM/XSokLykpcmV0dXJuIEZyKGUsYS5zbGljZSgwLGEubGFzdEluZGV4T2YoIi4iKSkscikrYXIoYS5zbGljZShhLmxhc3RJbmRleE9mKCIuIikpKX10aHJvdyBuZXcgRXJyb3IoInVuc3VwcG9ydGVkIGZvcm1hdCB8IithKyJ8Iil9ZnVuY3Rpb24gSXIoZSxhLHIpe3JldHVybihyfDApPT09cj9GcihlLGEscik6dXIoZSxhLHIpfWZ1bmN0aW9uIFBpKGUpe2Zvcih2YXIgYT1bXSxyPSExLG49MCx0PTA7bjxlLmxlbmd0aDsrK24pc3dpdGNoKGUuY2hhckNvZGVBdChuKSl7Y2FzZSAzNDpyPSFyO2JyZWFrO2Nhc2UgOTU6Y2FzZSA0MjpjYXNlIDkyOisrbjticmVhaztjYXNlIDU5OmFbYS5sZW5ndGhdPWUuc3Vic3RyKHQsbi10KSx0PW4rMX1pZihhW2EubGVuZ3RoXT1lLnN1YnN0cih0KSxyPT09ITApdGhyb3cgbmV3IEVycm9yKCJGb3JtYXQgfCIrZSsifCB1bnRlcm1pbmF0ZWQgc3RyaW5nICIpO3JldHVybiBhfXZhciBYMD0vXFtbSGhNbVNzXHUwRTBBXHUwRTE5XHUwRTE3XSpcXS87ZnVuY3Rpb24geGEoZSl7Zm9yKHZhciBhPTAscj0iIixuPSIiO2E8ZS5sZW5ndGg7KXN3aXRjaChyPWUuY2hhckF0KGEpKXtjYXNlIkciOnR0KGUsYSkmJihhKz02KSxhKys7YnJlYWs7Y2FzZSciJzpmb3IoO2UuY2hhckNvZGVBdCgrK2EpIT09MzQmJmE8ZS5sZW5ndGg7KTsrK2E7YnJlYWs7Y2FzZSJcXCI6YSs9MjticmVhaztjYXNlIl8iOmErPTI7YnJlYWs7Y2FzZSJAIjorK2E7YnJlYWs7Y2FzZSJCIjpjYXNlImIiOmlmKGUuY2hhckF0KGErMSk9PT0iMSJ8fGUuY2hhckF0KGErMSk9PT0iMiIpcmV0dXJuITA7Y2FzZSJNIjpjYXNlIkQiOmNhc2UiWSI6Y2FzZSJIIjpjYXNlIlMiOmNhc2UiRSI6Y2FzZSJtIjpjYXNlImQiOmNhc2UieSI6Y2FzZSJoIjpjYXNlInMiOmNhc2UiZSI6Y2FzZSJnIjpyZXR1cm4hMDtjYXNlIkEiOmNhc2UiYSI6Y2FzZSLkuIoiOmlmKGUuc3Vic3RyKGEsMykudG9VcHBlckNhc2UoKT09PSJBL1AifHxlLnN1YnN0cihhLDUpLnRvVXBwZXJDYXNlKCk9PT0iQU0vUE0ifHxlLnN1YnN0cihhLDUpLnRvVXBwZXJDYXNlKCk9PT0i5LiK5Y2IL+S4i+WNiCIpcmV0dXJuITA7KythO2JyZWFrO2Nhc2UiWyI6Zm9yKG49cjtlLmNoYXJBdChhKyspIT09Il0iJiZhPGUubGVuZ3RoOyluKz1lLmNoYXJBdChhKTtpZihuLm1hdGNoKFgwKSlyZXR1cm4hMDticmVhaztjYXNlIi4iOmNhc2UiMCI6Y2FzZSIjIjpmb3IoO2E8ZS5sZW5ndGgmJigiMCM/LixFKy0lIi5pbmRleE9mKHI9ZS5jaGFyQXQoKythKSk+LTF8fHI9PSJcXCImJmUuY2hhckF0KGErMSk9PSItIiYmIjAjIi5pbmRleE9mKGUuY2hhckF0KGErMikpPi0xKTspO2JyZWFrO2Nhc2UiPyI6Zm9yKDtlLmNoYXJBdCgrK2EpPT09cjspO2JyZWFrO2Nhc2UiKiI6KythLChlLmNoYXJBdChhKT09IiAifHxlLmNoYXJBdChhKT09IioiKSYmKythO2JyZWFrO2Nhc2UiKCI6Y2FzZSIpIjorK2E7YnJlYWs7Y2FzZSIxIjpjYXNlIjIiOmNhc2UiMyI6Y2FzZSI0IjpjYXNlIjUiOmNhc2UiNiI6Y2FzZSI3IjpjYXNlIjgiOmNhc2UiOSI6Zm9yKDthPGUubGVuZ3RoJiYiMDEyMzQ1Njc4OSIuaW5kZXhPZihlLmNoYXJBdCgrK2EpKT4tMTspO2JyZWFrO2Nhc2UiICI6KythO2JyZWFrO2RlZmF1bHQ6KythO2JyZWFrfXJldHVybiExfWZ1bmN0aW9uIExpKGUsYSxyLG4pe2Zvcih2YXIgdD1bXSxzPSIiLGk9MCxjPSIiLGY9InQiLG8sbCxoLHg9IkgiO2k8ZS5sZW5ndGg7KXN3aXRjaChjPWUuY2hhckF0KGkpKXtjYXNlIkciOmlmKCF0dChlLGkpKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkIGNoYXJhY3RlciAiK2MrIiBpbiAiK2UpO3RbdC5sZW5ndGhdPXt0OiJHIix2OiJHZW5lcmFsIn0saSs9NzticmVhaztjYXNlJyInOmZvcihzPSIiOyhoPWUuY2hhckNvZGVBdCgrK2kpKSE9PTM0JiZpPGUubGVuZ3RoOylzKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGgpO3RbdC5sZW5ndGhdPXt0OiJ0Iix2OnN9LCsraTticmVhaztjYXNlIlxcIjp2YXIgZD1lLmNoYXJBdCgrK2kpLHY9ZD09PSIoInx8ZD09PSIpIj9kOiJ0Ijt0W3QubGVuZ3RoXT17dDp2LHY6ZH0sKytpO2JyZWFrO2Nhc2UiXyI6dFt0Lmxlbmd0aF09e3Q6InQiLHY6IiAifSxpKz0yO2JyZWFrO2Nhc2UiQCI6dFt0Lmxlbmd0aF09e3Q6IlQiLHY6YX0sKytpO2JyZWFrO2Nhc2UiQiI6Y2FzZSJiIjppZihlLmNoYXJBdChpKzEpPT09IjEifHxlLmNoYXJBdChpKzEpPT09IjIiKXtpZihvPT1udWxsJiYobz1xcihhLHIsZS5jaGFyQXQoaSsxKT09PSIyIiksbz09bnVsbCkpcmV0dXJuIiI7dFt0Lmxlbmd0aF09e3Q6IlgiLHY6ZS5zdWJzdHIoaSwyKX0sZj1jLGkrPTI7YnJlYWt9Y2FzZSJNIjpjYXNlIkQiOmNhc2UiWSI6Y2FzZSJIIjpjYXNlIlMiOmNhc2UiRSI6Yz1jLnRvTG93ZXJDYXNlKCk7Y2FzZSJtIjpjYXNlImQiOmNhc2UieSI6Y2FzZSJoIjpjYXNlInMiOmNhc2UiZSI6Y2FzZSJnIjppZihhPDB8fG89PW51bGwmJihvPXFyKGEsciksbz09bnVsbCkpcmV0dXJuIiI7Zm9yKHM9YzsrK2k8ZS5sZW5ndGgmJmUuY2hhckF0KGkpLnRvTG93ZXJDYXNlKCk9PT1jOylzKz1jO2M9PT0ibSImJmYudG9Mb3dlckNhc2UoKT09PSJoIiYmKGM9Ik0iKSxjPT09ImgiJiYoYz14KSx0W3QubGVuZ3RoXT17dDpjLHY6c30sZj1jO2JyZWFrO2Nhc2UiQSI6Y2FzZSJhIjpjYXNlIuS4iiI6dmFyIHU9e3Q6Yyx2OmN9O2lmKG89PW51bGwmJihvPXFyKGEscikpLGUuc3Vic3RyKGksMykudG9VcHBlckNhc2UoKT09PSJBL1AiPyhvIT1udWxsJiYodS52PW8uSD49MTI/IlAiOiJBIiksdS50PSJUIix4PSJoIixpKz0zKTplLnN1YnN0cihpLDUpLnRvVXBwZXJDYXNlKCk9PT0iQU0vUE0iPyhvIT1udWxsJiYodS52PW8uSD49MTI/IlBNIjoiQU0iKSx1LnQ9IlQiLGkrPTUseD0iaCIpOmUuc3Vic3RyKGksNSkudG9VcHBlckNhc2UoKT09PSLkuIrljYgv5LiL5Y2IIj8obyE9bnVsbCYmKHUudj1vLkg+PTEyPyLkuIvljYgiOiLkuIrljYgiKSx1LnQ9IlQiLGkrPTUseD0iaCIpOih1LnQ9InQiLCsraSksbz09bnVsbCYmdS50PT09IlQiKXJldHVybiIiO3RbdC5sZW5ndGhdPXUsZj1jO2JyZWFrO2Nhc2UiWyI6Zm9yKHM9YztlLmNoYXJBdChpKyspIT09Il0iJiZpPGUubGVuZ3RoOylzKz1lLmNoYXJBdChpKTtpZihzLnNsaWNlKC0xKSE9PSJdIil0aHJvdyd1bnRlcm1pbmF0ZWQgIlsiIGJsb2NrOiB8JytzKyJ8IjtpZihzLm1hdGNoKFgwKSl7aWYobz09bnVsbCYmKG89cXIoYSxyKSxvPT1udWxsKSlyZXR1cm4iIjt0W3QubGVuZ3RoXT17dDoiWiIsdjpzLnRvTG93ZXJDYXNlKCl9LGY9cy5jaGFyQXQoMSl9ZWxzZSBzLmluZGV4T2YoIiQiKT4tMSYmKHM9KHMubWF0Y2goL1wkKFteLVxbXF1dKikvKXx8W10pWzFdfHwiJCIseGEoZSl8fCh0W3QubGVuZ3RoXT17dDoidCIsdjpzfSkpO2JyZWFrO2Nhc2UiLiI6aWYobyE9bnVsbCl7Zm9yKHM9YzsrK2k8ZS5sZW5ndGgmJihjPWUuY2hhckF0KGkpKT09PSIwIjspcys9Yzt0W3QubGVuZ3RoXT17dDoicyIsdjpzfTticmVha31jYXNlIjAiOmNhc2UiIyI6Zm9yKHM9YzsrK2k8ZS5sZW5ndGgmJiIwIz8uLEUrLSUiLmluZGV4T2YoYz1lLmNoYXJBdChpKSk+LTE7KXMrPWM7dFt0Lmxlbmd0aF09e3Q6Im4iLHY6c307YnJlYWs7Y2FzZSI/Ijpmb3Iocz1jO2UuY2hhckF0KCsraSk9PT1jOylzKz1jO3RbdC5sZW5ndGhdPXt0OmMsdjpzfSxmPWM7YnJlYWs7Y2FzZSIqIjorK2ksKGUuY2hhckF0KGkpPT0iICJ8fGUuY2hhckF0KGkpPT0iKiIpJiYrK2k7YnJlYWs7Y2FzZSIoIjpjYXNlIikiOnRbdC5sZW5ndGhdPXt0Om49PT0xPyJ0IjpjLHY6Y30sKytpO2JyZWFrO2Nhc2UiMSI6Y2FzZSIyIjpjYXNlIjMiOmNhc2UiNCI6Y2FzZSI1IjpjYXNlIjYiOmNhc2UiNyI6Y2FzZSI4IjpjYXNlIjkiOmZvcihzPWM7aTxlLmxlbmd0aCYmIjAxMjM0NTY3ODkiLmluZGV4T2YoZS5jaGFyQXQoKytpKSk+LTE7KXMrPWUuY2hhckF0KGkpO3RbdC5sZW5ndGhdPXt0OiJEIix2OnN9O2JyZWFrO2Nhc2UiICI6dFt0Lmxlbmd0aF09e3Q6Yyx2OmN9LCsraTticmVhaztjYXNlIiQiOnRbdC5sZW5ndGhdPXt0OiJ0Iix2OiIkIn0sKytpO2JyZWFrO2RlZmF1bHQ6aWYoIiwkLSsvKCk6IV4mJ357fTw+PeKCrGFjZmlqa2xvcHFydHV2d3h6UCIuaW5kZXhPZihjKT09PS0xKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkIGNoYXJhY3RlciAiK2MrIiBpbiAiK2UpO3RbdC5sZW5ndGhdPXt0OiJ0Iix2OmN9LCsraTticmVha312YXIgZz0wLEY9MCx5O2ZvcihpPXQubGVuZ3RoLTEsZj0idCI7aT49MDstLWkpc3dpdGNoKHRbaV0udCl7Y2FzZSJoIjpjYXNlIkgiOnRbaV0udD14LGY9ImgiLGc8MSYmKGc9MSk7YnJlYWs7Y2FzZSJzIjooeT10W2ldLnYubWF0Y2goL1wuMCskLykpJiYoRj1NYXRoLm1heChGLHlbMF0ubGVuZ3RoLTEpKSxnPDMmJihnPTMpO2Nhc2UiZCI6Y2FzZSJ5IjpjYXNlIk0iOmNhc2UiZSI6Zj10W2ldLnQ7YnJlYWs7Y2FzZSJtIjpmPT09InMiJiYodFtpXS50PSJNIixnPDImJihnPTIpKTticmVhaztjYXNlIlgiOmJyZWFrO2Nhc2UiWiI6ZzwxJiZ0W2ldLnYubWF0Y2goL1tIaF0vKSYmKGc9MSksZzwyJiZ0W2ldLnYubWF0Y2goL1tNbV0vKSYmKGc9MiksZzwzJiZ0W2ldLnYubWF0Y2goL1tTc10vKSYmKGc9Myl9c3dpdGNoKGcpe2Nhc2UgMDpicmVhaztjYXNlIDE6by51Pj0uNSYmKG8udT0wLCsrby5TKSxvLlM+PTYwJiYoby5TPTAsKytvLk0pLG8uTT49NjAmJihvLk09MCwrK28uSCk7YnJlYWs7Y2FzZSAyOm8udT49LjUmJihvLnU9MCwrK28uUyksby5TPj02MCYmKG8uUz0wLCsrby5NKTticmVha312YXIgXz0iIixOO2ZvcihpPTA7aTx0Lmxlbmd0aDsrK2kpc3dpdGNoKHRbaV0udCl7Y2FzZSJ0IjpjYXNlIlQiOmNhc2UiICI6Y2FzZSJEIjpicmVhaztjYXNlIlgiOnRbaV0udj0iIix0W2ldLnQ9IjsiO2JyZWFrO2Nhc2UiZCI6Y2FzZSJtIjpjYXNlInkiOmNhc2UiaCI6Y2FzZSJIIjpjYXNlIk0iOmNhc2UicyI6Y2FzZSJlIjpjYXNlImIiOmNhc2UiWiI6dFtpXS52PUZpKHRbaV0udC5jaGFyQ29kZUF0KDApLHRbaV0udixvLEYpLHRbaV0udD0idCI7YnJlYWs7Y2FzZSJuIjpjYXNlIj8iOmZvcihOPWkrMTt0W05dIT1udWxsJiYoKGM9dFtOXS50KT09PSI/Inx8Yz09PSJEInx8KGM9PT0iICJ8fGM9PT0idCIpJiZ0W04rMV0hPW51bGwmJih0W04rMV0udD09PSI/Inx8dFtOKzFdLnQ9PT0idCImJnRbTisxXS52PT09Ii8iKXx8dFtpXS50PT09IigiJiYoYz09PSIgInx8Yz09PSJuInx8Yz09PSIpIil8fGM9PT0idCImJih0W05dLnY9PT0iLyJ8fHRbTl0udj09PSIgIiYmdFtOKzFdIT1udWxsJiZ0W04rMV0udD09Ij8iKSk7KXRbaV0udis9dFtOXS52LHRbTl09e3Y6IiIsdDoiOyJ9LCsrTjtfKz10W2ldLnYsaT1OLTE7YnJlYWs7Y2FzZSJHIjp0W2ldLnQ9InQiLHRbaV0udj1RcihhLHIpO2JyZWFrfXZhciBiPSIiLEksQTtpZihfLmxlbmd0aD4wKXtfLmNoYXJDb2RlQXQoMCk9PTQwPyhJPWE8MCYmXy5jaGFyQ29kZUF0KDApPT09NDU/LWE6YSxBPUlyKCJuIixfLEkpKTooST1hPDAmJm4+MT8tYTphLEE9SXIoIm4iLF8sSSksSTwwJiZ0WzBdJiZ0WzBdLnQ9PSJ0IiYmKEE9QS5zdWJzdHIoMSksdFswXS52PSItIit0WzBdLnYpKSxOPUEubGVuZ3RoLTE7dmFyIFY9dC5sZW5ndGg7Zm9yKGk9MDtpPHQubGVuZ3RoOysraSlpZih0W2ldIT1udWxsJiZ0W2ldLnQhPSJ0IiYmdFtpXS52LmluZGV4T2YoIi4iKT4tMSl7Vj1pO2JyZWFrfXZhciBEPXQubGVuZ3RoO2lmKFY9PT10Lmxlbmd0aCYmQS5pbmRleE9mKCJFIik9PT0tMSl7Zm9yKGk9dC5sZW5ndGgtMTtpPj0wOy0taSl0W2ldPT1udWxsfHwibj8iLmluZGV4T2YodFtpXS50KT09PS0xfHwoTj49dFtpXS52Lmxlbmd0aC0xPyhOLT10W2ldLnYubGVuZ3RoLHRbaV0udj1BLnN1YnN0cihOKzEsdFtpXS52Lmxlbmd0aCkpOk48MD90W2ldLnY9IiI6KHRbaV0udj1BLnN1YnN0cigwLE4rMSksTj0tMSksdFtpXS50PSJ0IixEPWkpO04+PTAmJkQ8dC5sZW5ndGgmJih0W0RdLnY9QS5zdWJzdHIoMCxOKzEpK3RbRF0udil9ZWxzZSBpZihWIT09dC5sZW5ndGgmJkEuaW5kZXhPZigiRSIpPT09LTEpe2ZvcihOPUEuaW5kZXhPZigiLiIpLTEsaT1WO2k+PTA7LS1pKWlmKCEodFtpXT09bnVsbHx8Im4/Ii5pbmRleE9mKHRbaV0udCk9PT0tMSkpe2ZvcihsPXRbaV0udi5pbmRleE9mKCIuIik+LTEmJmk9PT1WP3RbaV0udi5pbmRleE9mKCIuIiktMTp0W2ldLnYubGVuZ3RoLTEsYj10W2ldLnYuc3Vic3RyKGwrMSk7bD49MDstLWwpTj49MCYmKHRbaV0udi5jaGFyQXQobCk9PT0iMCJ8fHRbaV0udi5jaGFyQXQobCk9PT0iIyIpJiYoYj1BLmNoYXJBdChOLS0pK2IpO3RbaV0udj1iLHRbaV0udD0idCIsRD1pfWZvcihOPj0wJiZEPHQubGVuZ3RoJiYodFtEXS52PUEuc3Vic3RyKDAsTisxKSt0W0RdLnYpLE49QS5pbmRleE9mKCIuIikrMSxpPVY7aTx0Lmxlbmd0aDsrK2kpaWYoISh0W2ldPT1udWxsfHwibj8oIi5pbmRleE9mKHRbaV0udCk9PT0tMSYmaSE9PVYpKXtmb3IobD10W2ldLnYuaW5kZXhPZigiLiIpPi0xJiZpPT09Vj90W2ldLnYuaW5kZXhPZigiLiIpKzE6MCxiPXRbaV0udi5zdWJzdHIoMCxsKTtsPHRbaV0udi5sZW5ndGg7KytsKU48QS5sZW5ndGgmJihiKz1BLmNoYXJBdChOKyspKTt0W2ldLnY9Yix0W2ldLnQ9InQiLEQ9aX19fWZvcihpPTA7aTx0Lmxlbmd0aDsrK2kpdFtpXSE9bnVsbCYmIm4/Ii5pbmRleE9mKHRbaV0udCk+LTEmJihJPW4+MSYmYTwwJiZpPjAmJnRbaS0xXS52PT09Ii0iPy1hOmEsdFtpXS52PUlyKHRbaV0udCx0W2ldLnYsSSksdFtpXS50PSJ0Iik7dmFyIHo9IiI7Zm9yKGk9MDtpIT09dC5sZW5ndGg7KytpKXRbaV0hPW51bGwmJih6Kz10W2ldLnYpO3JldHVybiB6fXZhciAkMD0vXFsoPXw+Wz1dP3w8Wz49XT8pKC0/XGQrKD86XC5cZCopPylcXS87ZnVuY3Rpb24gejAoZSxhKXtpZihhPT1udWxsKXJldHVybiExO3ZhciByPXBhcnNlRmxvYXQoYVsyXSk7c3dpdGNoKGFbMV0pe2Nhc2UiPSI6aWYoZT09cilyZXR1cm4hMDticmVhaztjYXNlIj4iOmlmKGU+cilyZXR1cm4hMDticmVhaztjYXNlIjwiOmlmKGU8cilyZXR1cm4hMDticmVhaztjYXNlIjw+IjppZihlIT1yKXJldHVybiEwO2JyZWFrO2Nhc2UiPj0iOmlmKGU+PXIpcmV0dXJuITA7YnJlYWs7Y2FzZSI8PSI6aWYoZTw9cilyZXR1cm4hMDticmVha31yZXR1cm4hMX1mdW5jdGlvbiBNaShlLGEpe3ZhciByPVBpKGUpLG49ci5sZW5ndGgsdD1yW24tMV0uaW5kZXhPZigiQCIpO2lmKG48NCYmdD4tMSYmLS1uLHIubGVuZ3RoPjQpdGhyb3cgbmV3IEVycm9yKCJjYW5ub3QgZmluZCByaWdodCBmb3JtYXQgZm9yIHwiK3Iuam9pbigifCIpKyJ8Iik7aWYodHlwZW9mIGEhPSJudW1iZXIiKXJldHVybls0LHIubGVuZ3RoPT09NHx8dD4tMT9yW3IubGVuZ3RoLTFdOiJAIl07c3dpdGNoKHIubGVuZ3RoKXtjYXNlIDE6cj10Pi0xP1siR2VuZXJhbCIsIkdlbmVyYWwiLCJHZW5lcmFsIixyWzBdXTpbclswXSxyWzBdLHJbMF0sIkAiXTticmVhaztjYXNlIDI6cj10Pi0xP1tyWzBdLHJbMF0sclswXSxyWzFdXTpbclswXSxyWzFdLHJbMF0sIkAiXTticmVhaztjYXNlIDM6cj10Pi0xP1tyWzBdLHJbMV0sclswXSxyWzJdXTpbclswXSxyWzFdLHJbMl0sIkAiXTticmVha312YXIgcz1hPjA/clswXTphPDA/clsxXTpyWzJdO2lmKHJbMF0uaW5kZXhPZigiWyIpPT09LTEmJnJbMV0uaW5kZXhPZigiWyIpPT09LTEpcmV0dXJuW24sc107aWYoclswXS5tYXRjaCgvXFtbPTw+XS8pIT1udWxsfHxyWzFdLm1hdGNoKC9cW1s9PD5dLykhPW51bGwpe3ZhciBpPXJbMF0ubWF0Y2goJDApLGM9clsxXS5tYXRjaCgkMCk7cmV0dXJuIHowKGEsaSk/W24sclswXV06ejAoYSxjKT9bbixyWzFdXTpbbixyW2khPW51bGwmJmMhPW51bGw/MjoxXV19cmV0dXJuW24sc119ZnVuY3Rpb24geHIoZSxhLHIpe3I9PW51bGwmJihyPXt9KTt2YXIgbj0iIjtzd2l0Y2godHlwZW9mIGUpe2Nhc2Uic3RyaW5nIjplPT0ibS9kL3l5IiYmci5kYXRlTkY/bj1yLmRhdGVORjpuPWU7YnJlYWs7Y2FzZSJudW1iZXIiOmU9PTE0JiZyLmRhdGVORj9uPXIuZGF0ZU5GOm49KHIudGFibGUhPW51bGw/ci50YWJsZTpkZSlbZV0sbj09bnVsbCYmKG49ci50YWJsZSYmci50YWJsZVtJMFtlXV18fGRlW0kwW2VdXSksbj09bnVsbCYmKG49bWlbZV18fCJHZW5lcmFsIik7YnJlYWt9aWYodHQobiwwKSlyZXR1cm4gUXIoYSxyKTthIGluc3RhbmNlb2YgRGF0ZSYmKGE9UDAoYSxyLmRhdGUxOTA0KSk7dmFyIHQ9TWkobixhKTtpZih0dCh0WzFdKSlyZXR1cm4gUXIoYSxyKTtpZihhPT09ITApYT0iVFJVRSI7ZWxzZSBpZihhPT09ITEpYT0iRkFMU0UiO2Vsc2UgaWYoYT09PSIifHxhPT1udWxsKXJldHVybiIiO3JldHVybiBMaSh0WzFdLGEscix0WzBdKX1mdW5jdGlvbiBlYShlLGEpe2lmKHR5cGVvZiBhIT0ibnVtYmVyIil7YT0rYXx8LTE7Zm9yKHZhciByPTA7cjwzOTI7KytyKXtpZihkZVtyXT09bnVsbCl7YTwwJiYoYT1yKTtjb250aW51ZX1pZihkZVtyXT09ZSl7YT1yO2JyZWFrfX1hPDAmJihhPTM5MSl9cmV0dXJuIGRlW2FdPWUsYX1mdW5jdGlvbiBLMCgpe2RlPWdpKCl9dmFyIEJpPXs1OiciJCIjLCMjMF8pO1xcKCIkIiMsIyMwXFwpJyw2OiciJCIjLCMjMF8pO1tSZWRdXFwoIiQiIywjIzBcXCknLDc6JyIkIiMsIyMwLjAwXyk7XFwoIiQiIywjIzAuMDBcXCknLDg6JyIkIiMsIyMwLjAwXyk7W1JlZF1cXCgiJCIjLCMjMC4wMFxcKScsMjM6IkdlbmVyYWwiLDI0OiJHZW5lcmFsIiwyNToiR2VuZXJhbCIsMjY6IkdlbmVyYWwiLDI3OiJtL2QveXkiLDI4OiJtL2QveXkiLDI5OiJtL2QveXkiLDMwOiJtL2QveXkiLDMxOiJtL2QveXkiLDMyOiJoOm1tOnNzIiwzMzoiaDptbTpzcyIsMzQ6Img6bW06c3MiLDM1OiJoOm1tOnNzIiwzNjoibS9kL3l5Iiw0MTonXygqICMsIyMwXyk7XygqICgjLCMjMCk7XygqICItIl8pO18oQF8pJyw0MjonXygiJCIqICMsIyMwXyk7XygiJCIqICgjLCMjMCk7XygiJCIqICItIl8pO18oQF8pJyw0MzonXygqICMsIyMwLjAwXyk7XygqICgjLCMjMC4wMCk7XygqICItIj8/Xyk7XyhAXyknLDQ0OidfKCIkIiogIywjIzAuMDBfKTtfKCIkIiogKCMsIyMwLjAwKTtfKCIkIiogIi0iPz9fKTtfKEBfKScsNTA6Im0vZC95eSIsNTE6Im0vZC95eSIsNTI6Im0vZC95eSIsNTM6Im0vZC95eSIsNTQ6Im0vZC95eSIsNTU6Im0vZC95eSIsNTY6Im0vZC95eSIsNTc6Im0vZC95eSIsNTg6Im0vZC95eSIsNTk6IjAiLDYwOiIwLjAwIiw2MToiIywjIzAiLDYyOiIjLCMjMC4wMCIsNjM6JyIkIiMsIyMwXyk7XFwoIiQiIywjIzBcXCknLDY0OiciJCIjLCMjMF8pO1tSZWRdXFwoIiQiIywjIzBcXCknLDY1OiciJCIjLCMjMC4wMF8pO1xcKCIkIiMsIyMwLjAwXFwpJyw2NjonIiQiIywjIzAuMDBfKTtbUmVkXVxcKCIkIiMsIyMwLjAwXFwpJyw2NzoiMCUiLDY4OiIwLjAwJSIsNjk6IiMgPy8/Iiw3MDoiIyA/Py8/PyIsNzE6Im0vZC95eSIsNzI6Im0vZC95eSIsNzM6ImQtbW1tLXl5Iiw3NDoiZC1tbW0iLDc1OiJtbW0teXkiLDc2OiJoOm1tIiw3NzoiaDptbTpzcyIsNzg6Im0vZC95eSBoOm1tIiw3OToibW06c3MiLDgwOiJbaF06bW06c3MiLDgxOiJtbXNzLjAifSxZMD0vW2REXSt8W21NXSt8W3lZZUVdK3xbSGhdK3xbU3NdKy9nO2Z1bmN0aW9uIGJpKGUpe3ZhciBhPXR5cGVvZiBlPT0ibnVtYmVyIj9kZVtlXTplO3JldHVybiBhPWEucmVwbGFjZShZMCwiKFxcZCspIiksbmV3IFJlZ0V4cCgiXiIrYSsiJCIpfWZ1bmN0aW9uIFVpKGUsYSxyKXt2YXIgbj0tMSx0PS0xLHM9LTEsaT0tMSxjPS0xLGY9LTE7KGEubWF0Y2goWTApfHxbXSkuZm9yRWFjaChmdW5jdGlvbihoLHgpe3ZhciBkPXBhcnNlSW50KHJbeCsxXSwxMCk7c3dpdGNoKGgudG9Mb3dlckNhc2UoKS5jaGFyQXQoMCkpe2Nhc2UieSI6bj1kO2JyZWFrO2Nhc2UiZCI6cz1kO2JyZWFrO2Nhc2UiaCI6aT1kO2JyZWFrO2Nhc2UicyI6Zj1kO2JyZWFrO2Nhc2UibSI6aT49MD9jPWQ6dD1kO2JyZWFrfX0pLGY+PTAmJmM9PS0xJiZ0Pj0wJiYoYz10LHQ9LTEpO3ZhciBvPSgiIisobj49MD9uOm5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSkpLnNsaWNlKC00KSsiLSIrKCIwMCIrKHQ+PTE/dDoxKSkuc2xpY2UoLTIpKyItIisoIjAwIisocz49MT9zOjEpKS5zbGljZSgtMik7by5sZW5ndGg9PTcmJihvPSIwIitvKSxvLmxlbmd0aD09OCYmKG89IjIwIitvKTt2YXIgbD0oIjAwIisoaT49MD9pOjApKS5zbGljZSgtMikrIjoiKygiMDAiKyhjPj0wP2M6MCkpLnNsaWNlKC0yKSsiOiIrKCIwMCIrKGY+PTA/ZjowKSkuc2xpY2UoLTIpO3JldHVybiBpPT0tMSYmYz09LTEmJmY9PS0xP286bj09LTEmJnQ9PS0xJiZzPT0tMT9sOm8rIlQiK2x9dmFyIEhpPWZ1bmN0aW9uKCl7dmFyIGU9e307ZS52ZXJzaW9uPSIxLjIuMCI7ZnVuY3Rpb24gYSgpe2Zvcih2YXIgQT0wLFY9bmV3IEFycmF5KDI1NiksRD0wO0QhPTI1NjsrK0QpQT1ELEE9QSYxPy0zMDY2NzQ5MTJeQT4+PjE6QT4+PjEsQT1BJjE/LTMwNjY3NDkxMl5BPj4+MTpBPj4+MSxBPUEmMT8tMzA2Njc0OTEyXkE+Pj4xOkE+Pj4xLEE9QSYxPy0zMDY2NzQ5MTJeQT4+PjE6QT4+PjEsQT1BJjE/LTMwNjY3NDkxMl5BPj4+MTpBPj4+MSxBPUEmMT8tMzA2Njc0OTEyXkE+Pj4xOkE+Pj4xLEE9QSYxPy0zMDY2NzQ5MTJeQT4+PjE6QT4+PjEsQT1BJjE/LTMwNjY3NDkxMl5BPj4+MTpBPj4+MSxWW0RdPUE7cmV0dXJuIHR5cGVvZiBJbnQzMkFycmF5PCJ1Ij9uZXcgSW50MzJBcnJheShWKTpWfXZhciByPWEoKTtmdW5jdGlvbiBuKEEpe3ZhciBWPTAsRD0wLHo9MCxHPXR5cGVvZiBJbnQzMkFycmF5PCJ1Ij9uZXcgSW50MzJBcnJheSg0MDk2KTpuZXcgQXJyYXkoNDA5Nik7Zm9yKHo9MDt6IT0yNTY7Kyt6KUdbel09QVt6XTtmb3Ioej0wO3ohPTI1NjsrK3opZm9yKEQ9QVt6XSxWPTI1Nit6O1Y8NDA5NjtWKz0yNTYpRD1HW1ZdPUQ+Pj44XkFbRCYyNTVdO3ZhciBQPVtdO2Zvcih6PTE7eiE9MTY7Kyt6KVBbei0xXT10eXBlb2YgSW50MzJBcnJheTwidSI/Ry5zdWJhcnJheSh6KjI1Nix6KjI1NisyNTYpOkcuc2xpY2UoeioyNTYseioyNTYrMjU2KTtyZXR1cm4gUH12YXIgdD1uKHIpLHM9dFswXSxpPXRbMV0sYz10WzJdLGY9dFszXSxvPXRbNF0sbD10WzVdLGg9dFs2XSx4PXRbN10sZD10WzhdLHY9dFs5XSx1PXRbMTBdLGc9dFsxMV0sRj10WzEyXSx5PXRbMTNdLF89dFsxNF07ZnVuY3Rpb24gTihBLFYpe2Zvcih2YXIgRD1WXi0xLHo9MCxHPUEubGVuZ3RoO3o8RzspRD1EPj4+OF5yWyhEXkEuY2hhckNvZGVBdCh6KyspKSYyNTVdO3JldHVybn5EfWZ1bmN0aW9uIGIoQSxWKXtmb3IodmFyIEQ9Vl4tMSx6PUEubGVuZ3RoLTE1LEc9MDtHPHo7KUQ9X1tBW0crK11eRCYyNTVdXnlbQVtHKytdXkQ+PjgmMjU1XV5GW0FbRysrXV5EPj4xNiYyNTVdXmdbQVtHKytdXkQ+Pj4yNF1edVtBW0crK11dXnZbQVtHKytdXV5kW0FbRysrXV1eeFtBW0crK11dXmhbQVtHKytdXV5sW0FbRysrXV1eb1tBW0crK11dXmZbQVtHKytdXV5jW0FbRysrXV1eaVtBW0crK11dXnNbQVtHKytdXV5yW0FbRysrXV07Zm9yKHorPTE1O0c8ejspRD1EPj4+OF5yWyhEXkFbRysrXSkmMjU1XTtyZXR1cm5+RH1mdW5jdGlvbiBJKEEsVil7Zm9yKHZhciBEPVZeLTEsej0wLEc9QS5sZW5ndGgsUD0wLEo9MDt6PEc7KVA9QS5jaGFyQ29kZUF0KHorKyksUDwxMjg/RD1EPj4+OF5yWyhEXlApJjI1NV06UDwyMDQ4PyhEPUQ+Pj44XnJbKEReKDE5MnxQPj42JjMxKSkmMjU1XSxEPUQ+Pj44XnJbKEReKDEyOHxQJjYzKSkmMjU1XSk6UD49NTUyOTYmJlA8NTczNDQ/KFA9KFAmMTAyMykrNjQsSj1BLmNoYXJDb2RlQXQoeisrKSYxMDIzLEQ9RD4+PjheclsoRF4oMjQwfFA+PjgmNykpJjI1NV0sRD1EPj4+OF5yWyhEXigxMjh8UD4+MiY2MykpJjI1NV0sRD1EPj4+OF5yWyhEXigxMjh8Sj4+NiYxNXwoUCYzKTw8NCkpJjI1NV0sRD1EPj4+OF5yWyhEXigxMjh8SiY2MykpJjI1NV0pOihEPUQ+Pj44XnJbKEReKDIyNHxQPj4xMiYxNSkpJjI1NV0sRD1EPj4+OF5yWyhEXigxMjh8UD4+NiY2MykpJjI1NV0sRD1EPj4+OF5yWyhEXigxMjh8UCY2MykpJjI1NV0pO3JldHVybn5EfXJldHVybiBlLnRhYmxlPXIsZS5ic3RyPU4sZS5idWY9YixlLnN0cj1JLGV9KCksbWU9ZnVuY3Rpb24oKXt2YXIgYT17fTthLnZlcnNpb249IjEuMi4xIjtmdW5jdGlvbiByKHAsVCl7Zm9yKHZhciBtPXAuc3BsaXQoIi8iKSxFPVQuc3BsaXQoIi8iKSxrPTAsdz0wLE09TWF0aC5taW4obS5sZW5ndGgsRS5sZW5ndGgpO2s8TTsrK2spe2lmKHc9bVtrXS5sZW5ndGgtRVtrXS5sZW5ndGgpcmV0dXJuIHc7aWYobVtrXSE9RVtrXSlyZXR1cm4gbVtrXTxFW2tdPy0xOjF9cmV0dXJuIG0ubGVuZ3RoLUUubGVuZ3RofWZ1bmN0aW9uIG4ocCl7aWYocC5jaGFyQXQocC5sZW5ndGgtMSk9PSIvIilyZXR1cm4gcC5zbGljZSgwLC0xKS5pbmRleE9mKCIvIik9PT0tMT9wOm4ocC5zbGljZSgwLC0xKSk7dmFyIFQ9cC5sYXN0SW5kZXhPZigiLyIpO3JldHVybiBUPT09LTE/cDpwLnNsaWNlKDAsVCsxKX1mdW5jdGlvbiB0KHApe2lmKHAuY2hhckF0KHAubGVuZ3RoLTEpPT0iLyIpcmV0dXJuIHQocC5zbGljZSgwLC0xKSk7dmFyIFQ9cC5sYXN0SW5kZXhPZigiLyIpO3JldHVybiBUPT09LTE/cDpwLnNsaWNlKFQrMSl9ZnVuY3Rpb24gcyhwLFQpe3R5cGVvZiBUPT0ic3RyaW5nIiYmKFQ9bmV3IERhdGUoVCkpO3ZhciBtPVQuZ2V0SG91cnMoKTttPW08PDZ8VC5nZXRNaW51dGVzKCksbT1tPDw1fFQuZ2V0U2Vjb25kcygpPj4+MSxwLndyaXRlX3NoaWZ0KDIsbSk7dmFyIEU9VC5nZXRGdWxsWWVhcigpLTE5ODA7RT1FPDw0fFQuZ2V0TW9udGgoKSsxLEU9RTw8NXxULmdldERhdGUoKSxwLndyaXRlX3NoaWZ0KDIsRSl9ZnVuY3Rpb24gaShwKXt2YXIgVD1wLnJlYWRfc2hpZnQoMikmNjU1MzUsbT1wLnJlYWRfc2hpZnQoMikmNjU1MzUsRT1uZXcgRGF0ZSxrPW0mMzE7bT4+Pj01O3ZhciB3PW0mMTU7bT4+Pj00LEUuc2V0TWlsbGlzZWNvbmRzKDApLEUuc2V0RnVsbFllYXIobSsxOTgwKSxFLnNldE1vbnRoKHctMSksRS5zZXREYXRlKGspO3ZhciBNPVQmMzE7VD4+Pj01O3ZhciBYPVQmNjM7cmV0dXJuIFQ+Pj49NixFLnNldEhvdXJzKFQpLEUuc2V0TWludXRlcyhYKSxFLnNldFNlY29uZHMoTTw8MSksRX1mdW5jdGlvbiBjKHApeyRlKHAsMCk7Zm9yKHZhciBUPXt9LG09MDtwLmw8PXAubGVuZ3RoLTQ7KXt2YXIgRT1wLnJlYWRfc2hpZnQoMiksaz1wLnJlYWRfc2hpZnQoMiksdz1wLmwrayxNPXt9O3N3aXRjaChFKXtjYXNlIDIxNTg5Om09cC5yZWFkX3NoaWZ0KDEpLG0mMSYmKE0ubXRpbWU9cC5yZWFkX3NoaWZ0KDQpKSxrPjUmJihtJjImJihNLmF0aW1lPXAucmVhZF9zaGlmdCg0KSksbSY0JiYoTS5jdGltZT1wLnJlYWRfc2hpZnQoNCkpKSxNLm10aW1lJiYoTS5tdD1uZXcgRGF0ZShNLm10aW1lKjFlMykpO2JyZWFrfXAubD13LFRbRV09TX1yZXR1cm4gVH12YXIgZjtmdW5jdGlvbiBvKCl7cmV0dXJuIGZ8fChmPXt9KX1mdW5jdGlvbiBsKHAsVCl7aWYocFswXT09ODAmJnBbMV09PTc1KXJldHVybiBsaShwLFQpO2lmKChwWzBdfDMyKT09MTA5JiYocFsxXXwzMik9PTEwNSlyZXR1cm4gQWQocCxUKTtpZihwLmxlbmd0aDw1MTIpdGhyb3cgbmV3IEVycm9yKCJDRkIgZmlsZSBzaXplICIrcC5sZW5ndGgrIiA8IDUxMiIpO3ZhciBtPTMsRT01MTIsaz0wLHc9MCxNPTAsWD0wLEw9MCxCPVtdLEg9cC5zbGljZSgwLDUxMik7JGUoSCwwKTt2YXIgWT1oKEgpO3N3aXRjaChtPVlbMF0sbSl7Y2FzZSAzOkU9NTEyO2JyZWFrO2Nhc2UgNDpFPTQwOTY7YnJlYWs7Y2FzZSAwOmlmKFlbMV09PTApcmV0dXJuIGxpKHAsVCk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIk1ham9yIFZlcnNpb246IEV4cGVjdGVkIDMgb3IgNCBzYXcgIittKX1FIT09NTEyJiYoSD1wLnNsaWNlKDAsRSksJGUoSCwyOCkpO3ZhciBRPXAuc2xpY2UoMCxFKTt4KEgsbSk7dmFyIHNlPUgucmVhZF9zaGlmdCg0LCJpIik7aWYobT09PTMmJnNlIT09MCl0aHJvdyBuZXcgRXJyb3IoIiMgRGlyZWN0b3J5IFNlY3RvcnM6IEV4cGVjdGVkIDAgc2F3ICIrc2UpO0gubCs9NCxNPUgucmVhZF9zaGlmdCg0LCJpIiksSC5sKz00LEguY2hrKCIwMDEwMDAwMCIsIk1pbmkgU3RyZWFtIEN1dG9mZiBTaXplOiAiKSxYPUgucmVhZF9zaGlmdCg0LCJpIiksaz1ILnJlYWRfc2hpZnQoNCwiaSIpLEw9SC5yZWFkX3NoaWZ0KDQsImkiKSx3PUgucmVhZF9zaGlmdCg0LCJpIik7Zm9yKHZhciBaPS0xLHRlPTA7dGU8MTA5JiYoWj1ILnJlYWRfc2hpZnQoNCwiaSIpLCEoWjwwKSk7Kyt0ZSlCW3RlXT1aO3ZhciB4ZT1kKHAsRSk7ZyhMLHcseGUsRSxCKTt2YXIgQ2U9eSh4ZSxNLEIsRSk7Q2VbTV0ubmFtZT0iIURpcmVjdG9yeSIsaz4wJiZYIT09SiYmKENlW1hdLm5hbWU9IiFNaW5pRkFUIiksQ2VbQlswXV0ubmFtZT0iIUZBVCIsQ2UuZmF0X2FkZHJzPUIsQ2Uuc3N6PUU7dmFyIHllPXt9LGVyPVtdLHFhPVtdLFFhPVtdO18oTSxDZSx4ZSxlcixrLHllLHFhLFgpLHYocWEsUWEsZXIpLGVyLnNoaWZ0KCk7dmFyIGV0PXtGaWxlSW5kZXg6cWEsRnVsbFBhdGhzOlFhfTtyZXR1cm4gVCYmVC5yYXcmJihldC5yYXc9e2hlYWRlcjpRLHNlY3RvcnM6eGV9KSxldH1mdW5jdGlvbiBoKHApe2lmKHBbcC5sXT09ODAmJnBbcC5sKzFdPT03NSlyZXR1cm5bMCwwXTtwLmNoayhmZSwiSGVhZGVyIFNpZ25hdHVyZTogIikscC5sKz0xNjt2YXIgVD1wLnJlYWRfc2hpZnQoMiwidSIpO3JldHVybltwLnJlYWRfc2hpZnQoMiwidSIpLFRdfWZ1bmN0aW9uIHgocCxUKXt2YXIgbT05O3N3aXRjaChwLmwrPTIsbT1wLnJlYWRfc2hpZnQoMikpe2Nhc2UgOTppZihUIT0zKXRocm93IG5ldyBFcnJvcigiU2VjdG9yIFNoaWZ0OiBFeHBlY3RlZCA5IHNhdyAiK20pO2JyZWFrO2Nhc2UgMTI6aWYoVCE9NCl0aHJvdyBuZXcgRXJyb3IoIlNlY3RvciBTaGlmdDogRXhwZWN0ZWQgMTIgc2F3ICIrbSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlNlY3RvciBTaGlmdDogRXhwZWN0ZWQgOSBvciAxMiBzYXcgIittKX1wLmNoaygiMDYwMCIsIk1pbmkgU2VjdG9yIFNoaWZ0OiAiKSxwLmNoaygiMDAwMDAwMDAwMDAwIiwiUmVzZXJ2ZWQ6ICIpfWZ1bmN0aW9uIGQocCxUKXtmb3IodmFyIG09TWF0aC5jZWlsKHAubGVuZ3RoL1QpLTEsRT1bXSxrPTE7azxtOysraylFW2stMV09cC5zbGljZShrKlQsKGsrMSkqVCk7cmV0dXJuIEVbbS0xXT1wLnNsaWNlKG0qVCksRX1mdW5jdGlvbiB2KHAsVCxtKXtmb3IodmFyIEU9MCxrPTAsdz0wLE09MCxYPTAsTD1tLmxlbmd0aCxCPVtdLEg9W107RTxMOysrRSlCW0VdPUhbRV09RSxUW0VdPW1bRV07Zm9yKDtYPEgubGVuZ3RoOysrWClFPUhbWF0saz1wW0VdLkwsdz1wW0VdLlIsTT1wW0VdLkMsQltFXT09PUUmJihrIT09LTEmJkJba10hPT1rJiYoQltFXT1CW2tdKSx3IT09LTEmJkJbd10hPT13JiYoQltFXT1CW3ddKSksTSE9PS0xJiYoQltNXT1FKSxrIT09LTEmJkUhPUJbRV0mJihCW2tdPUJbRV0sSC5sYXN0SW5kZXhPZihrKTxYJiZILnB1c2goaykpLHchPT0tMSYmRSE9QltFXSYmKEJbd109QltFXSxILmxhc3RJbmRleE9mKHcpPFgmJkgucHVzaCh3KSk7Zm9yKEU9MTtFPEw7KytFKUJbRV09PT1FJiYodyE9PS0xJiZCW3ddIT09dz9CW0VdPUJbd106ayE9PS0xJiZCW2tdIT09ayYmKEJbRV09QltrXSkpO2ZvcihFPTE7RTxMOysrRSlpZihwW0VdLnR5cGUhPT0wKXtpZihYPUUsWCE9QltYXSlkbyBYPUJbWF0sVFtFXT1UW1hdKyIvIitUW0VdO3doaWxlKFghPT0wJiZCW1hdIT09LTEmJlghPUJbWF0pO0JbRV09LTF9Zm9yKFRbMF0rPSIvIixFPTE7RTxMOysrRSlwW0VdLnR5cGUhPT0yJiYoVFtFXSs9Ii8iKX1mdW5jdGlvbiB1KHAsVCxtKXtmb3IodmFyIEU9cC5zdGFydCxrPXAuc2l6ZSx3PVtdLE09RTttJiZrPjAmJk0+PTA7KXcucHVzaChULnNsaWNlKE0qUCxNKlArUCkpLGstPVAsTT1hYShtLE0qNCk7cmV0dXJuIHcubGVuZ3RoPT09MD9iZSgwKTpXcih3KS5zbGljZSgwLHAuc2l6ZSl9ZnVuY3Rpb24gZyhwLFQsbSxFLGspe3ZhciB3PUo7aWYocD09PUope2lmKFQhPT0wKXRocm93IG5ldyBFcnJvcigiRElGQVQgY2hhaW4gc2hvcnRlciB0aGFuIGV4cGVjdGVkIil9ZWxzZSBpZihwIT09LTEpe3ZhciBNPW1bcF0sWD0oRT4+PjIpLTE7aWYoIU0pcmV0dXJuO2Zvcih2YXIgTD0wO0w8WCYmKHc9YWEoTSxMKjQpKSE9PUo7KytMKWsucHVzaCh3KTtnKGFhKE0sRS00KSxULTEsbSxFLGspfX1mdW5jdGlvbiBGKHAsVCxtLEUsayl7dmFyIHc9W10sTT1bXTtrfHwoaz1bXSk7dmFyIFg9RS0xLEw9MCxCPTA7Zm9yKEw9VDtMPj0wOyl7a1tMXT0hMCx3W3cubGVuZ3RoXT1MLE0ucHVzaChwW0xdKTt2YXIgSD1tW01hdGguZmxvb3IoTCo0L0UpXTtpZihCPUwqNCZYLEU8NCtCKXRocm93IG5ldyBFcnJvcigiRkFUIGJvdW5kYXJ5IGNyb3NzZWQ6ICIrTCsiIDQgIitFKTtpZighcFtIXSlicmVhaztMPWFhKHBbSF0sQil9cmV0dXJue25vZGVzOncsZGF0YTp4bihbTV0pfX1mdW5jdGlvbiB5KHAsVCxtLEUpe3ZhciBrPXAubGVuZ3RoLHc9W10sTT1bXSxYPVtdLEw9W10sQj1FLTEsSD0wLFk9MCxRPTAsc2U9MDtmb3IoSD0wO0g8azsrK0gpaWYoWD1bXSxRPUgrVCxRPj1rJiYoUS09ayksIU1bUV0pe0w9W107dmFyIFo9W107Zm9yKFk9UTtZPj0wOyl7WltZXT0hMCxNW1ldPSEwLFhbWC5sZW5ndGhdPVksTC5wdXNoKHBbWV0pO3ZhciB0ZT1tW01hdGguZmxvb3IoWSo0L0UpXTtpZihzZT1ZKjQmQixFPDQrc2UpdGhyb3cgbmV3IEVycm9yKCJGQVQgYm91bmRhcnkgY3Jvc3NlZDogIitZKyIgNCAiK0UpO2lmKCFwW3RlXXx8KFk9YWEocFt0ZV0sc2UpLFpbWV0pKWJyZWFrfXdbUV09e25vZGVzOlgsZGF0YTp4bihbTF0pfX1yZXR1cm4gd31mdW5jdGlvbiBfKHAsVCxtLEUsayx3LE0sWCl7Zm9yKHZhciBMPTAsQj1FLmxlbmd0aD8yOjAsSD1UW3BdLmRhdGEsWT0wLFE9MCxzZTtZPEgubGVuZ3RoO1krPTEyOCl7dmFyIFo9SC5zbGljZShZLFkrMTI4KTskZShaLDY0KSxRPVoucmVhZF9zaGlmdCgyKSxzZT1CdChaLDAsUS1CKSxFLnB1c2goc2UpO3ZhciB0ZT17bmFtZTpzZSx0eXBlOloucmVhZF9zaGlmdCgxKSxjb2xvcjpaLnJlYWRfc2hpZnQoMSksTDpaLnJlYWRfc2hpZnQoNCwiaSIpLFI6Wi5yZWFkX3NoaWZ0KDQsImkiKSxDOloucmVhZF9zaGlmdCg0LCJpIiksY2xzaWQ6Wi5yZWFkX3NoaWZ0KDE2KSxzdGF0ZTpaLnJlYWRfc2hpZnQoNCwiaSIpLHN0YXJ0OjAsc2l6ZTowfSx4ZT1aLnJlYWRfc2hpZnQoMikrWi5yZWFkX3NoaWZ0KDIpK1oucmVhZF9zaGlmdCgyKStaLnJlYWRfc2hpZnQoMik7eGUhPT0wJiYodGUuY3Q9TihaLFoubC04KSk7dmFyIENlPVoucmVhZF9zaGlmdCgyKStaLnJlYWRfc2hpZnQoMikrWi5yZWFkX3NoaWZ0KDIpK1oucmVhZF9zaGlmdCgyKTtDZSE9PTAmJih0ZS5tdD1OKFosWi5sLTgpKSx0ZS5zdGFydD1aLnJlYWRfc2hpZnQoNCwiaSIpLHRlLnNpemU9Wi5yZWFkX3NoaWZ0KDQsImkiKSx0ZS5zaXplPDAmJnRlLnN0YXJ0PDAmJih0ZS5zaXplPXRlLnR5cGU9MCx0ZS5zdGFydD1KLHRlLm5hbWU9IiIpLHRlLnR5cGU9PT01PyhMPXRlLnN0YXJ0LGs+MCYmTCE9PUomJihUW0xdLm5hbWU9IiFTdHJlYW1EYXRhIikpOnRlLnNpemU+PTQwOTY/KHRlLnN0b3JhZ2U9ImZhdCIsVFt0ZS5zdGFydF09PT12b2lkIDAmJihUW3RlLnN0YXJ0XT1GKG0sdGUuc3RhcnQsVC5mYXRfYWRkcnMsVC5zc3opKSxUW3RlLnN0YXJ0XS5uYW1lPXRlLm5hbWUsdGUuY29udGVudD1UW3RlLnN0YXJ0XS5kYXRhLnNsaWNlKDAsdGUuc2l6ZSkpOih0ZS5zdG9yYWdlPSJtaW5pZmF0Iix0ZS5zaXplPDA/dGUuc2l6ZT0wOkwhPT1KJiZ0ZS5zdGFydCE9PUomJlRbTF0mJih0ZS5jb250ZW50PXUodGUsVFtMXS5kYXRhLChUW1hdfHx7fSkuZGF0YSkpKSx0ZS5jb250ZW50JiYkZSh0ZS5jb250ZW50LDApLHdbc2VdPXRlLE0ucHVzaCh0ZSl9fWZ1bmN0aW9uIE4ocCxUKXtyZXR1cm4gbmV3IERhdGUoKGxyKHAsVCs0KS8xZTcqTWF0aC5wb3coMiwzMikrbHIocCxUKS8xZTctMTE2NDQ0NzM2MDApKjFlMyl9ZnVuY3Rpb24gYihwLFQpe3JldHVybiBvKCksbChmLnJlYWRGaWxlU3luYyhwKSxUKX1mdW5jdGlvbiBJKHAsVCl7dmFyIG09VCYmVC50eXBlO3N3aXRjaChtfHxnZSYmQnVmZmVyLmlzQnVmZmVyKHApJiYobT0iYnVmZmVyIiksbXx8ImJhc2U2NCIpe2Nhc2UiZmlsZSI6cmV0dXJuIGIocCxUKTtjYXNlImJhc2U2NCI6cmV0dXJuIGwoRXIoZnIocCkpLFQpO2Nhc2UiYmluYXJ5IjpyZXR1cm4gbChFcihwKSxUKX1yZXR1cm4gbChwLFQpfWZ1bmN0aW9uIEEocCxUKXt2YXIgbT1UfHx7fSxFPW0ucm9vdHx8IlJvb3QgRW50cnkiO2lmKHAuRnVsbFBhdGhzfHwocC5GdWxsUGF0aHM9W10pLHAuRmlsZUluZGV4fHwocC5GaWxlSW5kZXg9W10pLHAuRnVsbFBhdGhzLmxlbmd0aCE9PXAuRmlsZUluZGV4Lmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImluY29uc2lzdGVudCBDRkIgc3RydWN0dXJlIik7cC5GdWxsUGF0aHMubGVuZ3RoPT09MCYmKHAuRnVsbFBhdGhzWzBdPUUrIi8iLHAuRmlsZUluZGV4WzBdPXtuYW1lOkUsdHlwZTo1fSksbS5DTFNJRCYmKHAuRmlsZUluZGV4WzBdLmNsc2lkPW0uQ0xTSUQpLFYocCl9ZnVuY3Rpb24gVihwKXt2YXIgVD0iAVNoMzN0SjUiO2lmKCFtZS5maW5kKHAsIi8iK1QpKXt2YXIgbT1iZSg0KTttWzBdPTU1LG1bMV09bVszXT01MCxtWzJdPTU0LHAuRmlsZUluZGV4LnB1c2goe25hbWU6VCx0eXBlOjIsY29udGVudDptLHNpemU6NCxMOjY5LFI6NjksQzo2OX0pLHAuRnVsbFBhdGhzLnB1c2gocC5GdWxsUGF0aHNbMF0rVCksRChwKX19ZnVuY3Rpb24gRChwLFQpe0EocCk7Zm9yKHZhciBtPSExLEU9ITEsaz1wLkZ1bGxQYXRocy5sZW5ndGgtMTtrPj0wOy0tayl7dmFyIHc9cC5GaWxlSW5kZXhba107c3dpdGNoKHcudHlwZSl7Y2FzZSAwOkU/bT0hMDoocC5GaWxlSW5kZXgucG9wKCkscC5GdWxsUGF0aHMucG9wKCkpO2JyZWFrO2Nhc2UgMTpjYXNlIDI6Y2FzZSA1OkU9ITAsaXNOYU4ody5SKncuTCp3LkMpJiYobT0hMCksdy5SPi0xJiZ3Lkw+LTEmJncuUj09dy5MJiYobT0hMCk7YnJlYWs7ZGVmYXVsdDptPSEwO2JyZWFrfX1pZighKCFtJiYhVCkpe3ZhciBNPW5ldyBEYXRlKDE5ODcsMSwxOSksWD0wLEw9T2JqZWN0LmNyZWF0ZT9PYmplY3QuY3JlYXRlKG51bGwpOnt9LEI9W107Zm9yKGs9MDtrPHAuRnVsbFBhdGhzLmxlbmd0aDsrK2spTFtwLkZ1bGxQYXRoc1trXV09ITAscC5GaWxlSW5kZXhba10udHlwZSE9PTAmJkIucHVzaChbcC5GdWxsUGF0aHNba10scC5GaWxlSW5kZXhba11dKTtmb3Ioaz0wO2s8Qi5sZW5ndGg7KytrKXt2YXIgSD1uKEJba11bMF0pO0U9TFtIXSxFfHwoQi5wdXNoKFtILHtuYW1lOnQoSCkucmVwbGFjZSgiLyIsIiIpLHR5cGU6MSxjbHNpZDpjZSxjdDpNLG10Ok0sY29udGVudDpudWxsfV0pLExbSF09ITApfWZvcihCLnNvcnQoZnVuY3Rpb24oc2UsWil7cmV0dXJuIHIoc2VbMF0sWlswXSl9KSxwLkZ1bGxQYXRocz1bXSxwLkZpbGVJbmRleD1bXSxrPTA7azxCLmxlbmd0aDsrK2spcC5GdWxsUGF0aHNba109QltrXVswXSxwLkZpbGVJbmRleFtrXT1CW2tdWzFdO2ZvcihrPTA7azxCLmxlbmd0aDsrK2spe3ZhciBZPXAuRmlsZUluZGV4W2tdLFE9cC5GdWxsUGF0aHNba107aWYoWS5uYW1lPXQoUSkucmVwbGFjZSgiLyIsIiIpLFkuTD1ZLlI9WS5DPS0oWS5jb2xvcj0xKSxZLnNpemU9WS5jb250ZW50P1kuY29udGVudC5sZW5ndGg6MCxZLnN0YXJ0PTAsWS5jbHNpZD1ZLmNsc2lkfHxjZSxrPT09MClZLkM9Qi5sZW5ndGg+MT8xOi0xLFkuc2l6ZT0wLFkudHlwZT01O2Vsc2UgaWYoUS5zbGljZSgtMSk9PSIvIil7Zm9yKFg9aysxO1g8Qi5sZW5ndGgmJm4ocC5GdWxsUGF0aHNbWF0pIT1ROysrWCk7Zm9yKFkuQz1YPj1CLmxlbmd0aD8tMTpYLFg9aysxO1g8Qi5sZW5ndGgmJm4ocC5GdWxsUGF0aHNbWF0pIT1uKFEpOysrWCk7WS5SPVg+PUIubGVuZ3RoPy0xOlgsWS50eXBlPTF9ZWxzZSBuKHAuRnVsbFBhdGhzW2srMV18fCIiKT09bihRKSYmKFkuUj1rKzEpLFkudHlwZT0yfX19ZnVuY3Rpb24geihwLFQpe3ZhciBtPVR8fHt9O2lmKG0uZmlsZVR5cGU9PSJtYWQiKXJldHVybiBGZChwLG0pO3N3aXRjaChEKHApLG0uZmlsZVR5cGUpe2Nhc2UiemlwIjpyZXR1cm4gbWQocCxtKX12YXIgRT1mdW5jdGlvbihzZSl7Zm9yKHZhciBaPTAsdGU9MCx4ZT0wO3hlPHNlLkZpbGVJbmRleC5sZW5ndGg7Kyt4ZSl7dmFyIENlPXNlLkZpbGVJbmRleFt4ZV07aWYoQ2UuY29udGVudCl7dmFyIHllPUNlLmNvbnRlbnQubGVuZ3RoO3llPjAmJih5ZTw0MDk2P1orPXllKzYzPj42OnRlKz15ZSs1MTE+PjkpfX1mb3IodmFyIGVyPXNlLkZ1bGxQYXRocy5sZW5ndGgrMz4+MixxYT1aKzc+PjMsUWE9WisxMjc+PjcsZXQ9cWErdGUrZXIrUWEsbGE9ZXQrMTI3Pj43LGswPWxhPD0xMDk/MDpNYXRoLmNlaWwoKGxhLTEwOSkvMTI3KTtldCtsYStrMCsxMjc+Pjc+bGE7KWswPSsrbGE8PTEwOT8wOk1hdGguY2VpbCgobGEtMTA5KS8xMjcpO3ZhciBVcj1bMSxrMCxsYSxRYSxlcix0ZSxaLDBdO3JldHVybiBzZS5GaWxlSW5kZXhbMF0uc2l6ZT1aPDw2LFVyWzddPShzZS5GaWxlSW5kZXhbMF0uc3RhcnQ9VXJbMF0rVXJbMV0rVXJbMl0rVXJbM10rVXJbNF0rVXJbNV0pKyhVcls2XSs3Pj4zKSxVcn0ocCksaz1iZShFWzddPDw5KSx3PTAsTT0wO3tmb3Iodz0wO3c8ODsrK3cpay53cml0ZV9zaGlmdCgxLHJlW3ddKTtmb3Iodz0wO3c8ODsrK3cpay53cml0ZV9zaGlmdCgyLDApO2ZvcihrLndyaXRlX3NoaWZ0KDIsNjIpLGsud3JpdGVfc2hpZnQoMiwzKSxrLndyaXRlX3NoaWZ0KDIsNjU1MzQpLGsud3JpdGVfc2hpZnQoMiw5KSxrLndyaXRlX3NoaWZ0KDIsNiksdz0wO3c8MzsrK3cpay53cml0ZV9zaGlmdCgyLDApO2ZvcihrLndyaXRlX3NoaWZ0KDQsMCksay53cml0ZV9zaGlmdCg0LEVbMl0pLGsud3JpdGVfc2hpZnQoNCxFWzBdK0VbMV0rRVsyXStFWzNdLTEpLGsud3JpdGVfc2hpZnQoNCwwKSxrLndyaXRlX3NoaWZ0KDQsNDA5Niksay53cml0ZV9zaGlmdCg0LEVbM10/RVswXStFWzFdK0VbMl0tMTpKKSxrLndyaXRlX3NoaWZ0KDQsRVszXSksay53cml0ZV9zaGlmdCgtNCxFWzFdP0VbMF0tMTpKKSxrLndyaXRlX3NoaWZ0KDQsRVsxXSksdz0wO3c8MTA5OysrdylrLndyaXRlX3NoaWZ0KC00LHc8RVsyXT9FWzFdK3c6LTEpfWlmKEVbMV0pZm9yKE09MDtNPEVbMV07KytNKXtmb3IoO3c8MjM2K00qMTI3OysrdylrLndyaXRlX3NoaWZ0KC00LHc8RVsyXT9FWzFdK3c6LTEpO2sud3JpdGVfc2hpZnQoLTQsTT09PUVbMV0tMT9KOk0rMSl9dmFyIFg9ZnVuY3Rpb24oc2Upe2ZvcihNKz1zZTt3PE0tMTsrK3cpay53cml0ZV9zaGlmdCgtNCx3KzEpO3NlJiYoKyt3LGsud3JpdGVfc2hpZnQoLTQsSikpfTtmb3IoTT13PTAsTSs9RVsxXTt3PE07Kyt3KWsud3JpdGVfc2hpZnQoLTQsaWUuRElGU0VDVCk7Zm9yKE0rPUVbMl07dzxNOysrdylrLndyaXRlX3NoaWZ0KC00LGllLkZBVFNFQ1QpO1goRVszXSksWChFWzRdKTtmb3IodmFyIEw9MCxCPTAsSD1wLkZpbGVJbmRleFswXTtMPHAuRmlsZUluZGV4Lmxlbmd0aDsrK0wpSD1wLkZpbGVJbmRleFtMXSxILmNvbnRlbnQmJihCPUguY29udGVudC5sZW5ndGgsIShCPDQwOTYpJiYoSC5zdGFydD1NLFgoQis1MTE+PjkpKSk7Zm9yKFgoRVs2XSs3Pj4zKTtrLmwmNTExOylrLndyaXRlX3NoaWZ0KC00LGllLkVORE9GQ0hBSU4pO2ZvcihNPXc9MCxMPTA7TDxwLkZpbGVJbmRleC5sZW5ndGg7KytMKUg9cC5GaWxlSW5kZXhbTF0sSC5jb250ZW50JiYoQj1ILmNvbnRlbnQubGVuZ3RoLCEoIUJ8fEI+PTQwOTYpJiYoSC5zdGFydD1NLFgoQis2Mz4+NikpKTtmb3IoO2subCY1MTE7KWsud3JpdGVfc2hpZnQoLTQsaWUuRU5ET0ZDSEFJTik7Zm9yKHc9MDt3PEVbNF08PDI7Kyt3KXt2YXIgWT1wLkZ1bGxQYXRoc1t3XTtpZighWXx8WS5sZW5ndGg9PT0wKXtmb3IoTD0wO0w8MTc7KytMKWsud3JpdGVfc2hpZnQoNCwwKTtmb3IoTD0wO0w8MzsrK0wpay53cml0ZV9zaGlmdCg0LC0xKTtmb3IoTD0wO0w8MTI7KytMKWsud3JpdGVfc2hpZnQoNCwwKTtjb250aW51ZX1IPXAuRmlsZUluZGV4W3ddLHc9PT0wJiYoSC5zdGFydD1ILnNpemU/SC5zdGFydC0xOkopO3ZhciBRPXc9PT0wJiZtLnJvb3R8fEgubmFtZTtpZihCPTIqKFEubGVuZ3RoKzEpLGsud3JpdGVfc2hpZnQoNjQsUSwidXRmMTZsZSIpLGsud3JpdGVfc2hpZnQoMixCKSxrLndyaXRlX3NoaWZ0KDEsSC50eXBlKSxrLndyaXRlX3NoaWZ0KDEsSC5jb2xvciksay53cml0ZV9zaGlmdCgtNCxILkwpLGsud3JpdGVfc2hpZnQoLTQsSC5SKSxrLndyaXRlX3NoaWZ0KC00LEguQyksSC5jbHNpZClrLndyaXRlX3NoaWZ0KDE2LEguY2xzaWQsImhleCIpO2Vsc2UgZm9yKEw9MDtMPDQ7KytMKWsud3JpdGVfc2hpZnQoNCwwKTtrLndyaXRlX3NoaWZ0KDQsSC5zdGF0ZXx8MCksay53cml0ZV9zaGlmdCg0LDApLGsud3JpdGVfc2hpZnQoNCwwKSxrLndyaXRlX3NoaWZ0KDQsMCksay53cml0ZV9zaGlmdCg0LDApLGsud3JpdGVfc2hpZnQoNCxILnN0YXJ0KSxrLndyaXRlX3NoaWZ0KDQsSC5zaXplKSxrLndyaXRlX3NoaWZ0KDQsMCl9Zm9yKHc9MTt3PHAuRmlsZUluZGV4Lmxlbmd0aDsrK3cpaWYoSD1wLkZpbGVJbmRleFt3XSxILnNpemU+PTQwOTYpaWYoay5sPUguc3RhcnQrMTw8OSxnZSYmQnVmZmVyLmlzQnVmZmVyKEguY29udGVudCkpSC5jb250ZW50LmNvcHkoayxrLmwsMCxILnNpemUpLGsubCs9SC5zaXplKzUxMSYtNTEyO2Vsc2V7Zm9yKEw9MDtMPEguc2l6ZTsrK0wpay53cml0ZV9zaGlmdCgxLEguY29udGVudFtMXSk7Zm9yKDtMJjUxMTsrK0wpay53cml0ZV9zaGlmdCgxLDApfWZvcih3PTE7dzxwLkZpbGVJbmRleC5sZW5ndGg7Kyt3KWlmKEg9cC5GaWxlSW5kZXhbd10sSC5zaXplPjAmJkguc2l6ZTw0MDk2KWlmKGdlJiZCdWZmZXIuaXNCdWZmZXIoSC5jb250ZW50KSlILmNvbnRlbnQuY29weShrLGsubCwwLEguc2l6ZSksay5sKz1ILnNpemUrNjMmLTY0O2Vsc2V7Zm9yKEw9MDtMPEguc2l6ZTsrK0wpay53cml0ZV9zaGlmdCgxLEguY29udGVudFtMXSk7Zm9yKDtMJjYzOysrTClrLndyaXRlX3NoaWZ0KDEsMCl9aWYoZ2Upay5sPWsubGVuZ3RoO2Vsc2UgZm9yKDtrLmw8ay5sZW5ndGg7KWsud3JpdGVfc2hpZnQoMSwwKTtyZXR1cm4ga31mdW5jdGlvbiBHKHAsVCl7dmFyIG09cC5GdWxsUGF0aHMubWFwKGZ1bmN0aW9uKEwpe3JldHVybiBMLnRvVXBwZXJDYXNlKCl9KSxFPW0ubWFwKGZ1bmN0aW9uKEwpe3ZhciBCPUwuc3BsaXQoIi8iKTtyZXR1cm4gQltCLmxlbmd0aC0oTC5zbGljZSgtMSk9PSIvIj8yOjEpXX0pLGs9ITE7VC5jaGFyQ29kZUF0KDApPT09NDc/KGs9ITAsVD1tWzBdLnNsaWNlKDAsLTEpK1QpOms9VC5pbmRleE9mKCIvIikhPT0tMTt2YXIgdz1ULnRvVXBwZXJDYXNlKCksTT1rPT09ITA/bS5pbmRleE9mKHcpOkUuaW5kZXhPZih3KTtpZihNIT09LTEpcmV0dXJuIHAuRmlsZUluZGV4W01dO3ZhciBYPSF3Lm1hdGNoKEFhKTtmb3Iodz13LnJlcGxhY2UocnIsIiIpLFgmJih3PXcucmVwbGFjZShBYSwiISIpKSxNPTA7TTxtLmxlbmd0aDsrK00paWYoKFg/bVtNXS5yZXBsYWNlKEFhLCIhIik6bVtNXSkucmVwbGFjZShyciwiIik9PXd8fChYP0VbTV0ucmVwbGFjZShBYSwiISIpOkVbTV0pLnJlcGxhY2UocnIsIiIpPT13KXJldHVybiBwLkZpbGVJbmRleFtNXTtyZXR1cm4gbnVsbH12YXIgUD02NCxKPS0yLGZlPSJkMGNmMTFlMGExYjExYWUxIixyZT1bMjA4LDIwNywxNywyMjQsMTYxLDE3NywyNiwyMjVdLGNlPSIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsaWU9e01BWFJFR1NFQ1Q6LTYsRElGU0VDVDotNCxGQVRTRUNUOi0zLEVORE9GQ0hBSU46SixGUkVFU0VDVDotMSxIRUFERVJfU0lHTkFUVVJFOmZlLEhFQURFUl9NSU5PUl9WRVJTSU9OOiIzZTAwIixNQVhSRUdTSUQ6LTYsTk9TVFJFQU06LTEsSEVBREVSX0NMU0lEOmNlLEVudHJ5VHlwZXM6WyJ1bmtub3duIiwic3RvcmFnZSIsInN0cmVhbSIsImxvY2tieXRlcyIsInByb3BlcnR5Iiwicm9vdCJdfTtmdW5jdGlvbiBGZShwLFQsbSl7bygpO3ZhciBFPXoocCxtKTtmLndyaXRlRmlsZVN5bmMoVCxFKX1mdW5jdGlvbiBXKHApe2Zvcih2YXIgVD1uZXcgQXJyYXkocC5sZW5ndGgpLG09MDttPHAubGVuZ3RoOysrbSlUW21dPVN0cmluZy5mcm9tQ2hhckNvZGUocFttXSk7cmV0dXJuIFQuam9pbigiIil9ZnVuY3Rpb24gbGUocCxUKXt2YXIgbT16KHAsVCk7c3dpdGNoKFQmJlQudHlwZXx8ImJ1ZmZlciIpe2Nhc2UiZmlsZSI6cmV0dXJuIG8oKSxmLndyaXRlRmlsZVN5bmMoVC5maWxlbmFtZSxtKSxtO2Nhc2UiYmluYXJ5IjpyZXR1cm4gdHlwZW9mIG09PSJzdHJpbmciP206VyhtKTtjYXNlImJhc2U2NCI6cmV0dXJuIHkwKHR5cGVvZiBtPT0ic3RyaW5nIj9tOlcobSkpO2Nhc2UiYnVmZmVyIjppZihnZSlyZXR1cm4gQnVmZmVyLmlzQnVmZmVyKG0pP206SnIobSk7Y2FzZSJhcnJheSI6cmV0dXJuIHR5cGVvZiBtPT0ic3RyaW5nIj9FcihtKTptfXJldHVybiBtfXZhciBoZTtmdW5jdGlvbiBTKHApe3RyeXt2YXIgVD1wLkluZmxhdGVSYXcsbT1uZXcgVDtpZihtLl9wcm9jZXNzQ2h1bmsobmV3IFVpbnQ4QXJyYXkoWzMsMF0pLG0uX2ZpbmlzaEZsdXNoRmxhZyksbS5ieXRlc1JlYWQpaGU9cDtlbHNlIHRocm93IG5ldyBFcnJvcigiemxpYiBkb2VzIG5vdCBleHBvc2UgYnl0ZXNSZWFkIil9Y2F0Y2goRSl7Y29uc29sZS5lcnJvcigiY2Fubm90IHVzZSBuYXRpdmUgemxpYjogIisoRS5tZXNzYWdlfHxFKSl9fWZ1bmN0aW9uIFUocCxUKXtpZighaGUpcmV0dXJuIGZpKHAsVCk7dmFyIG09aGUuSW5mbGF0ZVJhdyxFPW5ldyBtLGs9RS5fcHJvY2Vzc0NodW5rKHAuc2xpY2UocC5sKSxFLl9maW5pc2hGbHVzaEZsYWcpO3JldHVybiBwLmwrPUUuYnl0ZXNSZWFkLGt9ZnVuY3Rpb24gUihwKXtyZXR1cm4gaGU/aGUuZGVmbGF0ZVJhd1N5bmMocCk6dmUocCl9dmFyIE89WzE2LDE3LDE4LDAsOCw3LDksNiwxMCw1LDExLDQsMTIsMywxMywyLDE0LDEsMTVdLEs9WzMsNCw1LDYsNyw4LDksMTAsMTEsMTMsMTUsMTcsMTksMjMsMjcsMzEsMzUsNDMsNTEsNTksNjcsODMsOTksMTE1LDEzMSwxNjMsMTk1LDIyNywyNThdLGVlPVsxLDIsMyw0LDUsNyw5LDEzLDE3LDI1LDMzLDQ5LDY1LDk3LDEyOSwxOTMsMjU3LDM4NSw1MTMsNzY5LDEwMjUsMTUzNywyMDQ5LDMwNzMsNDA5Nyw2MTQ1LDgxOTMsMTIyODksMTYzODUsMjQ1NzddO2Z1bmN0aW9uIG5lKHApe3ZhciBUPShwPDwxfHA8PDExKSYxMzk1MzZ8KHA8PDV8cDw8MTUpJjU1ODE0NDtyZXR1cm4oVD4+MTZ8VD4+OHxUKSYyNTV9Zm9yKHZhciBxPXR5cGVvZiBVaW50OEFycmF5PCJ1IixqPXE/bmV3IFVpbnQ4QXJyYXkoMjU2KTpbXSxUZT0wO1RlPDI1NjsrK1RlKWpbVGVdPW5lKFRlKTtmdW5jdGlvbiBDKHAsVCl7dmFyIG09altwJjI1NV07cmV0dXJuIFQ8PTg/bT4+PjgtVDoobT1tPDw4fGpbcD4+OCYyNTVdLFQ8PTE2P20+Pj4xNi1UOihtPW08PDh8altwPj4xNiYyNTVdLG0+Pj4yNC1UKSl9ZnVuY3Rpb24gSWUocCxUKXt2YXIgbT1UJjcsRT1UPj4+MztyZXR1cm4ocFtFXXwobTw9Nj8wOnBbRSsxXTw8OCkpPj4+bSYzfWZ1bmN0aW9uIGtlKHAsVCl7dmFyIG09VCY3LEU9VD4+PjM7cmV0dXJuKHBbRV18KG08PTU/MDpwW0UrMV08PDgpKT4+Pm0mN31mdW5jdGlvbiB3ZShwLFQpe3ZhciBtPVQmNyxFPVQ+Pj4zO3JldHVybihwW0VdfChtPD00PzA6cFtFKzFdPDw4KSk+Pj5tJjE1fWZ1bmN0aW9uIHBlKHAsVCl7dmFyIG09VCY3LEU9VD4+PjM7cmV0dXJuKHBbRV18KG08PTM/MDpwW0UrMV08PDgpKT4+Pm0mMzF9ZnVuY3Rpb24gYWUocCxUKXt2YXIgbT1UJjcsRT1UPj4+MztyZXR1cm4ocFtFXXwobTw9MT8wOnBbRSsxXTw8OCkpPj4+bSYxMjd9ZnVuY3Rpb24gTmUocCxULG0pe3ZhciBFPVQmNyxrPVQ+Pj4zLHc9KDE8PG0pLTEsTT1wW2tdPj4+RTtyZXR1cm4gbTw4LUV8fChNfD1wW2srMV08PDgtRSxtPDE2LUUpfHwoTXw9cFtrKzJdPDwxNi1FLG08MjQtRSl8fChNfD1wW2srM108PDI0LUUpLE0md31mdW5jdGlvbiBncihwLFQsbSl7dmFyIEU9VCY3LGs9VD4+PjM7cmV0dXJuIEU8PTU/cFtrXXw9KG0mNyk8PEU6KHBba118PW08PEUmMjU1LHBbaysxXT0obSY3KT4+OC1FKSxUKzN9ZnVuY3Rpb24gT3IocCxULG0pe3ZhciBFPVQmNyxrPVQ+Pj4zO3JldHVybiBtPShtJjEpPDxFLHBba118PW0sVCsxfWZ1bmN0aW9uIEJyKHAsVCxtKXt2YXIgRT1UJjcsaz1UPj4+MztyZXR1cm4gbTw8PUUscFtrXXw9bSYyNTUsbT4+Pj04LHBbaysxXT1tLFQrOH1mdW5jdGlvbiBKYShwLFQsbSl7dmFyIEU9VCY3LGs9VD4+PjM7cmV0dXJuIG08PD1FLHBba118PW0mMjU1LG0+Pj49OCxwW2srMV09bSYyNTUscFtrKzJdPW0+Pj44LFQrMTZ9ZnVuY3Rpb24gWXIocCxUKXt2YXIgbT1wLmxlbmd0aCxFPTIqbT5UPzIqbTpUKzUsaz0wO2lmKG0+PVQpcmV0dXJuIHA7aWYoZ2Upe3ZhciB3PUQwKEUpO2lmKHAuY29weSlwLmNvcHkodyk7ZWxzZSBmb3IoO2s8cC5sZW5ndGg7KytrKXdba109cFtrXTtyZXR1cm4gd31lbHNlIGlmKHEpe3ZhciBNPW5ldyBVaW50OEFycmF5KEUpO2lmKE0uc2V0KU0uc2V0KHApO2Vsc2UgZm9yKDtrPG07KytrKU1ba109cFtrXTtyZXR1cm4gTX1yZXR1cm4gcC5sZW5ndGg9RSxwfWZ1bmN0aW9uIGhyKHApe2Zvcih2YXIgVD1uZXcgQXJyYXkocCksbT0wO208cDsrK20pVFttXT0wO3JldHVybiBUfWZ1bmN0aW9uIGJyKHAsVCxtKXt2YXIgRT0xLGs9MCx3PTAsTT0wLFg9MCxMPXAubGVuZ3RoLEI9cT9uZXcgVWludDE2QXJyYXkoMzIpOmhyKDMyKTtmb3Iodz0wO3c8MzI7Kyt3KUJbd109MDtmb3Iodz1MO3c8bTsrK3cpcFt3XT0wO0w9cC5sZW5ndGg7dmFyIEg9cT9uZXcgVWludDE2QXJyYXkoTCk6aHIoTCk7Zm9yKHc9MDt3PEw7Kyt3KUJbaz1wW3ddXSsrLEU8ayYmKEU9ayksSFt3XT0wO2ZvcihCWzBdPTAsdz0xO3c8PUU7Kyt3KUJbdysxNl09WD1YK0Jbdy0xXTw8MTtmb3Iodz0wO3c8TDsrK3cpWD1wW3ddLFghPTAmJihIW3ddPUJbWCsxNl0rKyk7dmFyIFk9MDtmb3Iodz0wO3c8TDsrK3cpaWYoWT1wW3ddLFkhPTApZm9yKFg9QyhIW3ddLEUpPj5FLVksTT0oMTw8RSs0LVkpLTE7TT49MDstLU0pVFtYfE08PFldPVkmMTV8dzw8NDtyZXR1cm4gRX12YXIganI9cT9uZXcgVWludDE2QXJyYXkoNTEyKTpocig1MTIpLFphPXE/bmV3IFVpbnQxNkFycmF5KDMyKTpocigzMik7aWYoIXEpe2Zvcih2YXIgaXI9MDtpcjw1MTI7Kytpcilqcltpcl09MDtmb3IoaXI9MDtpcjwzMjsrK2lyKVphW2lyXT0wfShmdW5jdGlvbigpe2Zvcih2YXIgcD1bXSxUPTA7VDwzMjtUKyspcC5wdXNoKDUpO2JyKHAsWmEsMzIpO3ZhciBtPVtdO2ZvcihUPTA7VDw9MTQzO1QrKyltLnB1c2goOCk7Zm9yKDtUPD0yNTU7VCsrKW0ucHVzaCg5KTtmb3IoO1Q8PTI3OTtUKyspbS5wdXNoKDcpO2Zvcig7VDw9Mjg3O1QrKyltLnB1c2goOCk7YnIobSxqciwyODgpfSkoKTt2YXIgUnI9ZnVuY3Rpb24oKXtmb3IodmFyIFQ9cT9uZXcgVWludDhBcnJheSgzMjc2OCk6W10sbT0wLEU9MDttPGVlLmxlbmd0aC0xOysrbSlmb3IoO0U8ZWVbbSsxXTsrK0UpVFtFXT1tO2Zvcig7RTwzMjc2ODsrK0UpVFtFXT0yOTt2YXIgaz1xP25ldyBVaW50OEFycmF5KDI1OSk6W107Zm9yKG09MCxFPTA7bTxLLmxlbmd0aC0xOysrbSlmb3IoO0U8S1ttKzFdOysrRSlrW0VdPW07ZnVuY3Rpb24gdyhYLEwpe2Zvcih2YXIgQj0wO0I8WC5sZW5ndGg7KXt2YXIgSD1NYXRoLm1pbig2NTUzNSxYLmxlbmd0aC1CKSxZPUIrSD09WC5sZW5ndGg7Zm9yKEwud3JpdGVfc2hpZnQoMSwrWSksTC53cml0ZV9zaGlmdCgyLEgpLEwud3JpdGVfc2hpZnQoMix+SCY2NTUzNSk7SC0tID4wOylMW0wubCsrXT1YW0IrK119cmV0dXJuIEwubH1mdW5jdGlvbiBNKFgsTCl7Zm9yKHZhciBCPTAsSD0wLFk9cT9uZXcgVWludDE2QXJyYXkoMzI3NjgpOltdO0g8WC5sZW5ndGg7KXt2YXIgUT1NYXRoLm1pbig2NTUzNSxYLmxlbmd0aC1IKTtpZihRPDEwKXtmb3IoQj1ncihMLEIsKyhIK1E9PVgubGVuZ3RoKSksQiY3JiYoQis9OC0oQiY3KSksTC5sPUIvOHwwLEwud3JpdGVfc2hpZnQoMixRKSxMLndyaXRlX3NoaWZ0KDIsflEmNjU1MzUpO1EtLSA+MDspTFtMLmwrK109WFtIKytdO0I9TC5sKjg7Y29udGludWV9Qj1ncihMLEIsKyhIK1E9PVgubGVuZ3RoKSsyKTtmb3IodmFyIHNlPTA7US0tID4wOyl7dmFyIFo9WFtIXTtzZT0oc2U8PDVeWikmMzI3Njc7dmFyIHRlPS0xLHhlPTA7aWYoKHRlPVlbc2VdKSYmKHRlfD1IJi0zMjc2OCx0ZT5IJiYodGUtPTMyNzY4KSx0ZTxIKSlmb3IoO1hbdGUreGVdPT1YW0greGVdJiZ4ZTwyNTA7KSsreGU7aWYoeGU+Mil7Wj1rW3hlXSxaPD0yMj9CPUJyKEwsQixqW1orMV0+PjEpLTE6KEJyKEwsQiwzKSxCKz01LEJyKEwsQixqW1otMjNdPj41KSxCKz0zKTt2YXIgQ2U9Wjw4PzA6Wi00Pj4yO0NlPjAmJihKYShMLEIseGUtS1taXSksQis9Q2UpLFo9VFtILXRlXSxCPUJyKEwsQixqW1pdPj4zKSxCLT0zO3ZhciB5ZT1aPDQ/MDpaLTI+PjE7eWU+MCYmKEphKEwsQixILXRlLWVlW1pdKSxCKz15ZSk7Zm9yKHZhciBlcj0wO2VyPHhlOysrZXIpWVtzZV09SCYzMjc2NyxzZT0oc2U8PDVeWFtIXSkmMzI3NjcsKytIO1EtPXhlLTF9ZWxzZSBaPD0xNDM/Wj1aKzQ4OkI9T3IoTCxCLDEpLEI9QnIoTCxCLGpbWl0pLFlbc2VdPUgmMzI3NjcsKytIfUI9QnIoTCxCLDApLTF9cmV0dXJuIEwubD0oQis3KS84fDAsTC5sfXJldHVybiBmdW5jdGlvbihMLEIpe3JldHVybiBMLmxlbmd0aDw4P3coTCxCKTpNKEwsQil9fSgpO2Z1bmN0aW9uIHZlKHApe3ZhciBUPWJlKDUwK01hdGguZmxvb3IocC5sZW5ndGgqMS4xKSksbT1ScihwLFQpO3JldHVybiBULnNsaWNlKDAsbSl9dmFyIFBlPXE/bmV3IFVpbnQxNkFycmF5KDMyNzY4KTpocigzMjc2OCksbXI9cT9uZXcgVWludDE2QXJyYXkoMzI3NjgpOmhyKDMyNzY4KSxWZT1xP25ldyBVaW50MTZBcnJheSgxMjgpOmhyKDEyOCksb2E9MSxjaT0xO2Z1bmN0aW9uIHZkKHAsVCl7dmFyIG09cGUocCxUKSsyNTc7VCs9NTt2YXIgRT1wZShwLFQpKzE7VCs9NTt2YXIgaz13ZShwLFQpKzQ7VCs9NDtmb3IodmFyIHc9MCxNPXE/bmV3IFVpbnQ4QXJyYXkoMTkpOmhyKDE5KSxYPVswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXSxMPTEsQj1xP25ldyBVaW50OEFycmF5KDgpOmhyKDgpLEg9cT9uZXcgVWludDhBcnJheSg4KTpocig4KSxZPU0ubGVuZ3RoLFE9MDtRPGs7KytRKU1bT1tRXV09dz1rZShwLFQpLEw8dyYmKEw9dyksQlt3XSsrLFQrPTM7dmFyIHNlPTA7Zm9yKEJbMF09MCxRPTE7UTw9TDsrK1EpSFtRXT1zZT1zZStCW1EtMV08PDE7Zm9yKFE9MDtRPFk7KytRKShzZT1NW1FdKSE9MCYmKFhbUV09SFtzZV0rKyk7dmFyIFo9MDtmb3IoUT0wO1E8WTsrK1EpaWYoWj1NW1FdLFohPTApe3NlPWpbWFtRXV0+PjgtWjtmb3IodmFyIHRlPSgxPDw3LVopLTE7dGU+PTA7LS10ZSlWZVtzZXx0ZTw8Wl09WiY3fFE8PDN9dmFyIHhlPVtdO2ZvcihMPTE7eGUubGVuZ3RoPG0rRTspc3dpdGNoKHNlPVZlW2FlKHAsVCldLFQrPXNlJjcsc2U+Pj49Myl7Y2FzZSAxNjpmb3Iodz0zK0llKHAsVCksVCs9MixzZT14ZVt4ZS5sZW5ndGgtMV07dy0tID4wOyl4ZS5wdXNoKHNlKTticmVhaztjYXNlIDE3OmZvcih3PTMra2UocCxUKSxUKz0zO3ctLSA+MDspeGUucHVzaCgwKTticmVhaztjYXNlIDE4OmZvcih3PTExK2FlKHAsVCksVCs9Nzt3LS0gPjA7KXhlLnB1c2goMCk7YnJlYWs7ZGVmYXVsdDp4ZS5wdXNoKHNlKSxMPHNlJiYoTD1zZSk7YnJlYWt9dmFyIENlPXhlLnNsaWNlKDAsbSkseWU9eGUuc2xpY2UobSk7Zm9yKFE9bTtRPDI4NjsrK1EpQ2VbUV09MDtmb3IoUT1FO1E8MzA7KytRKXllW1FdPTA7cmV0dXJuIG9hPWJyKENlLFBlLDI4NiksY2k9YnIoeWUsbXIsMzApLFR9ZnVuY3Rpb24gcGQocCxUKXtpZihwWzBdPT0zJiYhKHBbMV0mMykpcmV0dXJuW1ZyKFQpLDJdO2Zvcih2YXIgbT0wLEU9MCxrPUQwKFR8fDE8PDE4KSx3PTAsTT1rLmxlbmd0aD4+PjAsWD0wLEw9MDshKEUmMSk7KXtpZihFPWtlKHAsbSksbSs9MyxFPj4+MSlFPj4xPT0xPyhYPTksTD01KToobT12ZChwLG0pLFg9b2EsTD1jaSk7ZWxzZXttJjcmJihtKz04LShtJjcpKTt2YXIgQj1wW20+Pj4zXXxwWyhtPj4+MykrMV08PDg7aWYobSs9MzIsQj4wKWZvcighVCYmTTx3K0ImJihrPVlyKGssdytCKSxNPWsubGVuZ3RoKTtCLS0gPjA7KWtbdysrXT1wW20+Pj4zXSxtKz04O2NvbnRpbnVlfWZvcig7Oyl7IVQmJk08dyszMjc2NyYmKGs9WXIoayx3KzMyNzY3KSxNPWsubGVuZ3RoKTt2YXIgSD1OZShwLG0sWCksWT1FPj4+MT09MT9qcltIXTpQZVtIXTtpZihtKz1ZJjE1LFk+Pj49NCwhKFk+Pj44JjI1NSkpa1t3KytdPVk7ZWxzZXtpZihZPT0yNTYpYnJlYWs7WS09MjU3O3ZhciBRPVk8OD8wOlktND4+MjtRPjUmJihRPTApO3ZhciBzZT13K0tbWV07UT4wJiYoc2UrPU5lKHAsbSxRKSxtKz1RKSxIPU5lKHAsbSxMKSxZPUU+Pj4xPT0xP1phW0hdOm1yW0hdLG0rPVkmMTUsWT4+Pj00O3ZhciBaPVk8ND8wOlktMj4+MSx0ZT1lZVtZXTtmb3IoWj4wJiYodGUrPU5lKHAsbSxaKSxtKz1aKSwhVCYmTTxzZSYmKGs9WXIoayxzZSsxMDApLE09ay5sZW5ndGgpO3c8c2U7KWtbd109a1t3LXRlXSwrK3d9fX1yZXR1cm4gVD9bayxtKzc+Pj4zXTpbay5zbGljZSgwLHcpLG0rNz4+PjNdfWZ1bmN0aW9uIGZpKHAsVCl7dmFyIG09cC5zbGljZShwLmx8fDApLEU9cGQobSxUKTtyZXR1cm4gcC5sKz1FWzFdLEVbMF19ZnVuY3Rpb24gb2kocCxUKXtpZihwKXR5cGVvZiBjb25zb2xlPCJ1IiYmY29uc29sZS5lcnJvcihUKTtlbHNlIHRocm93IG5ldyBFcnJvcihUKX1mdW5jdGlvbiBsaShwLFQpe3ZhciBtPXA7JGUobSwwKTt2YXIgRT1bXSxrPVtdLHc9e0ZpbGVJbmRleDpFLEZ1bGxQYXRoczprfTtBKHcse3Jvb3Q6VC5yb290fSk7Zm9yKHZhciBNPW0ubGVuZ3RoLTQ7KG1bTV0hPTgwfHxtW00rMV0hPTc1fHxtW00rMl0hPTV8fG1bTSszXSE9NikmJk0+PTA7KS0tTTttLmw9TSs0LG0ubCs9NDt2YXIgWD1tLnJlYWRfc2hpZnQoMik7bS5sKz02O3ZhciBMPW0ucmVhZF9zaGlmdCg0KTtmb3IobS5sPUwsTT0wO008WDsrK00pe20ubCs9MjA7dmFyIEI9bS5yZWFkX3NoaWZ0KDQpLEg9bS5yZWFkX3NoaWZ0KDQpLFk9bS5yZWFkX3NoaWZ0KDIpLFE9bS5yZWFkX3NoaWZ0KDIpLHNlPW0ucmVhZF9zaGlmdCgyKTttLmwrPTg7dmFyIFo9bS5yZWFkX3NoaWZ0KDQpLHRlPWMobS5zbGljZShtLmwrWSxtLmwrWStRKSk7bS5sKz1ZK1Erc2U7dmFyIHhlPW0ubDttLmw9Wis0LGdkKG0sQixILHcsdGUpLG0ubD14ZX1yZXR1cm4gd31mdW5jdGlvbiBnZChwLFQsbSxFLGspe3AubCs9Mjt2YXIgdz1wLnJlYWRfc2hpZnQoMiksTT1wLnJlYWRfc2hpZnQoMiksWD1pKHApO2lmKHcmODI1Nyl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIFpJUCBlbmNyeXB0aW9uIik7Zm9yKHZhciBMPXAucmVhZF9zaGlmdCg0KSxCPXAucmVhZF9zaGlmdCg0KSxIPXAucmVhZF9zaGlmdCg0KSxZPXAucmVhZF9zaGlmdCgyKSxRPXAucmVhZF9zaGlmdCgyKSxzZT0iIixaPTA7WjxZOysrWilzZSs9U3RyaW5nLmZyb21DaGFyQ29kZShwW3AubCsrXSk7aWYoUSl7dmFyIHRlPWMocC5zbGljZShwLmwscC5sK1EpKTsodGVbMjE1ODldfHx7fSkubXQmJihYPXRlWzIxNTg5XS5tdCksKChrfHx7fSlbMjE1ODldfHx7fSkubXQmJihYPWtbMjE1ODldLm10KX1wLmwrPVE7dmFyIHhlPXAuc2xpY2UocC5sLHAubCtCKTtzd2l0Y2goTSl7Y2FzZSA4OnhlPVUocCxIKTticmVhaztjYXNlIDA6YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIFpJUCBDb21wcmVzc2lvbiBtZXRob2QgIitNKX12YXIgQ2U9ITE7dyY4JiYoTD1wLnJlYWRfc2hpZnQoNCksTD09MTM0Njk1NzYwJiYoTD1wLnJlYWRfc2hpZnQoNCksQ2U9ITApLEI9cC5yZWFkX3NoaWZ0KDQpLEg9cC5yZWFkX3NoaWZ0KDQpKSxCIT1UJiZvaShDZSwiQmFkIGNvbXByZXNzZWQgc2l6ZTogIitUKyIgIT0gIitCKSxIIT1tJiZvaShDZSwiQmFkIHVuY29tcHJlc3NlZCBzaXplOiAiK20rIiAhPSAiK0gpLFQwKEUsc2UseGUse3Vuc2FmZTohMCxtdDpYfSl9ZnVuY3Rpb24gbWQocCxUKXt2YXIgbT1UfHx7fSxFPVtdLGs9W10sdz1iZSgxKSxNPW0uY29tcHJlc3Npb24/ODowLFg9MCxMPTAsQj0wLEg9MCxZPTAsUT1wLkZ1bGxQYXRoc1swXSxzZT1RLFo9cC5GaWxlSW5kZXhbMF0sdGU9W10seGU9MDtmb3IoTD0xO0w8cC5GdWxsUGF0aHMubGVuZ3RoOysrTClpZihzZT1wLkZ1bGxQYXRoc1tMXS5zbGljZShRLmxlbmd0aCksWj1wLkZpbGVJbmRleFtMXSwhKCFaLnNpemV8fCFaLmNvbnRlbnR8fHNlPT0iAVNoMzN0SjUiKSl7dmFyIENlPUgseWU9YmUoc2UubGVuZ3RoKTtmb3IoQj0wO0I8c2UubGVuZ3RoOysrQil5ZS53cml0ZV9zaGlmdCgxLHNlLmNoYXJDb2RlQXQoQikmMTI3KTt5ZT15ZS5zbGljZSgwLHllLmwpLHRlW1ldPUhpLmJ1ZihaLmNvbnRlbnQsMCk7dmFyIGVyPVouY29udGVudDtNPT04JiYoZXI9UihlcikpLHc9YmUoMzApLHcud3JpdGVfc2hpZnQoNCw2NzMyNDc1Miksdy53cml0ZV9zaGlmdCgyLDIwKSx3LndyaXRlX3NoaWZ0KDIsWCksdy53cml0ZV9zaGlmdCgyLE0pLFoubXQ/cyh3LFoubXQpOncud3JpdGVfc2hpZnQoNCwwKSx3LndyaXRlX3NoaWZ0KC00LHRlW1ldKSx3LndyaXRlX3NoaWZ0KDQsZXIubGVuZ3RoKSx3LndyaXRlX3NoaWZ0KDQsWi5jb250ZW50Lmxlbmd0aCksdy53cml0ZV9zaGlmdCgyLHllLmxlbmd0aCksdy53cml0ZV9zaGlmdCgyLDApLEgrPXcubGVuZ3RoLEUucHVzaCh3KSxIKz15ZS5sZW5ndGgsRS5wdXNoKHllKSxIKz1lci5sZW5ndGgsRS5wdXNoKGVyKSx3PWJlKDQ2KSx3LndyaXRlX3NoaWZ0KDQsMzM2MzkyNDgpLHcud3JpdGVfc2hpZnQoMiwwKSx3LndyaXRlX3NoaWZ0KDIsMjApLHcud3JpdGVfc2hpZnQoMixYKSx3LndyaXRlX3NoaWZ0KDIsTSksdy53cml0ZV9zaGlmdCg0LDApLHcud3JpdGVfc2hpZnQoLTQsdGVbWV0pLHcud3JpdGVfc2hpZnQoNCxlci5sZW5ndGgpLHcud3JpdGVfc2hpZnQoNCxaLmNvbnRlbnQubGVuZ3RoKSx3LndyaXRlX3NoaWZ0KDIseWUubGVuZ3RoKSx3LndyaXRlX3NoaWZ0KDIsMCksdy53cml0ZV9zaGlmdCgyLDApLHcud3JpdGVfc2hpZnQoMiwwKSx3LndyaXRlX3NoaWZ0KDIsMCksdy53cml0ZV9zaGlmdCg0LDApLHcud3JpdGVfc2hpZnQoNCxDZSkseGUrPXcubCxrLnB1c2godykseGUrPXllLmxlbmd0aCxrLnB1c2goeWUpLCsrWX1yZXR1cm4gdz1iZSgyMiksdy53cml0ZV9zaGlmdCg0LDEwMTAxMDI1Niksdy53cml0ZV9zaGlmdCgyLDApLHcud3JpdGVfc2hpZnQoMiwwKSx3LndyaXRlX3NoaWZ0KDIsWSksdy53cml0ZV9zaGlmdCgyLFkpLHcud3JpdGVfc2hpZnQoNCx4ZSksdy53cml0ZV9zaGlmdCg0LEgpLHcud3JpdGVfc2hpZnQoMiwwKSxXcihbV3IoRSksV3Ioayksd10pfXZhciBGdD17aHRtOiJ0ZXh0L2h0bWwiLHhtbDoidGV4dC94bWwiLGdpZjoiaW1hZ2UvZ2lmIixqcGc6ImltYWdlL2pwZWciLHBuZzoiaW1hZ2UvcG5nIixtc286ImFwcGxpY2F0aW9uL3gtbXNvIix0aG14OiJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNldGhlbWUiLHNoMzN0ajU6ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSJ9O2Z1bmN0aW9uIF9kKHAsVCl7aWYocC5jdHlwZSlyZXR1cm4gcC5jdHlwZTt2YXIgbT1wLm5hbWV8fCIiLEU9bS5tYXRjaCgvXC4oW15cLl0rKSQvKTtyZXR1cm4gRSYmRnRbRVsxXV18fFQmJihFPShtPVQpLm1hdGNoKC9bXC5cXF0oW15cLlxcXSkrJC8pLEUmJkZ0W0VbMV1dKT9GdFtFWzFdXToiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIn1mdW5jdGlvbiBFZChwKXtmb3IodmFyIFQ9eTAocCksbT1bXSxFPTA7RTxULmxlbmd0aDtFKz03NiltLnB1c2goVC5zbGljZShFLEUrNzYpKTtyZXR1cm4gbS5qb2luKGBccgpgKStgXHIKYH1mdW5jdGlvbiBUZChwKXt2YXIgVD1wLnJlcGxhY2UoL1tceDAwLVx4MDhceDBCXHgwQ1x4MEUtXHgxRlx4N0UtXHhGRj1dL2csZnVuY3Rpb24oQil7dmFyIEg9Qi5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO3JldHVybiI9IisoSC5sZW5ndGg9PTE/IjAiK0g6SCl9KTtUPVQucmVwbGFjZSgvICQvbWcsIj0yMCIpLnJlcGxhY2UoL1x0JC9tZywiPTA5IiksVC5jaGFyQXQoMCk9PWAKYCYmKFQ9Ij0wRCIrVC5zbGljZSgxKSksVD1ULnJlcGxhY2UoL1xyKD8hXG4pL21nLCI9MEQiKS5yZXBsYWNlKC9cblxuL21nLGAKPTBBYCkucmVwbGFjZSgvKFteXHJcbl0pXG4vbWcsIiQxPTBBIik7Zm9yKHZhciBtPVtdLEU9VC5zcGxpdChgXHIKYCksaz0wO2s8RS5sZW5ndGg7KytrKXt2YXIgdz1FW2tdO2lmKHcubGVuZ3RoPT0wKXttLnB1c2goIiIpO2NvbnRpbnVlfWZvcih2YXIgTT0wO008dy5sZW5ndGg7KXt2YXIgWD03NixMPXcuc2xpY2UoTSxNK1gpO0wuY2hhckF0KFgtMSk9PSI9Ij9YLS06TC5jaGFyQXQoWC0yKT09Ij0iP1gtPTI6TC5jaGFyQXQoWC0zKT09Ij0iJiYoWC09MyksTD13LnNsaWNlKE0sTStYKSxNKz1YLE08dy5sZW5ndGgmJihMKz0iPSIpLG0ucHVzaChMKX19cmV0dXJuIG0uam9pbihgXHIKYCl9ZnVuY3Rpb24ga2QocCl7Zm9yKHZhciBUPVtdLG09MDttPHAubGVuZ3RoOysrbSl7Zm9yKHZhciBFPXBbbV07bTw9cC5sZW5ndGgmJkUuY2hhckF0KEUubGVuZ3RoLTEpPT0iPSI7KUU9RS5zbGljZSgwLEUubGVuZ3RoLTEpK3BbKyttXTtULnB1c2goRSl9Zm9yKHZhciBrPTA7azxULmxlbmd0aDsrK2spVFtrXT1UW2tdLnJlcGxhY2UoL1s9XVswLTlBLUZhLWZdezJ9L2csZnVuY3Rpb24odyl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQody5zbGljZSgxKSwxNikpfSk7cmV0dXJuIEVyKFQuam9pbihgXHIKYCkpfWZ1bmN0aW9uIHdkKHAsVCxtKXtmb3IodmFyIEU9IiIsaz0iIix3PSIiLE0sWD0wO1g8MTA7KytYKXt2YXIgTD1UW1hdO2lmKCFMfHxMLm1hdGNoKC9eXHMqJC8pKWJyZWFrO3ZhciBCPUwubWF0Y2goL14oLio/KTpccyooW15cc10uKikkLyk7aWYoQilzd2l0Y2goQlsxXS50b0xvd2VyQ2FzZSgpKXtjYXNlImNvbnRlbnQtbG9jYXRpb24iOkU9QlsyXS50cmltKCk7YnJlYWs7Y2FzZSJjb250ZW50LXR5cGUiOnc9QlsyXS50cmltKCk7YnJlYWs7Y2FzZSJjb250ZW50LXRyYW5zZmVyLWVuY29kaW5nIjprPUJbMl0udHJpbSgpO2JyZWFrfX1zd2l0Y2goKytYLGsudG9Mb3dlckNhc2UoKSl7Y2FzZSJiYXNlNjQiOk09RXIoZnIoVC5zbGljZShYKS5qb2luKCIiKSkpO2JyZWFrO2Nhc2UicXVvdGVkLXByaW50YWJsZSI6TT1rZChULnNsaWNlKFgpKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZyAiK2spfXZhciBIPVQwKHAsRS5zbGljZShtLmxlbmd0aCksTSx7dW5zYWZlOiEwfSk7dyYmKEguY3R5cGU9dyl9ZnVuY3Rpb24gQWQocCxUKXtpZihXKHAuc2xpY2UoMCwxMykpLnRvTG93ZXJDYXNlKCkhPSJtaW1lLXZlcnNpb246Iil0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIE1BRCBoZWFkZXIiKTt2YXIgbT1UJiZULnJvb3R8fCIiLEU9KGdlJiZCdWZmZXIuaXNCdWZmZXIocCk/cC50b1N0cmluZygiYmluYXJ5Iik6VyhwKSkuc3BsaXQoYFxyCmApLGs9MCx3PSIiO2ZvcihrPTA7azxFLmxlbmd0aDsrK2spaWYodz1FW2tdLCEhL15Db250ZW50LUxvY2F0aW9uOi9pLnRlc3QodykmJih3PXcuc2xpY2Uody5pbmRleE9mKCJmaWxlIikpLG18fChtPXcuc2xpY2UoMCx3Lmxhc3RJbmRleE9mKCIvIikrMSkpLHcuc2xpY2UoMCxtLmxlbmd0aCkhPW0pKWZvcig7bS5sZW5ndGg+MCYmKG09bS5zbGljZSgwLG0ubGVuZ3RoLTEpLG09bS5zbGljZSgwLG0ubGFzdEluZGV4T2YoIi8iKSsxKSx3LnNsaWNlKDAsbS5sZW5ndGgpIT1tKTspO3ZhciBNPShFWzFdfHwiIikubWF0Y2goL2JvdW5kYXJ5PSIoLio/KSIvKTtpZighTSl0aHJvdyBuZXcgRXJyb3IoIk1BRCBjYW5ub3QgZmluZCBib3VuZGFyeSIpO3ZhciBYPSItLSIrKE1bMV18fCIiKSxMPVtdLEI9W10sSD17RmlsZUluZGV4OkwsRnVsbFBhdGhzOkJ9O0EoSCk7dmFyIFksUT0wO2ZvcihrPTA7azxFLmxlbmd0aDsrK2spe3ZhciBzZT1FW2tdO3NlIT09WCYmc2UhPT1YKyItLSJ8fChRKysmJndkKEgsRS5zbGljZShZLGspLG0pLFk9ayl9cmV0dXJuIEh9ZnVuY3Rpb24gRmQocCxUKXt2YXIgbT1UfHx7fSxFPW0uYm91bmRhcnl8fCJTaGVldEpTIjtFPSItLS0tLS09IitFO2Zvcih2YXIgaz1bIk1JTUUtVmVyc2lvbjogMS4wIiwnQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvcmVsYXRlZDsgYm91bmRhcnk9IicrRS5zbGljZSgyKSsnIicsIiIsIiIsIiJdLHc9cC5GdWxsUGF0aHNbMF0sTT13LFg9cC5GaWxlSW5kZXhbMF0sTD0xO0w8cC5GdWxsUGF0aHMubGVuZ3RoOysrTClpZihNPXAuRnVsbFBhdGhzW0xdLnNsaWNlKHcubGVuZ3RoKSxYPXAuRmlsZUluZGV4W0xdLCEoIVguc2l6ZXx8IVguY29udGVudHx8TT09IgFTaDMzdEo1Iikpe009TS5yZXBsYWNlKC9bXHgwMC1ceDA4XHgwQlx4MENceDBFLVx4MUZceDdFLVx4RkZdL2csZnVuY3Rpb24oeGUpe3JldHVybiJfeCIreGUuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikrIl8ifSkucmVwbGFjZSgvW1x1MDA4MC1cdUZGRkZdL2csZnVuY3Rpb24oeGUpe3JldHVybiJfdSIreGUuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikrIl8ifSk7Zm9yKHZhciBCPVguY29udGVudCxIPWdlJiZCdWZmZXIuaXNCdWZmZXIoQik/Qi50b1N0cmluZygiYmluYXJ5Iik6VyhCKSxZPTAsUT1NYXRoLm1pbigxMDI0LEgubGVuZ3RoKSxzZT0wLFo9MDtaPD1ROysrWikoc2U9SC5jaGFyQ29kZUF0KFopKT49MzImJnNlPDEyOCYmKytZO3ZhciB0ZT1ZPj1RKjQvNTtrLnB1c2goRSksay5wdXNoKCJDb250ZW50LUxvY2F0aW9uOiAiKyhtLnJvb3R8fCJmaWxlOi8vL0M6L1NoZWV0SlMvIikrTSksay5wdXNoKCJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiAiKyh0ZT8icXVvdGVkLXByaW50YWJsZSI6ImJhc2U2NCIpKSxrLnB1c2goIkNvbnRlbnQtVHlwZTogIitfZChYLE0pKSxrLnB1c2goIiIpLGsucHVzaCh0ZT9UZChIKTpFZChIKSl9cmV0dXJuIGsucHVzaChFK2AtLVxyCmApLGsuam9pbihgXHIKYCl9ZnVuY3Rpb24gU2QocCl7dmFyIFQ9e307cmV0dXJuIEEoVCxwKSxUfWZ1bmN0aW9uIFQwKHAsVCxtLEUpe3ZhciBrPUUmJkUudW5zYWZlO2t8fEEocCk7dmFyIHc9IWsmJm1lLmZpbmQocCxUKTtpZighdyl7dmFyIE09cC5GdWxsUGF0aHNbMF07VC5zbGljZSgwLE0ubGVuZ3RoKT09TT9NPVQ6KE0uc2xpY2UoLTEpIT0iLyImJihNKz0iLyIpLE09KE0rVCkucmVwbGFjZSgiLy8iLCIvIikpLHc9e25hbWU6dChUKSx0eXBlOjJ9LHAuRmlsZUluZGV4LnB1c2godykscC5GdWxsUGF0aHMucHVzaChNKSxrfHxtZS51dGlscy5jZmJfZ2MocCl9cmV0dXJuIHcuY29udGVudD1tLHcuc2l6ZT1tP20ubGVuZ3RoOjAsRSYmKEUuQ0xTSUQmJih3LmNsc2lkPUUuQ0xTSUQpLEUubXQmJih3Lm10PUUubXQpLEUuY3QmJih3LmN0PUUuY3QpKSx3fWZ1bmN0aW9uIENkKHAsVCl7QShwKTt2YXIgbT1tZS5maW5kKHAsVCk7aWYobSl7Zm9yKHZhciBFPTA7RTxwLkZpbGVJbmRleC5sZW5ndGg7KytFKWlmKHAuRmlsZUluZGV4W0VdPT1tKXJldHVybiBwLkZpbGVJbmRleC5zcGxpY2UoRSwxKSxwLkZ1bGxQYXRocy5zcGxpY2UoRSwxKSwhMH1yZXR1cm4hMX1mdW5jdGlvbiB5ZChwLFQsbSl7QShwKTt2YXIgRT1tZS5maW5kKHAsVCk7aWYoRSl7Zm9yKHZhciBrPTA7azxwLkZpbGVJbmRleC5sZW5ndGg7KytrKWlmKHAuRmlsZUluZGV4W2tdPT1FKXJldHVybiBwLkZpbGVJbmRleFtrXS5uYW1lPXQobSkscC5GdWxsUGF0aHNba109bSwhMH1yZXR1cm4hMX1mdW5jdGlvbiBEZChwKXtEKHAsITApfXJldHVybiBhLmZpbmQ9RyxhLnJlYWQ9SSxhLnBhcnNlPWwsYS53cml0ZT1sZSxhLndyaXRlRmlsZT1GZSxhLnV0aWxzPXtjZmJfbmV3OlNkLGNmYl9hZGQ6VDAsY2ZiX2RlbDpDZCxjZmJfbW92OnlkLGNmYl9nYzpEZCxSZWFkU2hpZnQ6UmEsQ2hlY2tGaWVsZDpPbixwcmVwX2Jsb2I6JGUsYmNvbmNhdDpXcix1c2VfemxpYjpTLF9kZWZsYXRlUmF3OnZlLF9pbmZsYXRlUmF3OmZpLGNvbnN0czppZX0sYX0oKTtmdW5jdGlvbiBWaShlKXtpZih0eXBlb2YgRGVubzwidSIpcmV0dXJuIERlbm8ucmVhZEZpbGVTeW5jKGUpO2lmKHR5cGVvZiAkPCJ1IiYmdHlwZW9mIEZpbGU8InUiJiZ0eXBlb2YgRm9sZGVyPCJ1Iil0cnl7dmFyIGE9RmlsZShlKTthLm9wZW4oInIiKSxhLmVuY29kaW5nPSJiaW5hcnkiO3ZhciByPWEucmVhZCgpO3JldHVybiBhLmNsb3NlKCkscn1jYXRjaChuKXtpZighbi5tZXNzYWdlfHwhbi5tZXNzYWdlLm1hdGNoKC9vbnN0cnVjdC8pKXRocm93IG59dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgYWNjZXNzIGZpbGUgIitlKX1mdW5jdGlvbiBTcihlKXtmb3IodmFyIGE9T2JqZWN0LmtleXMoZSkscj1bXSxuPTA7bjxhLmxlbmd0aDsrK24pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsYVtuXSkmJnIucHVzaChhW25dKTtyZXR1cm4gcn1mdW5jdGlvbiBJdChlKXtmb3IodmFyIGE9W10scj1TcihlKSxuPTA7biE9PXIubGVuZ3RoOysrbilhW2VbcltuXV1dPXJbbl07cmV0dXJuIGF9dmFyIHN0PW5ldyBEYXRlKDE4OTksMTEsMzAsMCwwLDApO2Z1bmN0aW9uIHRyKGUsYSl7dmFyIHI9ZS5nZXRUaW1lKCksbj1zdC5nZXRUaW1lKCkrKGUuZ2V0VGltZXpvbmVPZmZzZXQoKS1zdC5nZXRUaW1lem9uZU9mZnNldCgpKSo2ZTQ7cmV0dXJuKHItbikvKDI0KjYwKjYwKjFlMyl9dmFyIGowPW5ldyBEYXRlLFdpPXN0LmdldFRpbWUoKSsoajAuZ2V0VGltZXpvbmVPZmZzZXQoKS1zdC5nZXRUaW1lem9uZU9mZnNldCgpKSo2ZTQsSjA9ajAuZ2V0VGltZXpvbmVPZmZzZXQoKTtmdW5jdGlvbiBpdChlKXt2YXIgYT1uZXcgRGF0ZTtyZXR1cm4gYS5zZXRUaW1lKGUqMjQqNjAqNjAqMWUzK1dpKSxhLmdldFRpbWV6b25lT2Zmc2V0KCkhPT1KMCYmYS5zZXRUaW1lKGEuZ2V0VGltZSgpKyhhLmdldFRpbWV6b25lT2Zmc2V0KCktSjApKjZlNCksYX1mdW5jdGlvbiBHaShlKXt2YXIgYT0wLHI9MCxuPSExLHQ9ZS5tYXRjaCgvUChbMC05XC5dK1kpPyhbMC05XC5dK00pPyhbMC05XC5dK0QpP1QoWzAtOVwuXStIKT8oWzAtOVwuXStNKT8oWzAtOVwuXStTKT8vKTtpZighdCl0aHJvdyBuZXcgRXJyb3IoInwiK2UrInwgaXMgbm90IGFuIElTTzg2MDEgRHVyYXRpb24iKTtmb3IodmFyIHM9MTtzIT10Lmxlbmd0aDsrK3MpaWYodFtzXSl7c3dpdGNoKHI9MSxzPjMmJihuPSEwKSx0W3NdLnNsaWNlKHRbc10ubGVuZ3RoLTEpKXtjYXNlIlkiOnRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgSVNPIER1cmF0aW9uIEZpZWxkOiAiK3Rbc10uc2xpY2UodFtzXS5sZW5ndGgtMSkpO2Nhc2UiRCI6cio9MjQ7Y2FzZSJIIjpyKj02MDtjYXNlIk0iOmlmKG4pcio9NjA7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIElTTyBEdXJhdGlvbiBGaWVsZDogTSIpfWErPXIqcGFyc2VJbnQodFtzXSwxMCl9cmV0dXJuIGF9dmFyIFowPW5ldyBEYXRlKCIyMDE3LTAyLTE5VDE5OjA2OjA5LjAwMFoiKSxxMD1pc05hTihaMC5nZXRGdWxsWWVhcigpKT9uZXcgRGF0ZSgiMi8xOS8xNyIpOlowLFhpPXEwLmdldEZ1bGxZZWFyKCk9PTIwMTc7ZnVuY3Rpb24gV2UoZSxhKXt2YXIgcj1uZXcgRGF0ZShlKTtpZihYaSlyZXR1cm4gYT4wP3Iuc2V0VGltZShyLmdldFRpbWUoKStyLmdldFRpbWV6b25lT2Zmc2V0KCkqNjAqMWUzKTphPDAmJnIuc2V0VGltZShyLmdldFRpbWUoKS1yLmdldFRpbWV6b25lT2Zmc2V0KCkqNjAqMWUzKSxyO2lmKGUgaW5zdGFuY2VvZiBEYXRlKXJldHVybiBlO2lmKHEwLmdldEZ1bGxZZWFyKCk9PTE5MTcmJiFpc05hTihyLmdldEZ1bGxZZWFyKCkpKXt2YXIgbj1yLmdldEZ1bGxZZWFyKCk7cmV0dXJuIGUuaW5kZXhPZigiIituKT4tMXx8ci5zZXRGdWxsWWVhcihyLmdldEZ1bGxZZWFyKCkrMTAwKSxyfXZhciB0PWUubWF0Y2goL1xkKy9nKXx8WyIyMDE3IiwiMiIsIjE5IiwiMCIsIjAiLCIwIl0scz1uZXcgRGF0ZSgrdFswXSwrdFsxXS0xLCt0WzJdLCt0WzNdfHwwLCt0WzRdfHwwLCt0WzVdfHwwKTtyZXR1cm4gZS5pbmRleE9mKCJaIik+LTEmJihzPW5ldyBEYXRlKHMuZ2V0VGltZSgpLXMuZ2V0VGltZXpvbmVPZmZzZXQoKSo2MCoxZTMpKSxzfWZ1bmN0aW9uIHJhKGUsYSl7aWYoZ2UmJkJ1ZmZlci5pc0J1ZmZlcihlKSl7aWYoYSl7aWYoZVswXT09MjU1JiZlWzFdPT0yNTQpcmV0dXJuIENhKGUuc2xpY2UoMikudG9TdHJpbmcoInV0ZjE2bGUiKSk7aWYoZVsxXT09MjU0JiZlWzJdPT0yNTUpcmV0dXJuIENhKFMwKGUuc2xpY2UoMikudG9TdHJpbmcoImJpbmFyeSIpKSl9cmV0dXJuIGUudG9TdHJpbmcoImJpbmFyeSIpfWlmKHR5cGVvZiBUZXh0RGVjb2RlcjwidSIpdHJ5e2lmKGEpe2lmKGVbMF09PTI1NSYmZVsxXT09MjU0KXJldHVybiBDYShuZXcgVGV4dERlY29kZXIoInV0Zi0xNmxlIikuZGVjb2RlKGUuc2xpY2UoMikpKTtpZihlWzBdPT0yNTQmJmVbMV09PTI1NSlyZXR1cm4gQ2EobmV3IFRleHREZWNvZGVyKCJ1dGYtMTZiZSIpLmRlY29kZShlLnNsaWNlKDIpKSl9dmFyIHI9eyLigqwiOiLCgCIsIuKAmiI6IsKCIizGkjoiwoMiLCLigJ4iOiLChCIsIuKApiI6IsKFIiwi4oCgIjoiwoYiLCLigKEiOiLChyIsIsuGIjoiwogiLCLigLAiOiLCiSIsxaA6IsKKIiwi4oC5IjoiwosiLMWSOiLCjCIsxb06IsKOIiwi4oCYIjoiwpEiLCLigJkiOiLCkiIsIuKAnCI6IsKTIiwi4oCdIjoiwpQiLCLigKIiOiLClSIsIuKAkyI6IsKWIiwi4oCUIjoiwpciLCLLnCI6IsKYIiwi4oSiIjoiwpkiLMWhOiLCmiIsIuKAuiI6IsKbIizFkzoiwpwiLMW+OiLCniIsxbg6IsKfIn07cmV0dXJuIEFycmF5LmlzQXJyYXkoZSkmJihlPW5ldyBVaW50OEFycmF5KGUpKSxuZXcgVGV4dERlY29kZXIoImxhdGluMSIpLmRlY29kZShlKS5yZXBsYWNlKC9b4oKs4oCaxpLigJ7igKbigKDigKHLhuKAsMWg4oC5xZLFveKAmOKAmeKAnOKAneKAouKAk+KAlMuc4oSixaHigLrFk8W+xbhdL2csZnVuY3Rpb24ocyl7cmV0dXJuIHJbc118fHN9KX1jYXRjaHt9Zm9yKHZhciBuPVtdLHQ9MDt0IT1lLmxlbmd0aDsrK3Qpbi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoZVt0XSkpO3JldHVybiBuLmpvaW4oIiIpfWZ1bmN0aW9uIFhlKGUpe2lmKHR5cGVvZiBKU09OPCJ1IiYmIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZSkpO2lmKHR5cGVvZiBlIT0ib2JqZWN0Inx8ZT09bnVsbClyZXR1cm4gZTtpZihlIGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gbmV3IERhdGUoZS5nZXRUaW1lKCkpO3ZhciBhPXt9O2Zvcih2YXIgciBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYoYVtyXT1YZShlW3JdKSk7cmV0dXJuIGF9ZnVuY3Rpb24gRGUoZSxhKXtmb3IodmFyIHI9IiI7ci5sZW5ndGg8YTspcis9ZTtyZXR1cm4gcn1mdW5jdGlvbiBrcihlKXt2YXIgYT1OdW1iZXIoZSk7aWYoIWlzTmFOKGEpKXJldHVybiBpc0Zpbml0ZShhKT9hOk5hTjtpZighL1xkLy50ZXN0KGUpKXJldHVybiBhO3ZhciByPTEsbj1lLnJlcGxhY2UoLyhbXGRdKSwoW1xkXSkvZywiJDEkMiIpLnJlcGxhY2UoL1skXS9nLCIiKS5yZXBsYWNlKC9bJV0vZyxmdW5jdGlvbigpe3JldHVybiByKj0xMDAsIiJ9KTtyZXR1cm4haXNOYU4oYT1OdW1iZXIobikpfHwobj1uLnJlcGxhY2UoL1soXSguKilbKV0vLGZ1bmN0aW9uKHQscyl7cmV0dXJuIHI9LXIsc30pLCFpc05hTihhPU51bWJlcihuKSkpP2EvcjphfXZhciAkaT1bImphbnVhcnkiLCJmZWJydWFyeSIsIm1hcmNoIiwiYXByaWwiLCJtYXkiLCJqdW5lIiwianVseSIsImF1Z3VzdCIsInNlcHRlbWJlciIsIm9jdG9iZXIiLCJub3ZlbWJlciIsImRlY2VtYmVyIl07ZnVuY3Rpb24gZGEoZSl7dmFyIGE9bmV3IERhdGUoZSkscj1uZXcgRGF0ZShOYU4pLG49YS5nZXRZZWFyKCksdD1hLmdldE1vbnRoKCkscz1hLmdldERhdGUoKTtpZihpc05hTihzKSlyZXR1cm4gcjt2YXIgaT1lLnRvTG93ZXJDYXNlKCk7aWYoaS5tYXRjaCgvamFufGZlYnxtYXJ8YXByfG1heXxqdW58anVsfGF1Z3xzZXB8b2N0fG5vdnxkZWMvKSl7aWYoaT1pLnJlcGxhY2UoL1teYS16XS9nLCIiKS5yZXBsYWNlKC8oW15hLXpdfF4pW2FwXW0/KFteYS16XXwkKS8sIiIpLGkubGVuZ3RoPjMmJiRpLmluZGV4T2YoaSk9PS0xKXJldHVybiByfWVsc2UgaWYoaS5tYXRjaCgvW2Etel0vKSlyZXR1cm4gcjtyZXR1cm4gbjwwfHxuPjgwOTk/cjoodD4wfHxzPjEpJiZuIT0xMDE/YTplLm1hdGNoKC9bXi0wLTk6LFwvXFxdLyk/cjphfXZhciB6aT1mdW5jdGlvbigpe3ZhciBlPSJhYmFjYWJhIi5zcGxpdCgvKDo/YikvaSkubGVuZ3RoPT01O3JldHVybiBmdW5jdGlvbihyLG4sdCl7aWYoZXx8dHlwZW9mIG49PSJzdHJpbmciKXJldHVybiByLnNwbGl0KG4pO2Zvcih2YXIgcz1yLnNwbGl0KG4pLGk9W3NbMF1dLGM9MTtjPHMubGVuZ3RoOysrYylpLnB1c2godCksaS5wdXNoKHNbY10pO3JldHVybiBpfX0oKTtmdW5jdGlvbiBRMChlKXtyZXR1cm4gZT9lLmNvbnRlbnQmJmUudHlwZT9yYShlLmNvbnRlbnQsITApOmUuZGF0YT9rYShlLmRhdGEpOmUuYXNOb2RlQnVmZmVyJiZnZT9rYShlLmFzTm9kZUJ1ZmZlcigpLnRvU3RyaW5nKCJiaW5hcnkiKSk6ZS5hc0JpbmFyeT9rYShlLmFzQmluYXJ5KCkpOmUuX2RhdGEmJmUuX2RhdGEuZ2V0Q29udGVudD9rYShyYShBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLl9kYXRhLmdldENvbnRlbnQoKSwwKSkpOm51bGw6bnVsbH1mdW5jdGlvbiBlbihlKXtpZighZSlyZXR1cm4gbnVsbDtpZihlLmRhdGEpcmV0dXJuIEYwKGUuZGF0YSk7aWYoZS5hc05vZGVCdWZmZXImJmdlKXJldHVybiBlLmFzTm9kZUJ1ZmZlcigpO2lmKGUuX2RhdGEmJmUuX2RhdGEuZ2V0Q29udGVudCl7dmFyIGE9ZS5fZGF0YS5nZXRDb250ZW50KCk7cmV0dXJuIHR5cGVvZiBhPT0ic3RyaW5nIj9GMChhKTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhKX1yZXR1cm4gZS5jb250ZW50JiZlLnR5cGU/ZS5jb250ZW50Om51bGx9ZnVuY3Rpb24gS2koZSl7cmV0dXJuIGUmJmUubmFtZS5zbGljZSgtNCk9PT0iLmJpbiI/ZW4oZSk6UTAoZSl9ZnVuY3Rpb24gZHIoZSxhKXtmb3IodmFyIHI9ZS5GdWxsUGF0aHN8fFNyKGUuZmlsZXMpLG49YS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1tcL10vZywiXFwiKSx0PW4ucmVwbGFjZSgvXFwvZywiLyIpLHM9MDtzPHIubGVuZ3RoOysrcyl7dmFyIGk9cltzXS5yZXBsYWNlKC9eUm9vdCBFbnRyeVtcL10vLCIiKS50b0xvd2VyQ2FzZSgpO2lmKG49PWl8fHQ9PWkpcmV0dXJuIGUuZmlsZXM/ZS5maWxlc1tyW3NdXTplLkZpbGVJbmRleFtzXX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBOdChlLGEpe3ZhciByPWRyKGUsYSk7aWYocj09bnVsbCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIGZpbGUgIithKyIgaW4gemlwIik7cmV0dXJuIHJ9ZnVuY3Rpb24gTGUoZSxhLHIpe2lmKCFyKXJldHVybiBLaShOdChlLGEpKTtpZighYSlyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIExlKGUsYSl9Y2F0Y2h7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIG9yKGUsYSxyKXtpZighcilyZXR1cm4gUTAoTnQoZSxhKSk7aWYoIWEpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBvcihlLGEpfWNhdGNoe3JldHVybiBudWxsfX1mdW5jdGlvbiBZaShlLGEscil7cmV0dXJuIGVuKE50KGUsYSkpfWZ1bmN0aW9uIHJuKGUpe2Zvcih2YXIgYT1lLkZ1bGxQYXRoc3x8U3IoZS5maWxlcykscj1bXSxuPTA7bjxhLmxlbmd0aDsrK24pYVtuXS5zbGljZSgtMSkhPSIvIiYmci5wdXNoKGFbbl0ucmVwbGFjZSgvXlJvb3QgRW50cnlbXC9dLywiIikpO3JldHVybiByLnNvcnQoKX1mdW5jdGlvbiBqaShlLGEscil7aWYoZS5GdWxsUGF0aHMpe2lmKHR5cGVvZiByPT0ic3RyaW5nIil7dmFyIG47cmV0dXJuIGdlP249SnIocik6bj1kaShyKSxtZS51dGlscy5jZmJfYWRkKGUsYSxuKX1tZS51dGlscy5jZmJfYWRkKGUsYSxyKX1lbHNlIGUuZmlsZShhLHIpfWZ1bmN0aW9uIGFuKGUsYSl7c3dpdGNoKGEudHlwZSl7Y2FzZSJiYXNlNjQiOnJldHVybiBtZS5yZWFkKGUse3R5cGU6ImJhc2U2NCJ9KTtjYXNlImJpbmFyeSI6cmV0dXJuIG1lLnJlYWQoZSx7dHlwZToiYmluYXJ5In0pO2Nhc2UiYnVmZmVyIjpjYXNlImFycmF5IjpyZXR1cm4gbWUucmVhZChlLHt0eXBlOiJidWZmZXIifSl9dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiK2EudHlwZSl9ZnVuY3Rpb24gU2EoZSxhKXtpZihlLmNoYXJBdCgwKT09Ii8iKXJldHVybiBlLnNsaWNlKDEpO3ZhciByPWEuc3BsaXQoIi8iKTthLnNsaWNlKC0xKSE9Ii8iJiZyLnBvcCgpO2Zvcih2YXIgbj1lLnNwbGl0KCIvIik7bi5sZW5ndGghPT0wOyl7dmFyIHQ9bi5zaGlmdCgpO3Q9PT0iLi4iP3IucG9wKCk6dCE9PSIuIiYmci5wdXNoKHQpfXJldHVybiByLmpvaW4oIi8iKX12YXIgdG49YDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz5ccgpgLEppPS8oW14iXHM/PlwvXSspXHMqPVxzKigoPzoiKShbXiJdKikoPzoiKXwoPzonKShbXiddKikoPzonKXwoW14nIj5cc10rKSkvZyxubj0vPFtcL1w/XT9bYS16QS1aMC05Ol8tXSsoPzpccytbXiJccz8+XC9dK1xzKj1ccyooPzoiW14iXSoifCdbXiddKid8W14nIj5ccz1dKykpKlxzKltcL1w/XT8+L21nLFppPS88W14+XSo+L2csS2U9dG4ubWF0Y2gobm4pP25uOlppLHFpPS88XHcqOi8sUWk9LzwoXC8/KVx3KzovO2Z1bmN0aW9uIG9lKGUsYSxyKXtmb3IodmFyIG49e30sdD0wLHM9MDt0IT09ZS5sZW5ndGgmJiEoKHM9ZS5jaGFyQ29kZUF0KHQpKT09PTMyfHxzPT09MTB8fHM9PT0xMyk7Kyt0KTtpZihhfHwoblswXT1lLnNsaWNlKDAsdCkpLHQ9PT1lLmxlbmd0aClyZXR1cm4gbjt2YXIgaT1lLm1hdGNoKEppKSxjPTAsZj0iIixvPTAsbD0iIixoPSIiLHg9MTtpZihpKWZvcihvPTA7byE9aS5sZW5ndGg7KytvKXtmb3IoaD1pW29dLHM9MDtzIT1oLmxlbmd0aCYmaC5jaGFyQ29kZUF0KHMpIT09NjE7KytzKTtmb3IobD1oLnNsaWNlKDAscykudHJpbSgpO2guY2hhckNvZGVBdChzKzEpPT0zMjspKytzO2Zvcih4PSh0PWguY2hhckNvZGVBdChzKzEpKT09MzR8fHQ9PTM5PzE6MCxmPWguc2xpY2UocysxK3gsaC5sZW5ndGgteCksYz0wO2MhPWwubGVuZ3RoJiZsLmNoYXJDb2RlQXQoYykhPT01ODsrK2MpO2lmKGM9PT1sLmxlbmd0aClsLmluZGV4T2YoIl8iKT4wJiYobD1sLnNsaWNlKDAsbC5pbmRleE9mKCJfIikpKSxuW2xdPWYsbltsLnRvTG93ZXJDYXNlKCldPWY7ZWxzZXt2YXIgZD0oYz09PTUmJmwuc2xpY2UoMCw1KT09PSJ4bWxucyI/InhtbG5zIjoiIikrbC5zbGljZShjKzEpO2lmKG5bZF0mJmwuc2xpY2UoYy0zLGMpPT0iZXh0Iiljb250aW51ZTtuW2RdPWYsbltkLnRvTG93ZXJDYXNlKCldPWZ9fXJldHVybiBufWZ1bmN0aW9uIENyKGUpe3JldHVybiBlLnJlcGxhY2UoUWksIjwkMSIpfXZhciBzbj17IiZxdW90OyI6JyInLCImYXBvczsiOiInIiwiJmd0OyI6Ij4iLCImbHQ7IjoiPCIsIiZhbXA7IjoiJiJ9LGVjPUl0KHNuKSxFZT1mdW5jdGlvbigpe3ZhciBlPS8mKD86cXVvdHxhcG9zfGd0fGx0fGFtcHwjeD8oW1xkYS1mQS1GXSspKTsvaWcsYT0vX3goW1xkYS1mQS1GXXs0fSlfL2lnO3JldHVybiBmdW5jdGlvbiByKG4pe3ZhciB0PW4rIiIscz10LmluZGV4T2YoIjwhW0NEQVRBWyIpO2lmKHM9PS0xKXJldHVybiB0LnJlcGxhY2UoZSxmdW5jdGlvbihjLGYpe3JldHVybiBzbltjXXx8U3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChmLGMuaW5kZXhPZigieCIpPi0xPzE2OjEwKSl8fGN9KS5yZXBsYWNlKGEsZnVuY3Rpb24oYyxmKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChmLDE2KSl9KTt2YXIgaT10LmluZGV4T2YoIl1dPiIpO3JldHVybiByKHQuc2xpY2UoMCxzKSkrdC5zbGljZShzKzksaSkrcih0LnNsaWNlKGkrMykpfX0oKSxyYz0vWyY8PiciXS9nLGFjPS9bXHUwMDAwLVx1MDAxZl0vZztmdW5jdGlvbiBQdChlKXt2YXIgYT1lKyIiO3JldHVybiBhLnJlcGxhY2UocmMsZnVuY3Rpb24ocil7cmV0dXJuIGVjW3JdfSkucmVwbGFjZSgvXG4vZywiPGJyLz4iKS5yZXBsYWNlKGFjLGZ1bmN0aW9uKHIpe3JldHVybiImI3giKygiMDAwIityLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtNCkrIjsifSl9dmFyIGNuPWZ1bmN0aW9uKCl7dmFyIGU9LyYjKFxkKyk7L2c7ZnVuY3Rpb24gYShyLG4pe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KG4sMTApKX1yZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG4ucmVwbGFjZShlLGEpfX0oKTtmdW5jdGlvbiBTZShlKXtzd2l0Y2goZSl7Y2FzZSAxOmNhc2UhMDpjYXNlIjEiOmNhc2UidHJ1ZSI6Y2FzZSJUUlVFIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBMdChlKXtmb3IodmFyIGE9IiIscj0wLG49MCx0PTAscz0wLGk9MCxjPTA7cjxlLmxlbmd0aDspe2lmKG49ZS5jaGFyQ29kZUF0KHIrKyksbjwxMjgpe2ErPVN0cmluZy5mcm9tQ2hhckNvZGUobik7Y29udGludWV9aWYodD1lLmNoYXJDb2RlQXQocisrKSxuPjE5MSYmbjwyMjQpe2k9KG4mMzEpPDw2LGl8PXQmNjMsYSs9U3RyaW5nLmZyb21DaGFyQ29kZShpKTtjb250aW51ZX1pZihzPWUuY2hhckNvZGVBdChyKyspLG48MjQwKXthKz1TdHJpbmcuZnJvbUNoYXJDb2RlKChuJjE1KTw8MTJ8KHQmNjMpPDw2fHMmNjMpO2NvbnRpbnVlfWk9ZS5jaGFyQ29kZUF0KHIrKyksYz0oKG4mNyk8PDE4fCh0JjYzKTw8MTJ8KHMmNjMpPDw2fGkmNjMpLTY1NTM2LGErPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTYrKGM+Pj4xMCYxMDIzKSksYSs9U3RyaW5nLmZyb21DaGFyQ29kZSg1NjMyMCsoYyYxMDIzKSl9cmV0dXJuIGF9ZnVuY3Rpb24gZm4oZSl7dmFyIGE9VnIoMiplLmxlbmd0aCkscixuLHQ9MSxzPTAsaT0wLGM7Zm9yKG49MDtuPGUubGVuZ3RoO24rPXQpdD0xLChjPWUuY2hhckNvZGVBdChuKSk8MTI4P3I9YzpjPDIyND8ocj0oYyYzMSkqNjQrKGUuY2hhckNvZGVBdChuKzEpJjYzKSx0PTIpOmM8MjQwPyhyPShjJjE1KSo0MDk2KyhlLmNoYXJDb2RlQXQobisxKSY2MykqNjQrKGUuY2hhckNvZGVBdChuKzIpJjYzKSx0PTMpOih0PTQscj0oYyY3KSoyNjIxNDQrKGUuY2hhckNvZGVBdChuKzEpJjYzKSo0MDk2KyhlLmNoYXJDb2RlQXQobisyKSY2MykqNjQrKGUuY2hhckNvZGVBdChuKzMpJjYzKSxyLT02NTUzNixpPTU1Mjk2KyhyPj4+MTAmMTAyMykscj01NjMyMCsociYxMDIzKSksaSE9PTAmJihhW3MrK109aSYyNTUsYVtzKytdPWk+Pj44LGk9MCksYVtzKytdPXIlMjU2LGFbcysrXT1yPj4+ODtyZXR1cm4gYS5zbGljZSgwLHMpLnRvU3RyaW5nKCJ1Y3MyIil9ZnVuY3Rpb24gb24oZSl7cmV0dXJuIEpyKGUsImJpbmFyeSIpLnRvU3RyaW5nKCJ1dGY4Iil9dmFyIGN0PSJmb28gYmFyIGJhesOiwpjCg8Owwp/CjcKjIixBZT1nZSYmKG9uKGN0KT09THQoY3QpJiZvbnx8Zm4oY3QpPT1MdChjdCkmJmZuKXx8THQsQ2E9Z2U/ZnVuY3Rpb24oZSl7cmV0dXJuIEpyKGUsInV0ZjgiKS50b1N0cmluZygiYmluYXJ5Iil9OmZ1bmN0aW9uKGUpe2Zvcih2YXIgYT1bXSxyPTAsbj0wLHQ9MDtyPGUubGVuZ3RoOylzd2l0Y2gobj1lLmNoYXJDb2RlQXQocisrKSwhMCl7Y2FzZSBuPDEyODphLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShuKSk7YnJlYWs7Y2FzZSBuPDIwNDg6YS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMTkyKyhuPj42KSkpLGEucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDEyOCsobiY2MykpKTticmVhaztjYXNlKG4+PTU1Mjk2JiZuPDU3MzQ0KTpuLT01NTI5Nix0PWUuY2hhckNvZGVBdChyKyspLTU2MzIwKyhuPDwxMCksYS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMjQwKyh0Pj4xOCY3KSkpLGEucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDE0NCsodD4+MTImNjMpKSksYS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMTI4Kyh0Pj42JjYzKSkpLGEucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDEyOCsodCY2MykpKTticmVhaztkZWZhdWx0OmEucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDIyNCsobj4+MTIpKSksYS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMTI4KyhuPj42JjYzKSkpLGEucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDEyOCsobiY2MykpKX1yZXR1cm4gYS5qb2luKCIiKX0seWE9ZnVuY3Rpb24oKXt2YXIgZT17fTtyZXR1cm4gZnVuY3Rpb24ocixuKXt2YXIgdD1yKyJ8Iisobnx8IiIpO3JldHVybiBlW3RdP2VbdF06ZVt0XT1uZXcgUmVnRXhwKCI8KD86XFx3KzopPyIrcisnKD86IHhtbDpzcGFjZT0icHJlc2VydmUiKT8oPzpbXj5dKik+KFtcXHNcXFNdKj8pPC8oPzpcXHcrOik/JytyKyI+IixufHwiIil9fSgpLGxuPWZ1bmN0aW9uKCl7dmFyIGU9W1sibmJzcCIsIiAiXSxbIm1pZGRvdCIsIsK3Il0sWyJxdW90IiwnIiddLFsiYXBvcyIsIiciXSxbImd0IiwiPiJdLFsibHQiLCI8Il0sWyJhbXAiLCImIl1dLm1hcChmdW5jdGlvbihhKXtyZXR1cm5bbmV3IFJlZ0V4cCgiJiIrYVswXSsiOyIsImlnIiksYVsxXV19KTtyZXR1cm4gZnVuY3Rpb24ocil7Zm9yKHZhciBuPXIucmVwbGFjZSgvXltcdFxuXHIgXSsvLCIiKS5yZXBsYWNlKC9bXHRcblxyIF0rJC8sIiIpLnJlcGxhY2UoLz5ccysvZywiPiIpLnJlcGxhY2UoL1xzKzwvZywiPCIpLnJlcGxhY2UoL1tcdFxuXHIgXSsvZywiICIpLnJlcGxhY2UoLzxccypbYkJdW3JSXVxzKlwvPz4vZyxgCmApLnJlcGxhY2UoLzxbXj5dKj4vZywiIiksdD0wO3Q8ZS5sZW5ndGg7Kyt0KW49bi5yZXBsYWNlKGVbdF1bMF0sZVt0XVsxXSk7cmV0dXJuIG59fSgpLHRjPWZ1bmN0aW9uKCl7dmFyIGU9e307cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiBlW3JdIT09dm9pZCAwP2Vbcl06ZVtyXT1uZXcgUmVnRXhwKCI8KD86dnQ6KT8iK3IrIj4oW1xcc1xcU10qPyk8Lyg/OnZ0Oik/IityKyI+IiwiZyIpfX0oKSxuYz0vPFwvPyg/OnZ0Oik/dmFyaWFudD4vZyxzYz0vPCg/OnZ0OikoW14+XSopPihbXHNcU10qKTwvO2Z1bmN0aW9uIGhuKGUsYSl7dmFyIHI9b2UoZSksbj1lLm1hdGNoKHRjKHIuYmFzZVR5cGUpKXx8W10sdD1bXTtpZihuLmxlbmd0aCE9ci5zaXplKXtpZihhLldURil0aHJvdyBuZXcgRXJyb3IoInVuZXhwZWN0ZWQgdmVjdG9yIGxlbmd0aCAiK24ubGVuZ3RoKyIgIT0gIityLnNpemUpO3JldHVybiB0fXJldHVybiBuLmZvckVhY2goZnVuY3Rpb24ocyl7dmFyIGk9cy5yZXBsYWNlKG5jLCIiKS5tYXRjaChzYyk7aSYmdC5wdXNoKHt2OkFlKGlbMl0pLHQ6aVsxXX0pfSksdH12YXIgaWM9LyheXHN8XHMkfFxuKS87ZnVuY3Rpb24gY2MoZSl7cmV0dXJuIFNyKGUpLm1hcChmdW5jdGlvbihhKXtyZXR1cm4iICIrYSsnPSInK2VbYV0rJyInfSkuam9pbigiIil9ZnVuY3Rpb24gZmMoZSxhLHIpe3JldHVybiI8IitlKyhyIT1udWxsP2NjKHIpOiIiKSsoYSE9bnVsbD8oYS5tYXRjaChpYyk/JyB4bWw6c3BhY2U9InByZXNlcnZlIic6IiIpKyI+IithKyI8LyIrZToiLyIpKyI+In1mdW5jdGlvbiBNdChlKXtpZihnZSYmQnVmZmVyLmlzQnVmZmVyKGUpKXJldHVybiBlLnRvU3RyaW5nKCJ1dGY4Iik7aWYodHlwZW9mIGU9PSJzdHJpbmciKXJldHVybiBlO2lmKHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcmV0dXJuIEFlKFpyKHl0KGUpKSk7dGhyb3cgbmV3IEVycm9yKCJCYWQgaW5wdXQgZm9ybWF0OiBleHBlY3RlZCBCdWZmZXIgb3Igc3RyaW5nIil9dmFyIERhPS88KFwvPykoW15ccz8+PCFcLzpdKjp8KShbXlxzPzw+OlwvXSspKD86W1xzPzpcL11bXj5dKik/Pi9tZyxvYz17Q1Q6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvY29udGVudC10eXBlcyJ9LGxjPVsiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIiwiaHR0cDovL3B1cmwub2NsYy5vcmcvb294bWwvc3ByZWFkc2hlZXRtbC9tYWluIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvZXhjZWwvMjAwNi9tYWluIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvZXhjZWwvMjAwNi8yIl07ZnVuY3Rpb24gaGMoZSxhKXtmb3IodmFyIHI9MS0yKihlW2ErN10+Pj43KSxuPSgoZVthKzddJjEyNyk8PDQpKyhlW2ErNl0+Pj40JjE1KSx0PWVbYSs2XSYxNSxzPTU7cz49MDstLXMpdD10KjI1NitlW2Erc107cmV0dXJuIG49PTIwNDc/dD09MD9yKigxLzApOk5hTjoobj09MD9uPS0xMDIyOihuLT0xMDIzLHQrPU1hdGgucG93KDIsNTIpKSxyKk1hdGgucG93KDIsbi01MikqdCl9ZnVuY3Rpb24gdWMoZSxhLHIpe3ZhciBuPShhPDB8fDEvYT09LTEvMD8xOjApPDw3LHQ9MCxzPTAsaT1uPy1hOmE7aXNGaW5pdGUoaSk/aT09MD90PXM9MDoodD1NYXRoLmZsb29yKE1hdGgubG9nKGkpL01hdGguTE4yKSxzPWkqTWF0aC5wb3coMiw1Mi10KSx0PD0tMTAyMyYmKCFpc0Zpbml0ZShzKXx8czxNYXRoLnBvdygyLDUyKSk/dD0tMTAyMjoocy09TWF0aC5wb3coMiw1MiksdCs9MTAyMykpOih0PTIwNDcscz1pc05hTihhKT8yNjk4NTowKTtmb3IodmFyIGM9MDtjPD01OysrYyxzLz0yNTYpZVtyK2NdPXMmMjU1O2Vbcis2XT0odCYxNSk8PDR8cyYxNSxlW3IrN109dD4+NHxufXZhciB1bj1mdW5jdGlvbihlKXtmb3IodmFyIGE9W10scj0xMDI0MCxuPTA7bjxlWzBdLmxlbmd0aDsrK24paWYoZVswXVtuXSlmb3IodmFyIHQ9MCxzPWVbMF1bbl0ubGVuZ3RoO3Q8czt0Kz1yKWEucHVzaC5hcHBseShhLGVbMF1bbl0uc2xpY2UodCx0K3IpKTtyZXR1cm4gYX0seG49Z2U/ZnVuY3Rpb24oZSl7cmV0dXJuIGVbMF0ubGVuZ3RoPjAmJkJ1ZmZlci5pc0J1ZmZlcihlWzBdWzBdKT9CdWZmZXIuY29uY2F0KGVbMF0ubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBCdWZmZXIuaXNCdWZmZXIoYSk/YTpKcihhKX0pKTp1bihlKX06dW4sZG49ZnVuY3Rpb24oZSxhLHIpe2Zvcih2YXIgbj1bXSx0PWE7dDxyO3QrPTIpbi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoTnIoZSx0KSkpO3JldHVybiBuLmpvaW4oIiIpLnJlcGxhY2UocnIsIiIpfSxCdD1nZT9mdW5jdGlvbihlLGEscil7cmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcihlKT9lLnRvU3RyaW5nKCJ1dGYxNmxlIixhLHIpLnJlcGxhY2UocnIsIiIpOmRuKGUsYSxyKX06ZG4sdm49ZnVuY3Rpb24oZSxhLHIpe2Zvcih2YXIgbj1bXSx0PWE7dDxhK3I7Kyt0KW4ucHVzaCgoIjAiK2VbdF0udG9TdHJpbmcoMTYpKS5zbGljZSgtMikpO3JldHVybiBuLmpvaW4oIiIpfSxwbj1nZT9mdW5jdGlvbihlLGEscil7cmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcihlKT9lLnRvU3RyaW5nKCJoZXgiLGEsYStyKTp2bihlLGEscil9OnZuLGduPWZ1bmN0aW9uKGUsYSxyKXtmb3IodmFyIG49W10sdD1hO3Q8cjt0Kyspbi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUodmEoZSx0KSkpO3JldHVybiBuLmpvaW4oIiIpfSxPYT1nZT9mdW5jdGlvbihhLHIsbil7cmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcihhKT9hLnRvU3RyaW5nKCJ1dGY4IixyLG4pOmduKGEscixuKX06Z24sbW49ZnVuY3Rpb24oZSxhKXt2YXIgcj1scihlLGEpO3JldHVybiByPjA/T2EoZSxhKzQsYSs0K3ItMSk6IiJ9LF9uPW1uLEVuPWZ1bmN0aW9uKGUsYSl7dmFyIHI9bHIoZSxhKTtyZXR1cm4gcj4wP09hKGUsYSs0LGErNCtyLTEpOiIifSxUbj1Fbixrbj1mdW5jdGlvbihlLGEpe3ZhciByPTIqbHIoZSxhKTtyZXR1cm4gcj4wP09hKGUsYSs0LGErNCtyLTEpOiIifSx3bj1rbixBbj1mdW5jdGlvbihhLHIpe3ZhciBuPWxyKGEscik7cmV0dXJuIG4+MD9CdChhLHIrNCxyKzQrbik6IiJ9LEZuPUFuLFNuPWZ1bmN0aW9uKGUsYSl7dmFyIHI9bHIoZSxhKTtyZXR1cm4gcj4wP09hKGUsYSs0LGErNCtyKToiIn0sQ249U24seW49ZnVuY3Rpb24oZSxhKXtyZXR1cm4gaGMoZSxhKX0sZnQ9eW4sRG49ZnVuY3Rpb24oYSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoYSl8fHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmYSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl9O2dlJiYoX249ZnVuY3Rpb24oYSxyKXtpZighQnVmZmVyLmlzQnVmZmVyKGEpKXJldHVybiBtbihhLHIpO3ZhciBuPWEucmVhZFVJbnQzMkxFKHIpO3JldHVybiBuPjA/YS50b1N0cmluZygidXRmOCIscis0LHIrNCtuLTEpOiIifSxUbj1mdW5jdGlvbihhLHIpe2lmKCFCdWZmZXIuaXNCdWZmZXIoYSkpcmV0dXJuIEVuKGEscik7dmFyIG49YS5yZWFkVUludDMyTEUocik7cmV0dXJuIG4+MD9hLnRvU3RyaW5nKCJ1dGY4IixyKzQscis0K24tMSk6IiJ9LHduPWZ1bmN0aW9uKGEscil7aWYoIUJ1ZmZlci5pc0J1ZmZlcihhKSlyZXR1cm4ga24oYSxyKTt2YXIgbj0yKmEucmVhZFVJbnQzMkxFKHIpO3JldHVybiBhLnRvU3RyaW5nKCJ1dGYxNmxlIixyKzQscis0K24tMSl9LEZuPWZ1bmN0aW9uKGEscil7aWYoIUJ1ZmZlci5pc0J1ZmZlcihhKSlyZXR1cm4gQW4oYSxyKTt2YXIgbj1hLnJlYWRVSW50MzJMRShyKTtyZXR1cm4gYS50b1N0cmluZygidXRmMTZsZSIscis0LHIrNCtuKX0sQ249ZnVuY3Rpb24oYSxyKXtpZighQnVmZmVyLmlzQnVmZmVyKGEpKXJldHVybiBTbihhLHIpO3ZhciBuPWEucmVhZFVJbnQzMkxFKHIpO3JldHVybiBhLnRvU3RyaW5nKCJ1dGY4IixyKzQscis0K24pfSxmdD1mdW5jdGlvbihhLHIpe3JldHVybiBCdWZmZXIuaXNCdWZmZXIoYSk/YS5yZWFkRG91YmxlTEUocik6eW4oYSxyKX0sRG49ZnVuY3Rpb24oYSl7cmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcihhKXx8QXJyYXkuaXNBcnJheShhKXx8dHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZhIGluc3RhbmNlb2YgVWludDhBcnJheX0pO3ZhciB2YT1mdW5jdGlvbihlLGEpe3JldHVybiBlW2FdfSxOcj1mdW5jdGlvbihlLGEpe3JldHVybiBlW2ErMV0qMjU2K2VbYV19LHhjPWZ1bmN0aW9uKGUsYSl7dmFyIHI9ZVthKzFdKjI1NitlW2FdO3JldHVybiByPDMyNzY4P3I6KDY1NTM1LXIrMSkqLTF9LGxyPWZ1bmN0aW9uKGUsYSl7cmV0dXJuIGVbYSszXSooMTw8MjQpKyhlW2ErMl08PDE2KSsoZVthKzFdPDw4KStlW2FdfSxhYT1mdW5jdGlvbihlLGEpe3JldHVybiBlW2ErM108PDI0fGVbYSsyXTw8MTZ8ZVthKzFdPDw4fGVbYV19LGRjPWZ1bmN0aW9uKGUsYSl7cmV0dXJuIGVbYV08PDI0fGVbYSsxXTw8MTZ8ZVthKzJdPDw4fGVbYSszXX07ZnVuY3Rpb24gUmEoZSxhKXt2YXIgcj0iIixuLHQscz1bXSxpLGMsZixvO3N3aXRjaChhKXtjYXNlImRiY3MiOmlmKG89dGhpcy5sLGdlJiZCdWZmZXIuaXNCdWZmZXIodGhpcykpcj10aGlzLnNsaWNlKHRoaXMubCx0aGlzLmwrMiplKS50b1N0cmluZygidXRmMTZsZSIpO2Vsc2UgZm9yKGY9MDtmPGU7KytmKXIrPVN0cmluZy5mcm9tQ2hhckNvZGUoTnIodGhpcyxvKSksbys9MjtlKj0yO2JyZWFrO2Nhc2UidXRmOCI6cj1PYSh0aGlzLHRoaXMubCx0aGlzLmwrZSk7YnJlYWs7Y2FzZSJ1dGYxNmxlIjplKj0yLHI9QnQodGhpcyx0aGlzLmwsdGhpcy5sK2UpO2JyZWFrO2Nhc2Uid3N0ciI6cmV0dXJuIFJhLmNhbGwodGhpcyxlLCJkYmNzIik7Y2FzZSJscHN0ci1hbnNpIjpyPV9uKHRoaXMsdGhpcy5sKSxlPTQrbHIodGhpcyx0aGlzLmwpO2JyZWFrO2Nhc2UibHBzdHItY3AiOnI9VG4odGhpcyx0aGlzLmwpLGU9NCtscih0aGlzLHRoaXMubCk7YnJlYWs7Y2FzZSJscHdzdHIiOnI9d24odGhpcyx0aGlzLmwpLGU9NCsyKmxyKHRoaXMsdGhpcy5sKTticmVhaztjYXNlImxwcDQiOmU9NCtscih0aGlzLHRoaXMubCkscj1Gbih0aGlzLHRoaXMubCksZSYyJiYoZSs9Mik7YnJlYWs7Y2FzZSI4bHBwNCI6ZT00K2xyKHRoaXMsdGhpcy5sKSxyPUNuKHRoaXMsdGhpcy5sKSxlJjMmJihlKz00LShlJjMpKTticmVhaztjYXNlImNzdHIiOmZvcihlPTAscj0iIjsoaT12YSh0aGlzLHRoaXMubCtlKyspKSE9PTA7KXMucHVzaChydChpKSk7cj1zLmpvaW4oIiIpO2JyZWFrO2Nhc2UiX3dzdHIiOmZvcihlPTAscj0iIjsoaT1Ocih0aGlzLHRoaXMubCtlKSkhPT0wOylzLnB1c2gocnQoaSkpLGUrPTI7ZSs9MixyPXMuam9pbigiIik7YnJlYWs7Y2FzZSJkYmNzLWNvbnQiOmZvcihyPSIiLG89dGhpcy5sLGY9MDtmPGU7KytmKXtpZih0aGlzLmxlbnMmJnRoaXMubGVucy5pbmRleE9mKG8pIT09LTEpcmV0dXJuIGk9dmEodGhpcyxvKSx0aGlzLmw9bysxLGM9UmEuY2FsbCh0aGlzLGUtZixpPyJkYmNzLWNvbnQiOiJzYmNzLWNvbnQiKSxzLmpvaW4oIiIpK2M7cy5wdXNoKHJ0KE5yKHRoaXMsbykpKSxvKz0yfXI9cy5qb2luKCIiKSxlKj0yO2JyZWFrO2Nhc2UiY3BzdHIiOmNhc2Uic2Jjcy1jb250Ijpmb3Iocj0iIixvPXRoaXMubCxmPTA7ZiE9ZTsrK2Ype2lmKHRoaXMubGVucyYmdGhpcy5sZW5zLmluZGV4T2YobykhPT0tMSlyZXR1cm4gaT12YSh0aGlzLG8pLHRoaXMubD1vKzEsYz1SYS5jYWxsKHRoaXMsZS1mLGk/ImRiY3MtY29udCI6InNiY3MtY29udCIpLHMuam9pbigiIikrYztzLnB1c2gocnQodmEodGhpcyxvKSkpLG8rPTF9cj1zLmpvaW4oIiIpO2JyZWFrO2RlZmF1bHQ6c3dpdGNoKGUpe2Nhc2UgMTpyZXR1cm4gbj12YSh0aGlzLHRoaXMubCksdGhpcy5sKyssbjtjYXNlIDI6cmV0dXJuIG49KGE9PT0iaSI/eGM6TnIpKHRoaXMsdGhpcy5sKSx0aGlzLmwrPTIsbjtjYXNlIDQ6Y2FzZS00OnJldHVybiBhPT09ImkifHwhKHRoaXNbdGhpcy5sKzNdJjEyOCk/KG49KGU+MD9hYTpkYykodGhpcyx0aGlzLmwpLHRoaXMubCs9NCxuKToodD1scih0aGlzLHRoaXMubCksdGhpcy5sKz00LHQpO2Nhc2UgODpjYXNlLTg6aWYoYT09PSJmIilyZXR1cm4gZT09OD90PWZ0KHRoaXMsdGhpcy5sKTp0PWZ0KFt0aGlzW3RoaXMubCs3XSx0aGlzW3RoaXMubCs2XSx0aGlzW3RoaXMubCs1XSx0aGlzW3RoaXMubCs0XSx0aGlzW3RoaXMubCszXSx0aGlzW3RoaXMubCsyXSx0aGlzW3RoaXMubCsxXSx0aGlzW3RoaXMubCswXV0sMCksdGhpcy5sKz04LHQ7ZT04O2Nhc2UgMTY6cj1wbih0aGlzLHRoaXMubCxlKTticmVha319cmV0dXJuIHRoaXMubCs9ZSxyfXZhciB2Yz1mdW5jdGlvbihlLGEscil7ZVtyXT1hJjI1NSxlW3IrMV09YT4+PjgmMjU1LGVbcisyXT1hPj4+MTYmMjU1LGVbciszXT1hPj4+MjQmMjU1fSxwYz1mdW5jdGlvbihlLGEscil7ZVtyXT1hJjI1NSxlW3IrMV09YT4+OCYyNTUsZVtyKzJdPWE+PjE2JjI1NSxlW3IrM109YT4+MjQmMjU1fSxnYz1mdW5jdGlvbihlLGEscil7ZVtyXT1hJjI1NSxlW3IrMV09YT4+PjgmMjU1fTtmdW5jdGlvbiBtYyhlLGEscil7dmFyIG49MCx0PTA7aWYocj09PSJkYmNzIil7Zm9yKHQ9MDt0IT1hLmxlbmd0aDsrK3QpZ2ModGhpcyxhLmNoYXJDb2RlQXQodCksdGhpcy5sKzIqdCk7bj0yKmEubGVuZ3RofWVsc2UgaWYocj09PSJzYmNzIil7Zm9yKGE9YS5yZXBsYWNlKC9bXlx4MDAtXHg3Rl0vZywiXyIpLHQ9MDt0IT1hLmxlbmd0aDsrK3QpdGhpc1t0aGlzLmwrdF09YS5jaGFyQ29kZUF0KHQpJjI1NTtuPWEubGVuZ3RofWVsc2UgaWYocj09PSJoZXgiKXtmb3IoO3Q8ZTsrK3QpdGhpc1t0aGlzLmwrK109cGFyc2VJbnQoYS5zbGljZSgyKnQsMip0KzIpLDE2KXx8MDtyZXR1cm4gdGhpc31lbHNlIGlmKHI9PT0idXRmMTZsZSIpe3ZhciBzPU1hdGgubWluKHRoaXMubCtlLHRoaXMubGVuZ3RoKTtmb3IodD0wO3Q8TWF0aC5taW4oYS5sZW5ndGgsZSk7Kyt0KXt2YXIgaT1hLmNoYXJDb2RlQXQodCk7dGhpc1t0aGlzLmwrK109aSYyNTUsdGhpc1t0aGlzLmwrK109aT4+OH1mb3IoO3RoaXMubDxzOyl0aGlzW3RoaXMubCsrXT0wO3JldHVybiB0aGlzfWVsc2Ugc3dpdGNoKGUpe2Nhc2UgMTpuPTEsdGhpc1t0aGlzLmxdPWEmMjU1O2JyZWFrO2Nhc2UgMjpuPTIsdGhpc1t0aGlzLmxdPWEmMjU1LGE+Pj49OCx0aGlzW3RoaXMubCsxXT1hJjI1NTticmVhaztjYXNlIDM6bj0zLHRoaXNbdGhpcy5sXT1hJjI1NSxhPj4+PTgsdGhpc1t0aGlzLmwrMV09YSYyNTUsYT4+Pj04LHRoaXNbdGhpcy5sKzJdPWEmMjU1O2JyZWFrO2Nhc2UgNDpuPTQsdmModGhpcyxhLHRoaXMubCk7YnJlYWs7Y2FzZSA4OmlmKG49OCxyPT09ImYiKXt1Yyh0aGlzLGEsdGhpcy5sKTticmVha31jYXNlIDE2OmJyZWFrO2Nhc2UtNDpuPTQscGModGhpcyxhLHRoaXMubCk7YnJlYWt9cmV0dXJuIHRoaXMubCs9bix0aGlzfWZ1bmN0aW9uIE9uKGUsYSl7dmFyIHI9cG4odGhpcyx0aGlzLmwsZS5sZW5ndGg+PjEpO2lmKHIhPT1lKXRocm93IG5ldyBFcnJvcihhKyJFeHBlY3RlZCAiK2UrIiBzYXcgIityKTt0aGlzLmwrPWUubGVuZ3RoPj4xfWZ1bmN0aW9uICRlKGUsYSl7ZS5sPWEsZS5yZWFkX3NoaWZ0PVJhLGUuY2hrPU9uLGUud3JpdGVfc2hpZnQ9bWN9ZnVuY3Rpb24gWWUoZSxhKXtlLmwrPWF9ZnVuY3Rpb24gYmUoZSl7dmFyIGE9VnIoZSk7cmV0dXJuICRlKGEsMCksYX1mdW5jdGlvbiBQcihlLGEscil7aWYoZSl7dmFyIG4sdCxzOyRlKGUsZS5sfHwwKTtmb3IodmFyIGk9ZS5sZW5ndGgsYz0wLGY9MDtlLmw8aTspe2M9ZS5yZWFkX3NoaWZ0KDEpLGMmMTI4JiYoYz0oYyYxMjcpKygoZS5yZWFkX3NoaWZ0KDEpJjEyNyk8PDcpKTt2YXIgbz1BdFtjXXx8QXRbNjU1MzVdO2ZvcihuPWUucmVhZF9zaGlmdCgxKSxzPW4mMTI3LHQ9MTt0PDQmJm4mMTI4OysrdClzKz0oKG49ZS5yZWFkX3NoaWZ0KDEpKSYxMjcpPDw3KnQ7Zj1lLmwrczt2YXIgbD1vLmYmJm8uZihlLHMscik7aWYoZS5sPWYsYShsLG8sYykpcmV0dXJufX19ZnVuY3Rpb24gYnQoKXt2YXIgZT1bXSxhPWdlPzI1NjoyMDQ4LHI9ZnVuY3Rpb24obyl7dmFyIGw9YmUobyk7cmV0dXJuICRlKGwsMCksbH0sbj1yKGEpLHQ9ZnVuY3Rpb24oKXtuJiYobi5sZW5ndGg+bi5sJiYobj1uLnNsaWNlKDAsbi5sKSxuLmw9bi5sZW5ndGgpLG4ubGVuZ3RoPjAmJmUucHVzaChuKSxuPW51bGwpfSxzPWZ1bmN0aW9uKG8pe3JldHVybiBuJiZvPG4ubGVuZ3RoLW4ubD9uOih0KCksbj1yKE1hdGgubWF4KG8rMSxhKSkpfSxpPWZ1bmN0aW9uKCl7cmV0dXJuIHQoKSxXcihlKX0sYz1mdW5jdGlvbihvKXt0KCksbj1vLG4ubD09bnVsbCYmKG4ubD1uLmxlbmd0aCkscyhhKX07cmV0dXJue25leHQ6cyxwdXNoOmMsZW5kOmksX2J1ZnM6ZX19ZnVuY3Rpb24gSWEoZSxhLHIpe3ZhciBuPVhlKGUpO2lmKGEucz8obi5jUmVsJiYobi5jKz1hLnMuYyksbi5yUmVsJiYobi5yKz1hLnMucikpOihuLmNSZWwmJihuLmMrPWEuYyksbi5yUmVsJiYobi5yKz1hLnIpKSwhcnx8ci5iaWZmPDEyKXtmb3IoO24uYz49MjU2OyluLmMtPTI1Njtmb3IoO24ucj49NjU1MzY7KW4uci09NjU1MzZ9cmV0dXJuIG59ZnVuY3Rpb24gUm4oZSxhLHIpe3ZhciBuPVhlKGUpO3JldHVybiBuLnM9SWEobi5zLGEucyxyKSxuLmU9SWEobi5lLGEucyxyKSxufWZ1bmN0aW9uIE5hKGUsYSl7aWYoZS5jUmVsJiZlLmM8MClmb3IoZT1YZShlKTtlLmM8MDspZS5jKz1hPjg/MTYzODQ6MjU2O2lmKGUuclJlbCYmZS5yPDApZm9yKGU9WGUoZSk7ZS5yPDA7KWUucis9YT44PzEwNDg1NzY6YT41PzY1NTM2OjE2Mzg0O3ZhciByPXVlKGUpO3JldHVybiFlLmNSZWwmJmUuY1JlbCE9bnVsbCYmKHI9VGMocikpLCFlLnJSZWwmJmUuclJlbCE9bnVsbCYmKHI9X2MocikpLHJ9ZnVuY3Rpb24gVXQoZSxhKXtyZXR1cm4gZS5zLnI9PTAmJiFlLnMuclJlbCYmZS5lLnI9PShhLmJpZmY+PTEyPzEwNDg1NzU6YS5iaWZmPj04PzY1NTM2OjE2Mzg0KSYmIWUuZS5yUmVsPyhlLnMuY1JlbD8iIjoiJCIpK1VlKGUucy5jKSsiOiIrKGUuZS5jUmVsPyIiOiIkIikrVWUoZS5lLmMpOmUucy5jPT0wJiYhZS5zLmNSZWwmJmUuZS5jPT0oYS5iaWZmPj0xMj8xNjM4MzoyNTUpJiYhZS5lLmNSZWw/KGUucy5yUmVsPyIiOiIkIikremUoZS5zLnIpKyI6IisoZS5lLnJSZWw/IiI6IiQiKSt6ZShlLmUucik6TmEoZS5zLGEuYmlmZikrIjoiK05hKGUuZSxhLmJpZmYpfWZ1bmN0aW9uIEh0KGUpe3JldHVybiBwYXJzZUludChFYyhlKSwxMCktMX1mdW5jdGlvbiB6ZShlKXtyZXR1cm4iIisoZSsxKX1mdW5jdGlvbiBfYyhlKXtyZXR1cm4gZS5yZXBsYWNlKC8oW0EtWl18XikoXGQrKSQvLCIkMSQkJDIiKX1mdW5jdGlvbiBFYyhlKXtyZXR1cm4gZS5yZXBsYWNlKC9cJChcZCspJC8sIiQxIil9ZnVuY3Rpb24gVnQoZSl7Zm9yKHZhciBhPWtjKGUpLHI9MCxuPTA7biE9PWEubGVuZ3RoOysrbilyPTI2KnIrYS5jaGFyQ29kZUF0KG4pLTY0O3JldHVybiByLTF9ZnVuY3Rpb24gVWUoZSl7aWYoZTwwKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBjb2x1bW4gIitlKTt2YXIgYT0iIjtmb3IoKytlO2U7ZT1NYXRoLmZsb29yKChlLTEpLzI2KSlhPVN0cmluZy5mcm9tQ2hhckNvZGUoKGUtMSklMjYrNjUpK2E7cmV0dXJuIGF9ZnVuY3Rpb24gVGMoZSl7cmV0dXJuIGUucmVwbGFjZSgvXihbQS1aXSkvLCIkJCQxIil9ZnVuY3Rpb24ga2MoZSl7cmV0dXJuIGUucmVwbGFjZSgvXlwkKFtBLVpdKS8sIiQxIil9ZnVuY3Rpb24gd2MoZSl7cmV0dXJuIGUucmVwbGFjZSgvKFwkP1tBLVpdKikoXCQ/XGQqKS8sIiQxLCQyIikuc3BsaXQoIiwiKX1mdW5jdGlvbiBucihlKXtmb3IodmFyIGE9MCxyPTAsbj0wO248ZS5sZW5ndGg7KytuKXt2YXIgdD1lLmNoYXJDb2RlQXQobik7dD49NDgmJnQ8PTU3P2E9MTAqYSsodC00OCk6dD49NjUmJnQ8PTkwJiYocj0yNipyKyh0LTY0KSl9cmV0dXJue2M6ci0xLHI6YS0xfX1mdW5jdGlvbiB1ZShlKXtmb3IodmFyIGE9ZS5jKzEscj0iIjthO2E9KGEtMSkvMjZ8MClyPVN0cmluZy5mcm9tQ2hhckNvZGUoKGEtMSklMjYrNjUpK3I7cmV0dXJuIHIrKGUucisxKX1mdW5jdGlvbiBwYShlKXt2YXIgYT1lLmluZGV4T2YoIjoiKTtyZXR1cm4gYT09LTE/e3M6bnIoZSksZTpucihlKX06e3M6bnIoZS5zbGljZSgwLGEpKSxlOm5yKGUuc2xpY2UoYSsxKSl9fWZ1bmN0aW9uIF9lKGUsYSl7cmV0dXJuIHR5cGVvZiBhPiJ1Inx8dHlwZW9mIGE9PSJudW1iZXIiP19lKGUucyxlLmUpOih0eXBlb2YgZSE9InN0cmluZyImJihlPXVlKGUpKSx0eXBlb2YgYSE9InN0cmluZyImJihhPXVlKGEpKSxlPT1hP2U6ZSsiOiIrYSl9ZnVuY3Rpb24gT2UoZSl7dmFyIGE9e3M6e2M6MCxyOjB9LGU6e2M6MCxyOjB9fSxyPTAsbj0wLHQ9MCxzPWUubGVuZ3RoO2ZvcihyPTA7bjxzJiYhKCh0PWUuY2hhckNvZGVBdChuKS02NCk8MXx8dD4yNik7KytuKXI9MjYqcit0O2ZvcihhLnMuYz0tLXIscj0wO248cyYmISgodD1lLmNoYXJDb2RlQXQobiktNDgpPDB8fHQ+OSk7KytuKXI9MTAqcit0O2lmKGEucy5yPS0tcixuPT09c3x8dCE9MTApcmV0dXJuIGEuZS5jPWEucy5jLGEuZS5yPWEucy5yLGE7Zm9yKCsrbixyPTA7biE9cyYmISgodD1lLmNoYXJDb2RlQXQobiktNjQpPDF8fHQ+MjYpOysrbilyPTI2KnIrdDtmb3IoYS5lLmM9LS1yLHI9MDtuIT1zJiYhKCh0PWUuY2hhckNvZGVBdChuKS00OCk8MHx8dD45KTsrK24pcj0xMCpyK3Q7cmV0dXJuIGEuZS5yPS0tcixhfWZ1bmN0aW9uIEluKGUsYSl7dmFyIHI9ZS50PT0iZCImJmEgaW5zdGFuY2VvZiBEYXRlO2lmKGUueiE9bnVsbCl0cnl7cmV0dXJuIGUudz14cihlLnoscj90cihhKTphKX1jYXRjaHt9dHJ5e3JldHVybiBlLnc9eHIoKGUuWEZ8fHt9KS5udW1GbXRJZHx8KHI/MTQ6MCkscj90cihhKTphKX1jYXRjaHtyZXR1cm4iIithfX1mdW5jdGlvbiBMcihlLGEscil7cmV0dXJuIGU9PW51bGx8fGUudD09bnVsbHx8ZS50PT0ieiI/IiI6ZS53IT09dm9pZCAwP2UudzooZS50PT0iZCImJiFlLnomJnImJnIuZGF0ZU5GJiYoZS56PXIuZGF0ZU5GKSxlLnQ9PSJlIj9pYVtlLnZdfHxlLnY6YT09bnVsbD9JbihlLGUudik6SW4oZSxhKSl9ZnVuY3Rpb24gWHIoZSxhKXt2YXIgcj1hJiZhLnNoZWV0P2Euc2hlZXQ6IlNoZWV0MSIsbj17fTtyZXR1cm4gbltyXT1lLHtTaGVldE5hbWVzOltyXSxTaGVldHM6bn19ZnVuY3Rpb24gTm4oZSxhLHIpe3ZhciBuPXJ8fHt9LHQ9ZT9BcnJheS5pc0FycmF5KGUpOm4uZGVuc2Uscz1lfHwodD9bXTp7fSksaT0wLGM9MDtpZihzJiZuLm9yaWdpbiE9bnVsbCl7aWYodHlwZW9mIG4ub3JpZ2luPT0ibnVtYmVyIilpPW4ub3JpZ2luO2Vsc2V7dmFyIGY9dHlwZW9mIG4ub3JpZ2luPT0ic3RyaW5nIj9ucihuLm9yaWdpbik6bi5vcmlnaW47aT1mLnIsYz1mLmN9c1siIXJlZiJdfHwoc1siIXJlZiJdPSJBMTpBMSIpfXZhciBvPXtzOntjOjFlNyxyOjFlN30sZTp7YzowLHI6MH19O2lmKHNbIiFyZWYiXSl7dmFyIGw9T2Uoc1siIXJlZiJdKTtvLnMuYz1sLnMuYyxvLnMucj1sLnMucixvLmUuYz1NYXRoLm1heChvLmUuYyxsLmUuYyksby5lLnI9TWF0aC5tYXgoby5lLnIsbC5lLnIpLGk9PS0xJiYoby5lLnI9aT1sLmUucisxKX1mb3IodmFyIGg9MDtoIT1hLmxlbmd0aDsrK2gpaWYoYVtoXSl7aWYoIUFycmF5LmlzQXJyYXkoYVtoXSkpdGhyb3cgbmV3IEVycm9yKCJhb2FfdG9fc2hlZXQgZXhwZWN0cyBhbiBhcnJheSBvZiBhcnJheXMiKTtmb3IodmFyIHg9MDt4IT1hW2hdLmxlbmd0aDsrK3gpaWYoISh0eXBlb2YgYVtoXVt4XT4idSIpKXt2YXIgZD17djphW2hdW3hdfSx2PWkraCx1PWMreDtpZihvLnMucj52JiYoby5zLnI9diksby5zLmM+dSYmKG8ucy5jPXUpLG8uZS5yPHYmJihvLmUucj12KSxvLmUuYzx1JiYoby5lLmM9dSksYVtoXVt4XSYmdHlwZW9mIGFbaF1beF09PSJvYmplY3QiJiYhQXJyYXkuaXNBcnJheShhW2hdW3hdKSYmIShhW2hdW3hdaW5zdGFuY2VvZiBEYXRlKSlkPWFbaF1beF07ZWxzZSBpZihBcnJheS5pc0FycmF5KGQudikmJihkLmY9YVtoXVt4XVsxXSxkLnY9ZC52WzBdKSxkLnY9PT1udWxsKWlmKGQuZilkLnQ9Im4iO2Vsc2UgaWYobi5udWxsRXJyb3IpZC50PSJlIixkLnY9MDtlbHNlIGlmKG4uc2hlZXRTdHVicylkLnQ9InoiO2Vsc2UgY29udGludWU7ZWxzZSB0eXBlb2YgZC52PT0ibnVtYmVyIj9kLnQ9Im4iOnR5cGVvZiBkLnY9PSJib29sZWFuIj9kLnQ9ImIiOmQudiBpbnN0YW5jZW9mIERhdGU/KGQuej1uLmRhdGVORnx8ZGVbMTRdLG4uY2VsbERhdGVzPyhkLnQ9ImQiLGQudz14cihkLnosdHIoZC52KSkpOihkLnQ9Im4iLGQudj10cihkLnYpLGQudz14cihkLnosZC52KSkpOmQudD0icyI7aWYodClzW3ZdfHwoc1t2XT1bXSksc1t2XVt1XSYmc1t2XVt1XS56JiYoZC56PXNbdl1bdV0ueiksc1t2XVt1XT1kO2Vsc2V7dmFyIGc9dWUoe2M6dSxyOnZ9KTtzW2ddJiZzW2ddLnomJihkLno9c1tnXS56KSxzW2ddPWR9fX1yZXR1cm4gby5zLmM8MWU3JiYoc1siIXJlZiJdPV9lKG8pKSxzfWZ1bmN0aW9uIGdhKGUsYSl7cmV0dXJuIE5uKG51bGwsZSxhKX1mdW5jdGlvbiBBYyhlKXtyZXR1cm4gZS5yZWFkX3NoaWZ0KDQsImkiKX1mdW5jdGlvbiBqZShlKXt2YXIgYT1lLnJlYWRfc2hpZnQoNCk7cmV0dXJuIGE9PT0wPyIiOmUucmVhZF9zaGlmdChhLCJkYmNzIil9ZnVuY3Rpb24gRmMoZSl7cmV0dXJue2ljaDplLnJlYWRfc2hpZnQoMiksaWZudDplLnJlYWRfc2hpZnQoMil9fWZ1bmN0aW9uIFd0KGUsYSl7dmFyIHI9ZS5sLG49ZS5yZWFkX3NoaWZ0KDEpLHQ9amUoZSkscz1bXSxpPXt0LGg6dH07aWYobiYxKXtmb3IodmFyIGM9ZS5yZWFkX3NoaWZ0KDQpLGY9MDtmIT1jOysrZilzLnB1c2goRmMoZSkpO2kucj1zfWVsc2UgaS5yPVt7aWNoOjAsaWZudDowfV07cmV0dXJuIGUubD1yK2EsaX12YXIgU2M9V3Q7ZnVuY3Rpb24gdnIoZSl7dmFyIGE9ZS5yZWFkX3NoaWZ0KDQpLHI9ZS5yZWFkX3NoaWZ0KDIpO3JldHVybiByKz1lLnJlYWRfc2hpZnQoMSk8PDE2LGUubCsrLHtjOmEsaVN0eWxlUmVmOnJ9fWZ1bmN0aW9uIHRhKGUpe3ZhciBhPWUucmVhZF9zaGlmdCgyKTtyZXR1cm4gYSs9ZS5yZWFkX3NoaWZ0KDEpPDwxNixlLmwrKyx7YzotMSxpU3R5bGVSZWY6YX19dmFyIENjPWplO2Z1bmN0aW9uIEd0KGUpe3ZhciBhPWUucmVhZF9zaGlmdCg0KTtyZXR1cm4gYT09PTB8fGE9PT00Mjk0OTY3Mjk1PyIiOmUucmVhZF9zaGlmdChhLCJkYmNzIil9dmFyIHljPWplLFh0PUd0O2Z1bmN0aW9uICR0KGUpe3ZhciBhPWUuc2xpY2UoZS5sLGUubCs0KSxyPWFbMF0mMSxuPWFbMF0mMjtlLmwrPTQ7dmFyIHQ9bj09PTA/ZnQoWzAsMCwwLDAsYVswXSYyNTIsYVsxXSxhWzJdLGFbM11dLDApOmFhKGEsMCk+PjI7cmV0dXJuIHI/dC8xMDA6dH1mdW5jdGlvbiBQbihlKXt2YXIgYT17czp7fSxlOnt9fTtyZXR1cm4gYS5zLnI9ZS5yZWFkX3NoaWZ0KDQpLGEuZS5yPWUucmVhZF9zaGlmdCg0KSxhLnMuYz1lLnJlYWRfc2hpZnQoNCksYS5lLmM9ZS5yZWFkX3NoaWZ0KDQpLGF9dmFyIG5hPVBuO2Z1bmN0aW9uIEplKGUpe2lmKGUubGVuZ3RoLWUubDw4KXRocm93IlhMUyBYbnVtIEJ1ZmZlciB1bmRlcmZsb3ciO3JldHVybiBlLnJlYWRfc2hpZnQoOCwiZiIpfWZ1bmN0aW9uIERjKGUpe3ZhciBhPXt9LHI9ZS5yZWFkX3NoaWZ0KDEpLG49cj4+PjEsdD1lLnJlYWRfc2hpZnQoMSkscz1lLnJlYWRfc2hpZnQoMiwiaSIpLGk9ZS5yZWFkX3NoaWZ0KDEpLGM9ZS5yZWFkX3NoaWZ0KDEpLGY9ZS5yZWFkX3NoaWZ0KDEpO3N3aXRjaChlLmwrKyxuKXtjYXNlIDA6YS5hdXRvPTE7YnJlYWs7Y2FzZSAxOmEuaW5kZXg9dDt2YXIgbz1zYVt0XTtvJiYoYS5yZ2I9SGEobykpO2JyZWFrO2Nhc2UgMjphLnJnYj1IYShbaSxjLGZdKTticmVhaztjYXNlIDM6YS50aGVtZT10O2JyZWFrfXJldHVybiBzIT0wJiYoYS50aW50PXM+MD9zLzMyNzY3OnMvMzI3NjgpLGF9ZnVuY3Rpb24gT2MoZSl7dmFyIGE9ZS5yZWFkX3NoaWZ0KDEpO2UubCsrO3ZhciByPXtmQm9sZDphJjEsZkl0YWxpYzphJjIsZlVuZGVybGluZTphJjQsZlN0cmlrZW91dDphJjgsZk91dGxpbmU6YSYxNixmU2hhZG93OmEmMzIsZkNvbmRlbnNlOmEmNjQsZkV4dGVuZDphJjEyOH07cmV0dXJuIHJ9ZnVuY3Rpb24gTG4oZSxhKXt2YXIgcj17MjoiQklUTUFQIiwzOiJNRVRBRklMRVBJQ1QiLDg6IkRJQiIsMTQ6IkVOSE1FVEFGSUxFIn0sbj1lLnJlYWRfc2hpZnQoNCk7c3dpdGNoKG4pe2Nhc2UgMDpyZXR1cm4iIjtjYXNlIDQyOTQ5NjcyOTU6Y2FzZSA0Mjk0OTY3Mjk0OnJldHVybiByW2UucmVhZF9zaGlmdCg0KV18fCIifWlmKG4+NDAwKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgQ2xpcGJvYXJkOiAiK24udG9TdHJpbmcoMTYpKTtyZXR1cm4gZS5sLT00LGUucmVhZF9zaGlmdCgwLGE9PTE/Imxwc3RyIjoibHB3c3RyIil9ZnVuY3Rpb24gUmMoZSl7cmV0dXJuIExuKGUsMSl9ZnVuY3Rpb24gSWMoZSl7cmV0dXJuIExuKGUsMil9dmFyIHp0PTIsY3I9MyxvdD0xMSxNbj0xMixsdD0xOSxodD02NCxOYz02NSxQYz03MSxMYz00MTA4LE1jPTQxMjYsR2U9ODAsQm49ODEsQmM9W0dlLEJuXSxiYz17MTp7bjoiQ29kZVBhZ2UiLHQ6enR9LDI6e246IkNhdGVnb3J5Iix0OkdlfSwzOntuOiJQcmVzZW50YXRpb25Gb3JtYXQiLHQ6R2V9LDQ6e246IkJ5dGVDb3VudCIsdDpjcn0sNTp7bjoiTGluZUNvdW50Iix0OmNyfSw2OntuOiJQYXJhZ3JhcGhDb3VudCIsdDpjcn0sNzp7bjoiU2xpZGVDb3VudCIsdDpjcn0sODp7bjoiTm90ZUNvdW50Iix0OmNyfSw5OntuOiJIaWRkZW5Db3VudCIsdDpjcn0sMTA6e246Ik11bHRpbWVkaWFDbGlwQ291bnQiLHQ6Y3J9LDExOntuOiJTY2FsZUNyb3AiLHQ6b3R9LDEyOntuOiJIZWFkaW5nUGFpcnMiLHQ6TGN9LDEzOntuOiJUaXRsZXNPZlBhcnRzIix0Ok1jfSwxNDp7bjoiTWFuYWdlciIsdDpHZX0sMTU6e246IkNvbXBhbnkiLHQ6R2V9LDE2OntuOiJMaW5rc1VwVG9EYXRlIix0Om90fSwxNzp7bjoiQ2hhcmFjdGVyQ291bnQiLHQ6Y3J9LDE5OntuOiJTaGFyZWREb2MiLHQ6b3R9LDIyOntuOiJIeXBlcmxpbmtzQ2hhbmdlZCIsdDpvdH0sMjM6e246IkFwcFZlcnNpb24iLHQ6Y3IscDoidmVyc2lvbiJ9LDI0OntuOiJEaWdTaWciLHQ6TmN9LDI2OntuOiJDb250ZW50VHlwZSIsdDpHZX0sMjc6e246IkNvbnRlbnRTdGF0dXMiLHQ6R2V9LDI4OntuOiJMYW5ndWFnZSIsdDpHZX0sMjk6e246IlZlcnNpb24iLHQ6R2V9LDI1NTp7fSwyMTQ3NDgzNjQ4OntuOiJMb2NhbGUiLHQ6bHR9LDIxNDc0ODM2NTE6e246IkJlaGF2aW9yIix0Omx0fSwxOTE5MDU0NDM0Ont9fSxVYz17MTp7bjoiQ29kZVBhZ2UiLHQ6enR9LDI6e246IlRpdGxlIix0OkdlfSwzOntuOiJTdWJqZWN0Iix0OkdlfSw0OntuOiJBdXRob3IiLHQ6R2V9LDU6e246IktleXdvcmRzIix0OkdlfSw2OntuOiJDb21tZW50cyIsdDpHZX0sNzp7bjoiVGVtcGxhdGUiLHQ6R2V9LDg6e246Ikxhc3RBdXRob3IiLHQ6R2V9LDk6e246IlJldk51bWJlciIsdDpHZX0sMTA6e246IkVkaXRUaW1lIix0Omh0fSwxMTp7bjoiTGFzdFByaW50ZWQiLHQ6aHR9LDEyOntuOiJDcmVhdGVkRGF0ZSIsdDpodH0sMTM6e246Ik1vZGlmaWVkRGF0ZSIsdDpodH0sMTQ6e246IlBhZ2VDb3VudCIsdDpjcn0sMTU6e246IldvcmRDb3VudCIsdDpjcn0sMTY6e246IkNoYXJDb3VudCIsdDpjcn0sMTc6e246IlRodW1ibmFpbCIsdDpQY30sMTg6e246IkFwcGxpY2F0aW9uIix0OkdlfSwxOTp7bjoiRG9jU2VjdXJpdHkiLHQ6Y3J9LDI1NTp7fSwyMTQ3NDgzNjQ4OntuOiJMb2NhbGUiLHQ6bHR9LDIxNDc0ODM2NTE6e246IkJlaGF2aW9yIix0Omx0fSwxOTE5MDU0NDM0Ont9fSxibj17MToiVVMiLDI6IkNBIiwzOiIiLDc6IlJVIiwyMDoiRUciLDMwOiJHUiIsMzE6Ik5MIiwzMjoiQkUiLDMzOiJGUiIsMzQ6IkVTIiwzNjoiSFUiLDM5OiJJVCIsNDE6IkNIIiw0MzoiQVQiLDQ0OiJHQiIsNDU6IkRLIiw0NjoiU0UiLDQ3OiJOTyIsNDg6IlBMIiw0OToiREUiLDUyOiJNWCIsNTU6IkJSIiw2MToiQVUiLDY0OiJOWiIsNjY6IlRIIiw4MToiSlAiLDgyOiJLUiIsODQ6IlZOIiw4NjoiQ04iLDkwOiJUUiIsMTA1OiJKUyIsMjEzOiJEWiIsMjE2OiJNQSIsMjE4OiJMWSIsMzUxOiJQVCIsMzU0OiJJUyIsMzU4OiJGSSIsNDIwOiJDWiIsODg2OiJUVyIsOTYxOiJMQiIsOTYyOiJKTyIsOTYzOiJTWSIsOTY0OiJJUSIsOTY1OiJLVyIsOTY2OiJTQSIsOTcxOiJBRSIsOTcyOiJJTCIsOTc0OiJRQSIsOTgxOiJJUiIsNjU1MzU6IlVTIn0sSGM9W251bGwsInNvbGlkIiwibWVkaXVtR3JheSIsImRhcmtHcmF5IiwibGlnaHRHcmF5IiwiZGFya0hvcml6b250YWwiLCJkYXJrVmVydGljYWwiLCJkYXJrRG93biIsImRhcmtVcCIsImRhcmtHcmlkIiwiZGFya1RyZWxsaXMiLCJsaWdodEhvcml6b250YWwiLCJsaWdodFZlcnRpY2FsIiwibGlnaHREb3duIiwibGlnaHRVcCIsImxpZ2h0R3JpZCIsImxpZ2h0VHJlbGxpcyIsImdyYXkxMjUiLCJncmF5MDYyNSJdO2Z1bmN0aW9uIFZjKGUpe3JldHVybiBlLm1hcChmdW5jdGlvbihhKXtyZXR1cm5bYT4+MTYmMjU1LGE+PjgmMjU1LGEmMjU1XX0pfXZhciBXYz1WYyhbMCwxNjc3NzIxNSwxNjcxMTY4MCw2NTI4MCwyNTUsMTY3NzY5NjAsMTY3MTE5MzUsNjU1MzUsMCwxNjc3NzIxNSwxNjcxMTY4MCw2NTI4MCwyNTUsMTY3NzY5NjAsMTY3MTE5MzUsNjU1MzUsODM4ODYwOCwzMjc2OCwxMjgsODQyMTM3Niw4Mzg4NzM2LDMyODk2LDEyNjMyMjU2LDg0MjE1MDQsMTAwNjY0MzEsMTAwNDAxNjYsMTY3NzcxNjQsMTM0MzQ4NzksNjY4NDc3NCwxNjc0NDU3NiwyNjMxNiwxMzQyMTgyMywxMjgsMTY3MTE5MzUsMTY3NzY5NjAsNjU1MzUsODM4ODczNiw4Mzg4NjA4LDMyODk2LDI1NSw1MjQ3OSwxMzQzNDg3OSwxMzQzNDgyOCwxNjc3NzExMywxMDA3OTQ4NywxNjc1MTA1MiwxMzQwODc2NywxNjc2NDA1NywzMzY4NzAzLDMzOTQ3NjQsMTAwNzkyMzIsMTY3NjM5MDQsMTY3NTA4NDgsMTY3Mzc3OTIsNjcxMDkzNyw5ODY4OTUwLDEzMTU4LDMzODE2MDYsMTMwNTYsMzM1NTM5MiwxMDA0MDA2NCwxMDA0MDE2NiwzMzU1NTQ1LDMzNTU0NDMsMTY3NzcyMTUsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXSksc2E9WGUoV2MpLGlhPXswOiIjTlVMTCEiLDc6IiNESVYvMCEiLDE1OiIjVkFMVUUhIiwyMzoiI1JFRiEiLDI5OiIjTkFNRT8iLDM2OiIjTlVNISIsNDI6IiNOL0EiLDQzOiIjR0VUVElOR19EQVRBIiwyNTU6IiNXVEY/In0sVW49eyIjTlVMTCEiOjAsIiNESVYvMCEiOjcsIiNWQUxVRSEiOjE1LCIjUkVGISI6MjMsIiNOQU1FPyI6MjksIiNOVU0hIjozNiwiI04vQSI6NDIsIiNHRVRUSU5HX0RBVEEiOjQzLCIjV1RGPyI6MjU1fSxIbj17ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0Lm1haW4reG1sIjoid29ya2Jvb2tzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoZWV0Lm1hY3JvRW5hYmxlZC5tYWluK3htbCI6Indvcmtib29rcyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zaGVldC5iaW5hcnkubWFjcm9FbmFibGVkLm1haW4iOiJ3b3JrYm9va3MiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuYWRkaW4ubWFjcm9FbmFibGVkLm1haW4reG1sIjoid29ya2Jvb2tzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGVtcGxhdGUubWFpbit4bWwiOiJ3b3JrYm9va3MiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC53b3Jrc2hlZXQreG1sIjoic2hlZXRzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLndvcmtzaGVldCI6InNoZWV0cyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5iaW5JbmRleFdzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmNoYXJ0c2hlZXQreG1sIjoiY2hhcnRzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmNoYXJ0c2hlZXQiOiJjaGFydHMiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwubWFjcm9zaGVldCt4bWwiOiJtYWNyb3MiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwubWFjcm9zaGVldCI6Im1hY3JvcyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5pbnRsbWFjcm9zaGVldCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuYmluSW5kZXhNcyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5kaWFsb2dzaGVldCt4bWwiOiJkaWFsb2dzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmRpYWxvZ3NoZWV0IjoiZGlhbG9ncyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoYXJlZFN0cmluZ3MreG1sIjoic3RycyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zaGFyZWRTdHJpbmdzIjoic3RycyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnN0eWxlcyt4bWwiOiJzdHlsZXMiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc3R5bGVzIjoic3R5bGVzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UuY29yZS1wcm9wZXJ0aWVzK3htbCI6ImNvcmVwcm9wcyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5jdXN0b20tcHJvcGVydGllcyt4bWwiOiJjdXN0cHJvcHMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZXh0ZW5kZWQtcHJvcGVydGllcyt4bWwiOiJleHRwcm9wcyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5jdXN0b21YbWxQcm9wZXJ0aWVzK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jdXN0b21Qcm9wZXJ0eSI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jb21tZW50cyt4bWwiOiJjb21tZW50cyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5jb21tZW50cyI6ImNvbW1lbnRzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnRocmVhZGVkY29tbWVudHMreG1sIjoidGhyZWFkZWRjb21tZW50cyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5wZXJzb24reG1sIjoicGVvcGxlIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXRNZXRhZGF0YSt4bWwiOiJtZXRhZGF0YSIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zaGVldE1ldGFkYXRhIjoibWV0YWRhdGEiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwucGl2b3RUYWJsZSI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5waXZvdFRhYmxlK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmNoYXJ0K3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLmNoYXJ0Y29sb3JzdHlsZSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS5jaGFydHN0eWxlK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLmNoYXJ0ZXgreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5jYWxjQ2hhaW4iOiJjYWxjY2hhaW5zIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY2FsY0NoYWluK3htbCI6ImNhbGNjaGFpbnMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5wcmludGVyU2V0dGluZ3MiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS5hY3RpdmVYIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2UuYWN0aXZlWCt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmF0dGFjaGVkVG9vbGJhcnMiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmNvbm5lY3Rpb25zIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmNvbm5lY3Rpb25zK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuZXh0ZXJuYWxMaW5rIjoibGlua3MiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5leHRlcm5hbExpbmsreG1sIjoibGlua3MiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwucGl2b3RDYWNoZURlZmluaXRpb24iOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnBpdm90Q2FjaGVSZWNvcmRzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnBpdm90Q2FjaGVEZWZpbml0aW9uK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5waXZvdENhY2hlUmVjb3Jkcyt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnF1ZXJ5VGFibGUiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucXVlcnlUYWJsZSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnVzZXJOYW1lcyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwucmV2aXNpb25IZWFkZXJzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5yZXZpc2lvbkxvZyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5yZXZpc2lvbkhlYWRlcnMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnJldmlzaW9uTG9nK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC51c2VyTmFtZXMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC50YWJsZVNpbmdsZUNlbGxzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRhYmxlU2luZ2xlQ2VsbHMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zbGljZXIiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNsaWNlckNhY2hlIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zbGljZXIreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zbGljZXJDYWNoZSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLndzU29ydE1hcCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwudGFibGUiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGFibGUreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC50aGVtZSt4bWwiOiJ0aGVtZXMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudGhlbWVPdmVycmlkZSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLlRpbWVsaW5lK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuVGltZWxpbmVDYWNoZSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS52YmFQcm9qZWN0IjoidmJhIiwiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS52YmFQcm9qZWN0U2lnbmF0dXJlIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2Uudm9sYXRpbGVEZXBlbmRlbmNpZXMiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudm9sYXRpbGVEZXBlbmRlbmNpZXMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5jb250cm9scHJvcGVydGllcyt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50Lm1vZGVsK2RhdGEiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLlN1cnZleSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmcreG1sIjoiZHJhd2luZ3MiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmNoYXJ0c2hhcGVzK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRpYWdyYW1Db2xvcnMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbURhdGEreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbUxheW91dCt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5kaWFncmFtU3R5bGUreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC52bWxEcmF3aW5nIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLnJlbGF0aW9uc2hpcHMreG1sIjoicmVscyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5vbGVPYmplY3QiOiJUT0RPIiwiaW1hZ2UvcG5nIjoiVE9ETyIsc2hlZXQ6ImpzIn07ZnVuY3Rpb24gR2MoKXtyZXR1cm57d29ya2Jvb2tzOltdLHNoZWV0czpbXSxjaGFydHM6W10sZGlhbG9nczpbXSxtYWNyb3M6W10scmVsczpbXSxzdHJzOltdLGNvbW1lbnRzOltdLHRocmVhZGVkY29tbWVudHM6W10sbGlua3M6W10sY29yZXByb3BzOltdLGV4dHByb3BzOltdLGN1c3Rwcm9wczpbXSx0aGVtZXM6W10sc3R5bGVzOltdLGNhbGNjaGFpbnM6W10sdmJhOltdLGRyYXdpbmdzOltdLG1ldGFkYXRhOltdLHBlb3BsZTpbXSxUT0RPOltdLHhtbG5zOiIifX1mdW5jdGlvbiBYYyhlKXt2YXIgYT1HYygpO2lmKCFlfHwhZS5tYXRjaClyZXR1cm4gYTt2YXIgcj17fTtpZigoZS5tYXRjaChLZSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciB0PW9lKG4pO3N3aXRjaCh0WzBdLnJlcGxhY2UocWksIjwiKSl7Y2FzZSI8P3htbCI6YnJlYWs7Y2FzZSI8VHlwZXMiOmEueG1sbnM9dFsieG1sbnMiKyh0WzBdLm1hdGNoKC88KFx3Kyk6Lyl8fFsiIiwiIl0pWzFdXTticmVhaztjYXNlIjxEZWZhdWx0IjpyW3QuRXh0ZW5zaW9uXT10LkNvbnRlbnRUeXBlO2JyZWFrO2Nhc2UiPE92ZXJyaWRlIjphW0huW3QuQ29udGVudFR5cGVdXSE9PXZvaWQgMCYmYVtIblt0LkNvbnRlbnRUeXBlXV0ucHVzaCh0LlBhcnROYW1lKTticmVha319KSxhLnhtbG5zIT09b2MuQ1QpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIE5hbWVzcGFjZTogIithLnhtbG5zKTtyZXR1cm4gYS5jYWxjY2hhaW49YS5jYWxjY2hhaW5zLmxlbmd0aD4wP2EuY2FsY2NoYWluc1swXToiIixhLnNzdD1hLnN0cnMubGVuZ3RoPjA/YS5zdHJzWzBdOiIiLGEuc3R5bGU9YS5zdHlsZXMubGVuZ3RoPjA/YS5zdHlsZXNbMF06IiIsYS5kZWZhdWx0cz1yLGRlbGV0ZSBhLmNhbGNjaGFpbnMsYX12YXIgbWE9e1dCOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL29mZmljZURvY3VtZW50IixTSEVFVDoiaHR0cDovL3NoZWV0anMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9vZmZpY2VEb2N1bWVudCIsSExJTks6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvaHlwZXJsaW5rIixWTUw6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvdm1sRHJhd2luZyIsWFBBVEg6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvZXh0ZXJuYWxMaW5rUGF0aCIsWE1JU1M6Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlLzIwMDYvcmVsYXRpb25zaGlwcy94bEV4dGVybmFsTGlua1BhdGgveGxQYXRoTWlzc2luZyIsWExJTks6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvZXh0ZXJuYWxMaW5rIixDWE1MOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2N1c3RvbVhtbCIsQ1hNTFA6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvY3VzdG9tWG1sUHJvcHMiLENNTlQ6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvY29tbWVudHMiLENPUkVfUFJPUFM6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvcmVsYXRpb25zaGlwcy9tZXRhZGF0YS9jb3JlLXByb3BlcnRpZXMiLEVYVF9QUk9QUzoiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9leHRlbmRlZC1wcm9wZXJ0aWVzIixDVVNUX1BST1BTOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2N1c3RvbS1wcm9wZXJ0aWVzIixTU1Q6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvc2hhcmVkU3RyaW5ncyIsU1RZOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3N0eWxlcyIsVEhFTUU6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvdGhlbWUiLENIQVJUOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2NoYXJ0IixDSEFSVEVYOiJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDE0L3JlbGF0aW9uc2hpcHMvY2hhcnRFeCIsQ1M6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvY2hhcnRzaGVldCIsV1M6WyJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3dvcmtzaGVldCIsImh0dHA6Ly9wdXJsLm9jbGMub3JnL29veG1sL29mZmljZURvY3VtZW50L3JlbGF0aW9uc2hpcHMvd29ya3NoZWV0Il0sRFM6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvZGlhbG9nc2hlZXQiLE1TOiJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA2L3JlbGF0aW9uc2hpcHMveGxNYWNyb3NoZWV0IixJTUc6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvaW1hZ2UiLERSQVc6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvZHJhd2luZyIsWExNRVRBOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3NoZWV0TWV0YWRhdGEiLFRDTU5UOiJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDE3LzEwL3JlbGF0aW9uc2hpcHMvdGhyZWFkZWRDb21tZW50IixQRU9QTEU6Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlLzIwMTcvMTAvcmVsYXRpb25zaGlwcy9wZXJzb24iLFZCQToiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAwNi9yZWxhdGlvbnNoaXBzL3ZiYVByb2plY3QifTtmdW5jdGlvbiBLdChlKXt2YXIgYT1lLmxhc3RJbmRleE9mKCIvIik7cmV0dXJuIGUuc2xpY2UoMCxhKzEpKyJfcmVscy8iK2Uuc2xpY2UoYSsxKSsiLnJlbHMifWZ1bmN0aW9uIFBhKGUsYSl7dmFyIHI9eyIhaWQiOnt9fTtpZighZSlyZXR1cm4gcjthLmNoYXJBdCgwKSE9PSIvIiYmKGE9Ii8iK2EpO3ZhciBuPXt9O3JldHVybihlLm1hdGNoKEtlKXx8W10pLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHM9b2UodCk7aWYoc1swXT09PSI8UmVsYXRpb25zaGlwIil7dmFyIGk9e307aS5UeXBlPXMuVHlwZSxpLlRhcmdldD1zLlRhcmdldCxpLklkPXMuSWQscy5UYXJnZXRNb2RlJiYoaS5UYXJnZXRNb2RlPXMuVGFyZ2V0TW9kZSk7dmFyIGM9cy5UYXJnZXRNb2RlPT09IkV4dGVybmFsIj9zLlRhcmdldDpTYShzLlRhcmdldCxhKTtyW2NdPWksbltzLklkXT1pfX0pLHJbIiFpZCJdPW4scn12YXIgJGM9ImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuc3ByZWFkc2hlZXQiO2Z1bmN0aW9uIHpjKGUsYSl7Zm9yKHZhciByPU10KGUpLG4sdDtuPURhLmV4ZWMocik7KXN3aXRjaChuWzNdKXtjYXNlIm1hbmlmZXN0IjpicmVhaztjYXNlImZpbGUtZW50cnkiOmlmKHQ9b2UoblswXSwhMSksdC5wYXRoPT0iLyImJnQudHlwZSE9PSRjKXRocm93IG5ldyBFcnJvcigiVGhpcyBPcGVuRG9jdW1lbnQgaXMgbm90IGEgc3ByZWFkc2hlZXQiKTticmVhaztjYXNlImVuY3J5cHRpb24tZGF0YSI6Y2FzZSJhbGdvcml0aG0iOmNhc2Uic3RhcnQta2V5LWdlbmVyYXRpb24iOmNhc2Uia2V5LWRlcml2YXRpb24iOnRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgT0RTIEVuY3J5cHRpb24iKTtkZWZhdWx0OmlmKGEmJmEuV1RGKXRocm93IG59fXZhciBMYT1bWyJjcDpjYXRlZ29yeSIsIkNhdGVnb3J5Il0sWyJjcDpjb250ZW50U3RhdHVzIiwiQ29udGVudFN0YXR1cyJdLFsiY3A6a2V5d29yZHMiLCJLZXl3b3JkcyJdLFsiY3A6bGFzdE1vZGlmaWVkQnkiLCJMYXN0QXV0aG9yIl0sWyJjcDpsYXN0UHJpbnRlZCIsIkxhc3RQcmludGVkIl0sWyJjcDpyZXZpc2lvbiIsIlJldk51bWJlciJdLFsiY3A6dmVyc2lvbiIsIlZlcnNpb24iXSxbImRjOmNyZWF0b3IiLCJBdXRob3IiXSxbImRjOmRlc2NyaXB0aW9uIiwiQ29tbWVudHMiXSxbImRjOmlkZW50aWZpZXIiLCJJZGVudGlmaWVyIl0sWyJkYzpsYW5ndWFnZSIsIkxhbmd1YWdlIl0sWyJkYzpzdWJqZWN0IiwiU3ViamVjdCJdLFsiZGM6dGl0bGUiLCJUaXRsZSJdLFsiZGN0ZXJtczpjcmVhdGVkIiwiQ3JlYXRlZERhdGUiLCJkYXRlIl0sWyJkY3Rlcm1zOm1vZGlmaWVkIiwiTW9kaWZpZWREYXRlIiwiZGF0ZSJdXSxLYz1mdW5jdGlvbigpe2Zvcih2YXIgZT1uZXcgQXJyYXkoTGEubGVuZ3RoKSxhPTA7YTxMYS5sZW5ndGg7KythKXt2YXIgcj1MYVthXSxuPSIoPzoiK3JbMF0uc2xpY2UoMCxyWzBdLmluZGV4T2YoIjoiKSkrIjopIityWzBdLnNsaWNlKHJbMF0uaW5kZXhPZigiOiIpKzEpO2VbYV09bmV3IFJlZ0V4cCgiPCIrbisiW14+XSo+KFtcXHNcXFNdKj8pPC8iK24rIj4iKX1yZXR1cm4gZX0oKTtmdW5jdGlvbiBWbihlKXt2YXIgYT17fTtlPUFlKGUpO2Zvcih2YXIgcj0wO3I8TGEubGVuZ3RoOysrcil7dmFyIG49TGFbcl0sdD1lLm1hdGNoKEtjW3JdKTt0IT1udWxsJiZ0Lmxlbmd0aD4wJiYoYVtuWzFdXT1FZSh0WzFdKSksblsyXT09PSJkYXRlIiYmYVtuWzFdXSYmKGFbblsxXV09V2UoYVtuWzFdXSkpfXJldHVybiBhfXZhciBZYz1bWyJBcHBsaWNhdGlvbiIsIkFwcGxpY2F0aW9uIiwic3RyaW5nIl0sWyJBcHBWZXJzaW9uIiwiQXBwVmVyc2lvbiIsInN0cmluZyJdLFsiQ29tcGFueSIsIkNvbXBhbnkiLCJzdHJpbmciXSxbIkRvY1NlY3VyaXR5IiwiRG9jU2VjdXJpdHkiLCJzdHJpbmciXSxbIk1hbmFnZXIiLCJNYW5hZ2VyIiwic3RyaW5nIl0sWyJIeXBlcmxpbmtzQ2hhbmdlZCIsIkh5cGVybGlua3NDaGFuZ2VkIiwiYm9vbCJdLFsiU2hhcmVkRG9jIiwiU2hhcmVkRG9jIiwiYm9vbCJdLFsiTGlua3NVcFRvRGF0ZSIsIkxpbmtzVXBUb0RhdGUiLCJib29sIl0sWyJTY2FsZUNyb3AiLCJTY2FsZUNyb3AiLCJib29sIl0sWyJIZWFkaW5nUGFpcnMiLCJIZWFkaW5nUGFpcnMiLCJyYXciXSxbIlRpdGxlc09mUGFydHMiLCJUaXRsZXNPZlBhcnRzIiwicmF3Il1dO2Z1bmN0aW9uIFduKGUsYSxyLG4pe3ZhciB0PVtdO2lmKHR5cGVvZiBlPT0ic3RyaW5nIil0PWhuKGUsbik7ZWxzZSBmb3IodmFyIHM9MDtzPGUubGVuZ3RoOysrcyl0PXQuY29uY2F0KGVbc10ubWFwKGZ1bmN0aW9uKGwpe3JldHVybnt2Omx9fSkpO3ZhciBpPXR5cGVvZiBhPT0ic3RyaW5nIj9obihhLG4pLm1hcChmdW5jdGlvbihsKXtyZXR1cm4gbC52fSk6YSxjPTAsZj0wO2lmKGkubGVuZ3RoPjApZm9yKHZhciBvPTA7byE9PXQubGVuZ3RoO28rPTIpe3N3aXRjaChmPSt0W28rMV0udix0W29dLnYpe2Nhc2UiV29ya3NoZWV0cyI6Y2FzZSLlt6XkvZzooagiOmNhc2Ui0JvQuNGB0YLRiyI6Y2FzZSLYo9mI2LHYp9mCINin2YTYudmF2YQiOmNhc2Ui44Ov44O844Kv44K344O844OIIjpjYXNlIteS15zXmdeV16DXldeqINei15HXldeT15QiOmNhc2UiQXJiZWl0c2Jsw6R0dGVyIjpjYXNlIsOHYWzEscWfbWEgU2F5ZmFsYXLEsSI6Y2FzZSJGZXVpbGxlcyBkZSBjYWxjdWwiOmNhc2UiRm9nbGkgZGkgbGF2b3JvIjpjYXNlIkZvbGhhcyBkZSBjw6FsY3VsbyI6Y2FzZSJQbGFuaWxoYXMiOmNhc2UiUmVnbmVhcmsiOmNhc2UiSG9qYXMgZGUgY8OhbGN1bG8iOmNhc2UiV2Vya2JsYWRlbiI6ci5Xb3Jrc2hlZXRzPWYsci5TaGVldE5hbWVzPWkuc2xpY2UoYyxjK2YpO2JyZWFrO2Nhc2UiTmFtZWQgUmFuZ2VzIjpjYXNlIlJhbmdvcyBjb24gbm9tYnJlIjpjYXNlIuWQjeWJjeS7mOOBjeS4gOimpyI6Y2FzZSJCZW5hbm50ZSBCZXJlaWNoZSI6Y2FzZSJOYXZuZ2l2bmUgb21yw6VkZXIiOnIuTmFtZWRSYW5nZXM9ZixyLkRlZmluZWROYW1lcz1pLnNsaWNlKGMsYytmKTticmVhaztjYXNlIkNoYXJ0cyI6Y2FzZSJEaWFncmFtbWUiOnIuQ2hhcnRzaGVldHM9ZixyLkNoYXJ0TmFtZXM9aS5zbGljZShjLGMrZik7YnJlYWt9Yys9Zn19ZnVuY3Rpb24gamMoZSxhLHIpe3ZhciBuPXt9O3JldHVybiBhfHwoYT17fSksZT1BZShlKSxZYy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBzPShlLm1hdGNoKHlhKHRbMF0pKXx8W10pWzFdO3N3aXRjaCh0WzJdKXtjYXNlInN0cmluZyI6cyYmKGFbdFsxXV09RWUocykpO2JyZWFrO2Nhc2UiYm9vbCI6YVt0WzFdXT1zPT09InRydWUiO2JyZWFrO2Nhc2UicmF3Ijp2YXIgaT1lLm1hdGNoKG5ldyBSZWdFeHAoIjwiK3RbMF0rIltePl0qPihbXFxzXFxTXSo/KTwvIit0WzBdKyI+IikpO2kmJmkubGVuZ3RoPjAmJihuW3RbMV1dPWlbMV0pO2JyZWFrfX0pLG4uSGVhZGluZ1BhaXJzJiZuLlRpdGxlc09mUGFydHMmJlduKG4uSGVhZGluZ1BhaXJzLG4uVGl0bGVzT2ZQYXJ0cyxhLHIpLGF9dmFyIEpjPS88W14+XSs+W148XSovZztmdW5jdGlvbiBaYyhlLGEpe3ZhciByPXt9LG49IiIsdD1lLm1hdGNoKEpjKTtpZih0KWZvcih2YXIgcz0wO3MhPXQubGVuZ3RoOysrcyl7dmFyIGk9dFtzXSxjPW9lKGkpO3N3aXRjaChjWzBdKXtjYXNlIjw/eG1sIjpicmVhaztjYXNlIjxQcm9wZXJ0aWVzIjpicmVhaztjYXNlIjxwcm9wZXJ0eSI6bj1FZShjLm5hbWUpO2JyZWFrO2Nhc2UiPC9wcm9wZXJ0eT4iOm49bnVsbDticmVhaztkZWZhdWx0OmlmKGkuaW5kZXhPZigiPHZ0OiIpPT09MCl7dmFyIGY9aS5zcGxpdCgiPiIpLG89ZlswXS5zbGljZSg0KSxsPWZbMV07c3dpdGNoKG8pe2Nhc2UibHBzdHIiOmNhc2UiYnN0ciI6Y2FzZSJscHdzdHIiOnJbbl09RWUobCk7YnJlYWs7Y2FzZSJib29sIjpyW25dPVNlKGwpO2JyZWFrO2Nhc2UiaTEiOmNhc2UiaTIiOmNhc2UiaTQiOmNhc2UiaTgiOmNhc2UiaW50IjpjYXNlInVpbnQiOnJbbl09cGFyc2VJbnQobCwxMCk7YnJlYWs7Y2FzZSJyNCI6Y2FzZSJyOCI6Y2FzZSJkZWNpbWFsIjpyW25dPXBhcnNlRmxvYXQobCk7YnJlYWs7Y2FzZSJmaWxldGltZSI6Y2FzZSJkYXRlIjpyW25dPVdlKGwpO2JyZWFrO2Nhc2UiY3kiOmNhc2UiZXJyb3IiOnJbbl09RWUobCk7YnJlYWs7ZGVmYXVsdDppZihvLnNsaWNlKC0xKT09Ii8iKWJyZWFrO2EuV1RGJiZ0eXBlb2YgY29uc29sZTwidSImJmNvbnNvbGUud2FybigiVW5leHBlY3RlZCIsaSxvLGYpfX1lbHNlIGlmKGkuc2xpY2UoMCwyKSE9PSI8LyIpe2lmKGEuV1RGKXRocm93IG5ldyBFcnJvcihpKX19fXJldHVybiByfXZhciBxYz17VGl0bGU6IlRpdGxlIixTdWJqZWN0OiJTdWJqZWN0IixBdXRob3I6IkF1dGhvciIsS2V5d29yZHM6IktleXdvcmRzIixDb21tZW50czoiRGVzY3JpcHRpb24iLExhc3RBdXRob3I6Ikxhc3RBdXRob3IiLFJldk51bWJlcjoiUmV2aXNpb24iLEFwcGxpY2F0aW9uOiJBcHBOYW1lIixMYXN0UHJpbnRlZDoiTGFzdFByaW50ZWQiLENyZWF0ZWREYXRlOiJDcmVhdGVkIixNb2RpZmllZERhdGU6Ikxhc3RTYXZlZCIsQ2F0ZWdvcnk6IkNhdGVnb3J5IixNYW5hZ2VyOiJNYW5hZ2VyIixDb21wYW55OiJDb21wYW55IixBcHBWZXJzaW9uOiJWZXJzaW9uIixDb250ZW50U3RhdHVzOiJDb250ZW50U3RhdHVzIixJZGVudGlmaWVyOiJJZGVudGlmaWVyIixMYW5ndWFnZToiTGFuZ3VhZ2UifSxZdDtmdW5jdGlvbiBRYyhlLGEscil7WXR8fChZdD1JdChxYykpLGE9WXRbYV18fGEsZVthXT1yfWZ1bmN0aW9uIGp0KGUpe3ZhciBhPWUucmVhZF9zaGlmdCg0KSxyPWUucmVhZF9zaGlmdCg0KTtyZXR1cm4gbmV3IERhdGUoKHIvMWU3Kk1hdGgucG93KDIsMzIpK2EvMWU3LTExNjQ0NDczNjAwKSoxZTMpLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgvXC4wMDAvLCIiKX1mdW5jdGlvbiBHbihlLGEscil7dmFyIG49ZS5sLHQ9ZS5yZWFkX3NoaWZ0KDAsImxwc3RyLWNwIik7aWYocilmb3IoO2UubC1uJjM7KSsrZS5sO3JldHVybiB0fWZ1bmN0aW9uIFhuKGUsYSxyKXt2YXIgbj1lLnJlYWRfc2hpZnQoMCwibHB3c3RyIik7cmV0dXJuIG59ZnVuY3Rpb24gJG4oZSxhLHIpe3JldHVybiBhPT09MzE/WG4oZSk6R24oZSxhLHIpfWZ1bmN0aW9uIEp0KGUsYSxyKXtyZXR1cm4gJG4oZSxhLHI9PT0hMT8wOjQpfWZ1bmN0aW9uIGVmKGUsYSl7aWYoIWEpdGhyb3cgbmV3IEVycm9yKCJWdFVuYWxpZ25lZFN0cmluZyBtdXN0IGhhdmUgcG9zaXRpdmUgbGVuZ3RoIik7cmV0dXJuICRuKGUsYSwwKX1mdW5jdGlvbiByZihlKXtmb3IodmFyIGE9ZS5yZWFkX3NoaWZ0KDQpLHI9W10sbj0wO24hPWE7KytuKXt2YXIgdD1lLmw7cltuXT1lLnJlYWRfc2hpZnQoMCwibHB3c3RyIikucmVwbGFjZShyciwiIiksZS5sLXQmMiYmKGUubCs9Mil9cmV0dXJuIHJ9ZnVuY3Rpb24gYWYoZSl7Zm9yKHZhciBhPWUucmVhZF9zaGlmdCg0KSxyPVtdLG49MDtuIT1hOysrbilyW25dPWUucmVhZF9zaGlmdCgwLCJscHN0ci1jcCIpLnJlcGxhY2UocnIsIiIpO3JldHVybiByfWZ1bmN0aW9uIHRmKGUpe3ZhciBhPWUubCxyPXV0KGUsQm4pO2VbZS5sXT09MCYmZVtlLmwrMV09PTAmJmUubC1hJjImJihlLmwrPTIpO3ZhciBuPXV0KGUsY3IpO3JldHVybltyLG5dfWZ1bmN0aW9uIG5mKGUpe2Zvcih2YXIgYT1lLnJlYWRfc2hpZnQoNCkscj1bXSxuPTA7bjxhLzI7KytuKXIucHVzaCh0ZihlKSk7cmV0dXJuIHJ9ZnVuY3Rpb24gem4oZSxhKXtmb3IodmFyIHI9ZS5yZWFkX3NoaWZ0KDQpLG49e30sdD0wO3QhPXI7Kyt0KXt2YXIgcz1lLnJlYWRfc2hpZnQoNCksaT1lLnJlYWRfc2hpZnQoNCk7bltzXT1lLnJlYWRfc2hpZnQoaSxhPT09MTIwMD8idXRmMTZsZSI6InV0ZjgiKS5yZXBsYWNlKHJyLCIiKS5yZXBsYWNlKEFhLCIhIiksYT09PTEyMDAmJmklMiYmKGUubCs9Mil9cmV0dXJuIGUubCYzJiYoZS5sPWUubD4+Mzw8Miksbn1mdW5jdGlvbiBLbihlKXt2YXIgYT1lLnJlYWRfc2hpZnQoNCkscj1lLnNsaWNlKGUubCxlLmwrYSk7cmV0dXJuIGUubCs9YSwoYSYzKT4wJiYoZS5sKz00LShhJjMpJjMpLHJ9ZnVuY3Rpb24gc2YoZSl7dmFyIGE9e307cmV0dXJuIGEuU2l6ZT1lLnJlYWRfc2hpZnQoNCksZS5sKz1hLlNpemUrMy0oYS5TaXplLTEpJTQsYX1mdW5jdGlvbiB1dChlLGEscil7dmFyIG49ZS5yZWFkX3NoaWZ0KDIpLHQscz1yfHx7fTtpZihlLmwrPTIsYSE9PU1uJiZuIT09YSYmQmMuaW5kZXhPZihhKT09PS0xJiYhKChhJjY1NTM0KT09NDEyNiYmKG4mNjU1MzQpPT00MTI2KSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHR5cGUgIithKyIgc2F3ICIrbik7c3dpdGNoKGE9PT1Nbj9uOmEpe2Nhc2UgMjpyZXR1cm4gdD1lLnJlYWRfc2hpZnQoMiwiaSIpLHMucmF3fHwoZS5sKz0yKSx0O2Nhc2UgMzpyZXR1cm4gdD1lLnJlYWRfc2hpZnQoNCwiaSIpLHQ7Y2FzZSAxMTpyZXR1cm4gZS5yZWFkX3NoaWZ0KDQpIT09MDtjYXNlIDE5OnJldHVybiB0PWUucmVhZF9zaGlmdCg0KSx0O2Nhc2UgMzA6cmV0dXJuIEduKGUsbiw0KS5yZXBsYWNlKHJyLCIiKTtjYXNlIDMxOnJldHVybiBYbihlKTtjYXNlIDY0OnJldHVybiBqdChlKTtjYXNlIDY1OnJldHVybiBLbihlKTtjYXNlIDcxOnJldHVybiBzZihlKTtjYXNlIDgwOnJldHVybiBKdChlLG4sIXMucmF3KS5yZXBsYWNlKHJyLCIiKTtjYXNlIDgxOnJldHVybiBlZihlLG4pLnJlcGxhY2UocnIsIiIpO2Nhc2UgNDEwODpyZXR1cm4gbmYoZSk7Y2FzZSA0MTI2OmNhc2UgNDEyNzpyZXR1cm4gbj09NDEyNz9yZihlKTphZihlKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVHlwZWRQcm9wZXJ0eVZhbHVlIHVucmVjb2duaXplZCB0eXBlICIrYSsiICIrbil9fWZ1bmN0aW9uIFluKGUsYSl7dmFyIHI9ZS5sLG49ZS5yZWFkX3NoaWZ0KDQpLHQ9ZS5yZWFkX3NoaWZ0KDQpLHM9W10saT0wLGM9MCxmPS0xLG89e307Zm9yKGk9MDtpIT10OysraSl7dmFyIGw9ZS5yZWFkX3NoaWZ0KDQpLGg9ZS5yZWFkX3NoaWZ0KDQpO3NbaV09W2wsaCtyXX1zLnNvcnQoZnVuY3Rpb24oeSxfKXtyZXR1cm4geVsxXS1fWzFdfSk7dmFyIHg9e307Zm9yKGk9MDtpIT10OysraSl7aWYoZS5sIT09c1tpXVsxXSl7dmFyIGQ9ITA7aWYoaT4wJiZhKXN3aXRjaChhW3NbaS0xXVswXV0udCl7Y2FzZSAyOmUubCsyPT09c1tpXVsxXSYmKGUubCs9MixkPSExKTticmVhaztjYXNlIDgwOmUubDw9c1tpXVsxXSYmKGUubD1zW2ldWzFdLGQ9ITEpO2JyZWFrO2Nhc2UgNDEwODplLmw8PXNbaV1bMV0mJihlLmw9c1tpXVsxXSxkPSExKTticmVha31pZigoIWF8fGk9PTApJiZlLmw8PXNbaV1bMV0mJihkPSExLGUubD1zW2ldWzFdKSxkKXRocm93IG5ldyBFcnJvcigiUmVhZCBFcnJvcjogRXhwZWN0ZWQgYWRkcmVzcyAiK3NbaV1bMV0rIiBhdCAiK2UubCsiIDoiK2kpfWlmKGEpe3ZhciB2PWFbc1tpXVswXV07aWYoeFt2Lm5dPXV0KGUsdi50LHtyYXc6ITB9KSx2LnA9PT0idmVyc2lvbiImJih4W3Yubl09U3RyaW5nKHhbdi5uXT4+MTYpKyIuIisoIjAwMDAiK1N0cmluZyh4W3Yubl0mNjU1MzUpKS5zbGljZSgtNCkpLHYubj09IkNvZGVQYWdlIilzd2l0Y2goeFt2Lm5dKXtjYXNlIDA6eFt2Lm5dPTEyNTI7Y2FzZSA4NzQ6Y2FzZSA5MzI6Y2FzZSA5MzY6Y2FzZSA5NDk6Y2FzZSA5NTA6Y2FzZSAxMjUwOmNhc2UgMTI1MTpjYXNlIDEyNTM6Y2FzZSAxMjU0OmNhc2UgMTI1NTpjYXNlIDEyNTY6Y2FzZSAxMjU3OmNhc2UgMTI1ODpjYXNlIDFlNDpjYXNlIDEyMDA6Y2FzZSAxMjAxOmNhc2UgMTI1MjpjYXNlIDY1ZTM6Y2FzZS01MzY6Y2FzZSA2NTAwMTpjYXNlLTUzNTpfcihjPXhbdi5uXT4+PjAmNjU1MzUpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBDb2RlUGFnZTogIit4W3Yubl0pfX1lbHNlIGlmKHNbaV1bMF09PT0xKXtpZihjPXguQ29kZVBhZ2U9dXQoZSx6dCksX3IoYyksZiE9PS0xKXt2YXIgdT1lLmw7ZS5sPXNbZl1bMV0sbz16bihlLGMpLGUubD11fX1lbHNlIGlmKHNbaV1bMF09PT0wKXtpZihjPT09MCl7Zj1pLGUubD1zW2krMV1bMV07Y29udGludWV9bz16bihlLGMpfWVsc2V7dmFyIGc9b1tzW2ldWzBdXSxGO3N3aXRjaChlW2UubF0pe2Nhc2UgNjU6ZS5sKz00LEY9S24oZSk7YnJlYWs7Y2FzZSAzMDplLmwrPTQsRj1KdChlLGVbZS5sLTRdKS5yZXBsYWNlKC9cdTAwMDArJC8sIiIpO2JyZWFrO2Nhc2UgMzE6ZS5sKz00LEY9SnQoZSxlW2UubC00XSkucmVwbGFjZSgvXHUwMDAwKyQvLCIiKTticmVhaztjYXNlIDM6ZS5sKz00LEY9ZS5yZWFkX3NoaWZ0KDQsImkiKTticmVhaztjYXNlIDE5OmUubCs9NCxGPWUucmVhZF9zaGlmdCg0KTticmVhaztjYXNlIDU6ZS5sKz00LEY9ZS5yZWFkX3NoaWZ0KDgsImYiKTticmVhaztjYXNlIDExOmUubCs9NCxGPVJlKGUsNCk7YnJlYWs7Y2FzZSA2NDplLmwrPTQsRj1XZShqdChlKSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoInVucGFyc2VkIHZhbHVlOiAiK2VbZS5sXSl9eFtnXT1GfX1yZXR1cm4gZS5sPXIrbix4fWZ1bmN0aW9uIGpuKGUsYSxyKXt2YXIgbj1lLmNvbnRlbnQ7aWYoIW4pcmV0dXJue307JGUobiwwKTt2YXIgdCxzLGksYyxmPTA7bi5jaGsoImZlZmYiLCJCeXRlIE9yZGVyOiAiKSxuLnJlYWRfc2hpZnQoMik7dmFyIG89bi5yZWFkX3NoaWZ0KDQpLGw9bi5yZWFkX3NoaWZ0KDE2KTtpZihsIT09bWUudXRpbHMuY29uc3RzLkhFQURFUl9DTFNJRCYmbCE9PXIpdGhyb3cgbmV3IEVycm9yKCJCYWQgUHJvcGVydHlTZXQgQ0xTSUQgIitsKTtpZih0PW4ucmVhZF9zaGlmdCg0KSx0IT09MSYmdCE9PTIpdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgI1NldHM6ICIrdCk7aWYocz1uLnJlYWRfc2hpZnQoMTYpLGM9bi5yZWFkX3NoaWZ0KDQpLHQ9PT0xJiZjIT09bi5sKXRocm93IG5ldyBFcnJvcigiTGVuZ3RoIG1pc21hdGNoOiAiK2MrIiAhPT0gIituLmwpO3Q9PT0yJiYoaT1uLnJlYWRfc2hpZnQoMTYpLGY9bi5yZWFkX3NoaWZ0KDQpKTt2YXIgaD1ZbihuLGEpLHg9e1N5c3RlbUlkZW50aWZpZXI6b307Zm9yKHZhciBkIGluIGgpeFtkXT1oW2RdO2lmKHguRk1USUQ9cyx0PT09MSlyZXR1cm4geDtpZihmLW4ubD09MiYmKG4ubCs9Miksbi5sIT09Zil0aHJvdyBuZXcgRXJyb3IoIkxlbmd0aCBtaXNtYXRjaCAyOiAiK24ubCsiICE9PSAiK2YpO3ZhciB2O3RyeXt2PVluKG4sbnVsbCl9Y2F0Y2h7fWZvcihkIGluIHYpeFtkXT12W2RdO3JldHVybiB4LkZNVElEPVtzLGldLHh9ZnVuY3Rpb24gJHIoZSxhKXtyZXR1cm4gZS5yZWFkX3NoaWZ0KGEpLG51bGx9ZnVuY3Rpb24gY2YoZSxhLHIpe2Zvcih2YXIgbj1bXSx0PWUubCthO2UubDx0OyluLnB1c2gocihlLHQtZS5sKSk7aWYodCE9PWUubCl0aHJvdyBuZXcgRXJyb3IoIlNsdXJwIGVycm9yIik7cmV0dXJuIG59ZnVuY3Rpb24gUmUoZSxhKXtyZXR1cm4gZS5yZWFkX3NoaWZ0KGEpPT09MX1mdW5jdGlvbiBNZShlKXtyZXR1cm4gZS5yZWFkX3NoaWZ0KDIsInUiKX1mdW5jdGlvbiBKbihlLGEpe3JldHVybiBjZihlLGEsTWUpfWZ1bmN0aW9uIGZmKGUpe3ZhciBhPWUucmVhZF9zaGlmdCgxKSxyPWUucmVhZF9zaGlmdCgxKTtyZXR1cm4gcj09PTE/YTphPT09MX1mdW5jdGlvbiBNYShlLGEscil7dmFyIG49ZS5yZWFkX3NoaWZ0KHImJnIuYmlmZj49MTI/MjoxKSx0PSJzYmNzLWNvbnQiO2lmKHImJnIuYmlmZj49OCwhcnx8ci5iaWZmPT04KXt2YXIgcz1lLnJlYWRfc2hpZnQoMSk7cyYmKHQ9ImRiY3MtY29udCIpfWVsc2Ugci5iaWZmPT0xMiYmKHQ9IndzdHIiKTtyLmJpZmY+PTImJnIuYmlmZjw9NSYmKHQ9ImNwc3RyIik7dmFyIGk9bj9lLnJlYWRfc2hpZnQobix0KToiIjtyZXR1cm4gaX1mdW5jdGlvbiBvZihlKXt2YXIgYT1lLnJlYWRfc2hpZnQoMikscj1lLnJlYWRfc2hpZnQoMSksbj1yJjQsdD1yJjgscz0xKyhyJjEpLGk9MCxjLGY9e307dCYmKGk9ZS5yZWFkX3NoaWZ0KDIpKSxuJiYoYz1lLnJlYWRfc2hpZnQoNCkpO3ZhciBvPXM9PTI/ImRiY3MtY29udCI6InNiY3MtY29udCIsbD1hPT09MD8iIjplLnJlYWRfc2hpZnQoYSxvKTtyZXR1cm4gdCYmKGUubCs9NCppKSxuJiYoZS5sKz1jKSxmLnQ9bCx0fHwoZi5yYXc9Ijx0PiIrZi50KyI8L3Q+IixmLnI9Zi50KSxmfWZ1bmN0aW9uIGNhKGUsYSxyKXt2YXIgbjtpZihyKXtpZihyLmJpZmY+PTImJnIuYmlmZjw9NSlyZXR1cm4gZS5yZWFkX3NoaWZ0KGEsImNwc3RyIik7aWYoci5iaWZmPj0xMilyZXR1cm4gZS5yZWFkX3NoaWZ0KGEsImRiY3MtY29udCIpfXZhciB0PWUucmVhZF9zaGlmdCgxKTtyZXR1cm4gdD09PTA/bj1lLnJlYWRfc2hpZnQoYSwic2Jjcy1jb250Iik6bj1lLnJlYWRfc2hpZnQoYSwiZGJjcy1jb250Iiksbn1mdW5jdGlvbiBCYShlLGEscil7dmFyIG49ZS5yZWFkX3NoaWZ0KHImJnIuYmlmZj09Mj8xOjIpO3JldHVybiBuPT09MD8oZS5sKyssIiIpOmNhKGUsbixyKX1mdW5jdGlvbiBmYShlLGEscil7aWYoci5iaWZmPjUpcmV0dXJuIEJhKGUsYSxyKTt2YXIgbj1lLnJlYWRfc2hpZnQoMSk7cmV0dXJuIG49PT0wPyhlLmwrKywiIik6ZS5yZWFkX3NoaWZ0KG4sci5iaWZmPD00fHwhZS5sZW5zPyJjcHN0ciI6InNiY3MtY29udCIpfWZ1bmN0aW9uIGxmKGUpe3ZhciBhPWUucmVhZF9zaGlmdCgxKTtlLmwrKzt2YXIgcj1lLnJlYWRfc2hpZnQoMik7cmV0dXJuIGUubCs9MixbYSxyXX1mdW5jdGlvbiBoZihlKXt2YXIgYT1lLnJlYWRfc2hpZnQoNCkscj1lLmwsbj0hMTthPjI0JiYoZS5sKz1hLTI0LGUucmVhZF9zaGlmdCgxNik9PT0iNzk1ODgxZjQzYjFkN2Y0OGFmMmM4MjVkYzQ4NTI3NjMiJiYobj0hMCksZS5sPXIpO3ZhciB0PWUucmVhZF9zaGlmdCgobj9hLTI0OmEpPj4xLCJ1dGYxNmxlIikucmVwbGFjZShyciwiIik7cmV0dXJuIG4mJihlLmwrPTI0KSx0fWZ1bmN0aW9uIHVmKGUpe2Zvcih2YXIgYT1lLnJlYWRfc2hpZnQoMikscj0iIjthLS0gPjA7KXIrPSIuLi8iO3ZhciBuPWUucmVhZF9zaGlmdCgwLCJscHN0ci1hbnNpIik7aWYoZS5sKz0yLGUucmVhZF9zaGlmdCgyKSE9NTcwMDUpdGhyb3cgbmV3IEVycm9yKCJCYWQgRmlsZU1vbmlrZXIiKTt2YXIgdD1lLnJlYWRfc2hpZnQoNCk7aWYodD09PTApcmV0dXJuIHIrbi5yZXBsYWNlKC9cXC9nLCIvIik7dmFyIHM9ZS5yZWFkX3NoaWZ0KDQpO2lmKGUucmVhZF9zaGlmdCgyKSE9Myl0aHJvdyBuZXcgRXJyb3IoIkJhZCBGaWxlTW9uaWtlciIpO3ZhciBpPWUucmVhZF9zaGlmdChzPj4xLCJ1dGYxNmxlIikucmVwbGFjZShyciwiIik7cmV0dXJuIHIraX1mdW5jdGlvbiB4ZihlLGEpe3ZhciByPWUucmVhZF9zaGlmdCgxNik7c3dpdGNoKHIpe2Nhc2UiZTBjOWVhNzlmOWJhY2UxMThjODIwMGFhMDA0YmE5MGIiOnJldHVybiBoZihlKTtjYXNlIjAzMDMwMDAwMDAwMDAwMDBjMDAwMDAwMDAwMDAwMDQ2IjpyZXR1cm4gdWYoZSk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIE1vbmlrZXIgIityKX19ZnVuY3Rpb24geHQoZSl7dmFyIGE9ZS5yZWFkX3NoaWZ0KDQpLHI9YT4wP2UucmVhZF9zaGlmdChhLCJ1dGYxNmxlIikucmVwbGFjZShyciwiIik6IiI7cmV0dXJuIHJ9ZnVuY3Rpb24gZGYoZSxhKXt2YXIgcj1lLmwrYSxuPWUucmVhZF9zaGlmdCg0KTtpZihuIT09Mil0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBzdHJlYW1WZXJzaW9uOiAiK24pO3ZhciB0PWUucmVhZF9zaGlmdCgyKTtlLmwrPTI7dmFyIHMsaSxjLGYsbz0iIixsLGg7dCYxNiYmKHM9eHQoZSxyLWUubCkpLHQmMTI4JiYoaT14dChlLHItZS5sKSksKHQmMjU3KT09PTI1NyYmKGM9eHQoZSxyLWUubCkpLCh0JjI1Nyk9PT0xJiYoZj14ZihlLHItZS5sKSksdCY4JiYobz14dChlLHItZS5sKSksdCYzMiYmKGw9ZS5yZWFkX3NoaWZ0KDE2KSksdCY2NCYmKGg9anQoZSkpLGUubD1yO3ZhciB4PWl8fGN8fGZ8fCIiO3gmJm8mJih4Kz0iIyIrbykseHx8KHg9IiMiK28pLHQmMiYmeC5jaGFyQXQoMCk9PSIvIiYmeC5jaGFyQXQoMSkhPSIvIiYmKHg9ImZpbGU6Ly8iK3gpO3ZhciBkPXtUYXJnZXQ6eH07cmV0dXJuIGwmJihkLmd1aWQ9bCksaCYmKGQudGltZT1oKSxzJiYoZC5Ub29sdGlwPXMpLGR9ZnVuY3Rpb24gWm4oZSl7dmFyIGE9ZS5yZWFkX3NoaWZ0KDEpLHI9ZS5yZWFkX3NoaWZ0KDEpLG49ZS5yZWFkX3NoaWZ0KDEpLHQ9ZS5yZWFkX3NoaWZ0KDEpO3JldHVyblthLHIsbix0XX1mdW5jdGlvbiBxbihlLGEpe3ZhciByPVpuKGUpO3JldHVybiByWzNdPTAscn1mdW5jdGlvbiB5cihlKXt2YXIgYT1lLnJlYWRfc2hpZnQoMikscj1lLnJlYWRfc2hpZnQoMiksbj1lLnJlYWRfc2hpZnQoMik7cmV0dXJue3I6YSxjOnIsaXhmZTpufX1mdW5jdGlvbiB2ZihlKXt2YXIgYT1lLnJlYWRfc2hpZnQoMikscj1lLnJlYWRfc2hpZnQoMik7cmV0dXJuIGUubCs9OCx7dHlwZTphLGZsYWdzOnJ9fWZ1bmN0aW9uIHBmKGUsYSxyKXtyZXR1cm4gYT09PTA/IiI6ZmEoZSxhLHIpfWZ1bmN0aW9uIGdmKGUsYSxyKXt2YXIgbj1yLmJpZmY+OD80OjIsdD1lLnJlYWRfc2hpZnQobikscz1lLnJlYWRfc2hpZnQobiwiaSIpLGk9ZS5yZWFkX3NoaWZ0KG4sImkiKTtyZXR1cm5bdCxzLGldfWZ1bmN0aW9uIFFuKGUpe3ZhciBhPWUucmVhZF9zaGlmdCgyKSxyPSR0KGUpO3JldHVyblthLHJdfWZ1bmN0aW9uIG1mKGUsYSxyKXtlLmwrPTQsYS09NDt2YXIgbj1lLmwrYSx0PU1hKGUsYSxyKSxzPWUucmVhZF9zaGlmdCgyKTtpZihuLT1lLmwscyE9PW4pdGhyb3cgbmV3IEVycm9yKCJNYWxmb3JtZWQgQWRkaW5VZGY6IHBhZGRpbmcgPSAiK24rIiAhPSAiK3MpO3JldHVybiBlLmwrPXMsdH1mdW5jdGlvbiBkdChlKXt2YXIgYT1lLnJlYWRfc2hpZnQoMikscj1lLnJlYWRfc2hpZnQoMiksbj1lLnJlYWRfc2hpZnQoMiksdD1lLnJlYWRfc2hpZnQoMik7cmV0dXJue3M6e2M6bixyOmF9LGU6e2M6dCxyfX19ZnVuY3Rpb24gZXMoZSl7dmFyIGE9ZS5yZWFkX3NoaWZ0KDIpLHI9ZS5yZWFkX3NoaWZ0KDIpLG49ZS5yZWFkX3NoaWZ0KDEpLHQ9ZS5yZWFkX3NoaWZ0KDEpO3JldHVybntzOntjOm4scjphfSxlOntjOnQscn19fXZhciBfZj1lcztmdW5jdGlvbiBycyhlKXtlLmwrPTQ7dmFyIGE9ZS5yZWFkX3NoaWZ0KDIpLHI9ZS5yZWFkX3NoaWZ0KDIpLG49ZS5yZWFkX3NoaWZ0KDIpO3JldHVybiBlLmwrPTEyLFtyLGEsbl19ZnVuY3Rpb24gRWYoZSl7dmFyIGE9e307cmV0dXJuIGUubCs9NCxlLmwrPTE2LGEuZlNoYXJlZE5vdGU9ZS5yZWFkX3NoaWZ0KDIpLGUubCs9NCxhfWZ1bmN0aW9uIFRmKGUpe3ZhciBhPXt9O3JldHVybiBlLmwrPTQsZS5jZj1lLnJlYWRfc2hpZnQoMiksYX1mdW5jdGlvbiBaZShlKXtlLmwrPTIsZS5sKz1lLnJlYWRfc2hpZnQoMil9dmFyIGtmPXswOlplLDQ6WmUsNTpaZSw2OlplLDc6VGYsODpaZSw5OlplLDEwOlplLDExOlplLDEyOlplLDEzOkVmLDE0OlplLDE1OlplLDE2OlplLDE3OlplLDE4OlplLDE5OlplLDIwOlplLDIxOnJzfTtmdW5jdGlvbiB3ZihlLGEpe2Zvcih2YXIgcj1lLmwrYSxuPVtdO2UubDxyOyl7dmFyIHQ9ZS5yZWFkX3NoaWZ0KDIpO2UubC09Mjt0cnl7bi5wdXNoKGtmW3RdKGUsci1lLmwpKX1jYXRjaHtyZXR1cm4gZS5sPXIsbn19cmV0dXJuIGUubCE9ciYmKGUubD1yKSxufWZ1bmN0aW9uIHZ0KGUsYSl7dmFyIHI9e0JJRkZWZXI6MCxkdDowfTtzd2l0Y2goci5CSUZGVmVyPWUucmVhZF9zaGlmdCgyKSxhLT0yLGE+PTImJihyLmR0PWUucmVhZF9zaGlmdCgyKSxlLmwtPTIpLHIuQklGRlZlcil7Y2FzZSAxNTM2OmNhc2UgMTI4MDpjYXNlIDEwMjQ6Y2FzZSA3Njg6Y2FzZSA1MTI6Y2FzZSAyOmNhc2UgNzpicmVhaztkZWZhdWx0OmlmKGE+Nil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgQklGRiBWZXIgIityLkJJRkZWZXIpfXJldHVybiBlLnJlYWRfc2hpZnQoYSkscn1mdW5jdGlvbiBBZihlLGEpe3JldHVybiBhPT09MHx8ZS5yZWFkX3NoaWZ0KDIpLDEyMDB9ZnVuY3Rpb24gRmYoZSxhLHIpe2lmKHIuZW5jKXJldHVybiBlLmwrPWEsIiI7dmFyIG49ZS5sLHQ9ZmEoZSwwLHIpO3JldHVybiBlLnJlYWRfc2hpZnQoYStuLWUubCksdH1mdW5jdGlvbiBTZihlLGEscil7dmFyIG49ciYmci5iaWZmPT04fHxhPT0yP2UucmVhZF9zaGlmdCgyKTooZS5sKz1hLDApO3JldHVybntmRGlhbG9nOm4mMTYsZkJlbG93Om4mNjQsZlJpZ2h0Om4mMTI4fX1mdW5jdGlvbiBDZihlLGEscil7dmFyIG49ZS5yZWFkX3NoaWZ0KDQpLHQ9ZS5yZWFkX3NoaWZ0KDEpJjMscz1lLnJlYWRfc2hpZnQoMSk7c3dpdGNoKHMpe2Nhc2UgMDpzPSJXb3Jrc2hlZXQiO2JyZWFrO2Nhc2UgMTpzPSJNYWNyb3NoZWV0IjticmVhaztjYXNlIDI6cz0iQ2hhcnRzaGVldCI7YnJlYWs7Y2FzZSA2OnM9IlZCQU1vZHVsZSI7YnJlYWt9dmFyIGk9TWEoZSwwLHIpO3JldHVybiBpLmxlbmd0aD09PTAmJihpPSJTaGVldDEiKSx7cG9zOm4saHM6dCxkdDpzLG5hbWU6aX19ZnVuY3Rpb24geWYoZSxhKXtmb3IodmFyIHI9ZS5sK2Esbj1lLnJlYWRfc2hpZnQoNCksdD1lLnJlYWRfc2hpZnQoNCkscz1bXSxpPTA7aSE9dCYmZS5sPHI7KytpKXMucHVzaChvZihlKSk7cmV0dXJuIHMuQ291bnQ9bixzLlVuaXF1ZT10LHN9ZnVuY3Rpb24gRGYoZSxhKXt2YXIgcj17fTtyZXR1cm4gci5kc3N0PWUucmVhZF9zaGlmdCgyKSxlLmwrPWEtMixyfWZ1bmN0aW9uIE9mKGUpe3ZhciBhPXt9O2Eucj1lLnJlYWRfc2hpZnQoMiksYS5jPWUucmVhZF9zaGlmdCgyKSxhLmNudD1lLnJlYWRfc2hpZnQoMiktYS5jO3ZhciByPWUucmVhZF9zaGlmdCgyKTtlLmwrPTQ7dmFyIG49ZS5yZWFkX3NoaWZ0KDEpO3JldHVybiBlLmwrPTMsbiY3JiYoYS5sZXZlbD1uJjcpLG4mMzImJihhLmhpZGRlbj0hMCksbiY2NCYmKGEuaHB0PXIvMjApLGF9ZnVuY3Rpb24gUmYoZSl7dmFyIGE9dmYoZSk7aWYoYS50eXBlIT0yMjExKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBGdXR1cmUgUmVjb3JkICIrYS50eXBlKTt2YXIgcj1lLnJlYWRfc2hpZnQoNCk7cmV0dXJuIHIhPT0wfWZ1bmN0aW9uIElmKGUpe3JldHVybiBlLnJlYWRfc2hpZnQoMiksZS5yZWFkX3NoaWZ0KDQpfWZ1bmN0aW9uIGFzKGUsYSxyKXt2YXIgbj0wO3ImJnIuYmlmZj09Mnx8KG49ZS5yZWFkX3NoaWZ0KDIpKTt2YXIgdD1lLnJlYWRfc2hpZnQoMik7ciYmci5iaWZmPT0yJiYobj0xLSh0Pj4xNSksdCY9MzI3NjcpO3ZhciBzPXtVbnN5bmNlZDpuJjEsRHlaZXJvOihuJjIpPj4xLEV4QXNjOihuJjQpPj4yLEV4RHNjOihuJjgpPj4zfTtyZXR1cm5bcyx0XX1mdW5jdGlvbiBOZihlKXt2YXIgYT1lLnJlYWRfc2hpZnQoMikscj1lLnJlYWRfc2hpZnQoMiksbj1lLnJlYWRfc2hpZnQoMiksdD1lLnJlYWRfc2hpZnQoMikscz1lLnJlYWRfc2hpZnQoMiksaT1lLnJlYWRfc2hpZnQoMiksYz1lLnJlYWRfc2hpZnQoMiksZj1lLnJlYWRfc2hpZnQoMiksbz1lLnJlYWRfc2hpZnQoMik7cmV0dXJue1BvczpbYSxyXSxEaW06W24sdF0sRmxhZ3M6cyxDdXJUYWI6aSxGaXJzdFRhYjpjLFNlbGVjdGVkOmYsVGFiUmF0aW86b319ZnVuY3Rpb24gUGYoZSxhLHIpe2lmKHImJnIuYmlmZj49MiYmci5iaWZmPDUpcmV0dXJue307dmFyIG49ZS5yZWFkX3NoaWZ0KDIpO3JldHVybntSVEw6biY2NH19ZnVuY3Rpb24gTGYoKXt9ZnVuY3Rpb24gTWYoZSxhLHIpe3ZhciBuPXtkeUhlaWdodDplLnJlYWRfc2hpZnQoMiksZmw6ZS5yZWFkX3NoaWZ0KDIpfTtzd2l0Y2gociYmci5iaWZmfHw4KXtjYXNlIDI6YnJlYWs7Y2FzZSAzOmNhc2UgNDplLmwrPTI7YnJlYWs7ZGVmYXVsdDplLmwrPTEwO2JyZWFrfXJldHVybiBuLm5hbWU9TWEoZSwwLHIpLG59ZnVuY3Rpb24gQmYoZSl7dmFyIGE9eXIoZSk7cmV0dXJuIGEuaXNzdD1lLnJlYWRfc2hpZnQoNCksYX1mdW5jdGlvbiBiZihlLGEscil7ci5iaWZmZ3Vlc3MmJnIuYmlmZj09MiYmKHIuYmlmZj01KTt2YXIgbj1lLmwrYSx0PXlyKGUpO3IuYmlmZj09MiYmZS5sKys7dmFyIHM9QmEoZSxuLWUubCxyKTtyZXR1cm4gdC52YWw9cyx0fWZ1bmN0aW9uIFVmKGUsYSxyKXt2YXIgbj1lLnJlYWRfc2hpZnQoMiksdD1mYShlLDAscik7cmV0dXJuW24sdF19dmFyIEhmPWZhO2Z1bmN0aW9uIHRzKGUsYSxyKXt2YXIgbj1lLmwrYSx0PXIuYmlmZj09OHx8IXIuYmlmZj80OjIscz1lLnJlYWRfc2hpZnQodCksaT1lLnJlYWRfc2hpZnQodCksYz1lLnJlYWRfc2hpZnQoMiksZj1lLnJlYWRfc2hpZnQoMik7cmV0dXJuIGUubD1uLHtzOntyOnMsY30sZTp7cjppLGM6Zn19fWZ1bmN0aW9uIFZmKGUpe3ZhciBhPWUucmVhZF9zaGlmdCgyKSxyPWUucmVhZF9zaGlmdCgyKSxuPVFuKGUpO3JldHVybntyOmEsYzpyLGl4ZmU6blswXSxya251bTpuWzFdfX1mdW5jdGlvbiBXZihlLGEpe2Zvcih2YXIgcj1lLmwrYS0yLG49ZS5yZWFkX3NoaWZ0KDIpLHQ9ZS5yZWFkX3NoaWZ0KDIpLHM9W107ZS5sPHI7KXMucHVzaChRbihlKSk7aWYoZS5sIT09cil0aHJvdyBuZXcgRXJyb3IoIk11bFJLIHJlYWQgZXJyb3IiKTt2YXIgaT1lLnJlYWRfc2hpZnQoMik7aWYocy5sZW5ndGghPWktdCsxKXRocm93IG5ldyBFcnJvcigiTXVsUksgbGVuZ3RoIG1pc21hdGNoIik7cmV0dXJue3I6bixjOnQsQzppLHJrcmVjOnN9fWZ1bmN0aW9uIEdmKGUsYSl7Zm9yKHZhciByPWUubCthLTIsbj1lLnJlYWRfc2hpZnQoMiksdD1lLnJlYWRfc2hpZnQoMikscz1bXTtlLmw8cjspcy5wdXNoKGUucmVhZF9zaGlmdCgyKSk7aWYoZS5sIT09cil0aHJvdyBuZXcgRXJyb3IoIk11bEJsYW5rIHJlYWQgZXJyb3IiKTt2YXIgaT1lLnJlYWRfc2hpZnQoMik7aWYocy5sZW5ndGghPWktdCsxKXRocm93IG5ldyBFcnJvcigiTXVsQmxhbmsgbGVuZ3RoIG1pc21hdGNoIik7cmV0dXJue3I6bixjOnQsQzppLGl4ZmU6c319ZnVuY3Rpb24gWGYoZSxhLHIsbil7dmFyIHQ9e30scz1lLnJlYWRfc2hpZnQoNCksaT1lLnJlYWRfc2hpZnQoNCksYz1lLnJlYWRfc2hpZnQoNCksZj1lLnJlYWRfc2hpZnQoMik7cmV0dXJuIHQucGF0dGVyblR5cGU9SGNbYz4+MjZdLG4uY2VsbFN0eWxlcyYmKHQuYWxjPXMmNyx0LmZXcmFwPXM+PjMmMSx0LmFsY1Y9cz4+NCY3LHQuZkp1c3RMYXN0PXM+PjcmMSx0LnRyb3Q9cz4+OCYyNTUsdC5jSW5kZW50PXM+PjE2JjE1LHQuZlNocmlua1RvRml0PXM+PjIwJjEsdC5pUmVhZE9yZGVyPXM+PjIyJjIsdC5mQXRyTnVtPXM+PjI2JjEsdC5mQXRyRm50PXM+PjI3JjEsdC5mQXRyQWxjPXM+PjI4JjEsdC5mQXRyQmRyPXM+PjI5JjEsdC5mQXRyUGF0PXM+PjMwJjEsdC5mQXRyUHJvdD1zPj4zMSYxLHQuZGdMZWZ0PWkmMTUsdC5kZ1JpZ2h0PWk+PjQmMTUsdC5kZ1RvcD1pPj44JjE1LHQuZGdCb3R0b209aT4+MTImMTUsdC5pY3ZMZWZ0PWk+PjE2JjEyNyx0LmljdlJpZ2h0PWk+PjIzJjEyNyx0LmdyYml0RGlhZz1pPj4zMCYzLHQuaWN2VG9wPWMmMTI3LHQuaWN2Qm90dG9tPWM+PjcmMTI3LHQuaWN2RGlhZz1jPj4xNCYxMjcsdC5kZ0RpYWc9Yz4+MjEmMTUsdC5pY3ZGb3JlPWYmMTI3LHQuaWN2QmFjaz1mPj43JjEyNyx0LmZzeEJ1dHRvbj1mPj4xNCYxKSx0fWZ1bmN0aW9uICRmKGUsYSxyKXt2YXIgbj17fTtyZXR1cm4gbi5pZm50PWUucmVhZF9zaGlmdCgyKSxuLm51bUZtdElkPWUucmVhZF9zaGlmdCgyKSxuLmZsYWdzPWUucmVhZF9zaGlmdCgyKSxuLmZTdHlsZT1uLmZsYWdzPj4yJjEsYS09NixuLmRhdGE9WGYoZSxhLG4uZlN0eWxlLHIpLG59ZnVuY3Rpb24gemYoZSl7ZS5sKz00O3ZhciBhPVtlLnJlYWRfc2hpZnQoMiksZS5yZWFkX3NoaWZ0KDIpXTtpZihhWzBdIT09MCYmYVswXS0tLGFbMV0hPT0wJiZhWzFdLS0sYVswXT43fHxhWzFdPjcpdGhyb3cgbmV3IEVycm9yKCJCYWQgR3V0dGVyczogIithLmpvaW4oInwiKSk7cmV0dXJuIGF9ZnVuY3Rpb24gbnMoZSxhLHIpe3ZhciBuPXlyKGUpOyhyLmJpZmY9PTJ8fGE9PTkpJiYrK2UubDt2YXIgdD1mZihlKTtyZXR1cm4gbi52YWw9dCxuLnQ9dD09PSEwfHx0PT09ITE/ImIiOiJlIixufWZ1bmN0aW9uIEtmKGUsYSxyKXtyLmJpZmZndWVzcyYmci5iaWZmPT0yJiYoci5iaWZmPTUpO3ZhciBuPXlyKGUpLHQ9SmUoZSk7cmV0dXJuIG4udmFsPXQsbn12YXIgc3M9cGY7ZnVuY3Rpb24gWWYoZSxhLHIpe3ZhciBuPWUubCthLHQ9ZS5yZWFkX3NoaWZ0KDIpLHM9ZS5yZWFkX3NoaWZ0KDIpO2lmKHIuc2JjY2g9cyxzPT0xMDI1fHxzPT0xNDg0OSlyZXR1cm5bcyx0XTtpZihzPDF8fHM+MjU1KXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBTdXBCb29rIHR5cGU6ICIrcyk7Zm9yKHZhciBpPWNhKGUscyksYz1bXTtuPmUubDspYy5wdXNoKEJhKGUpKTtyZXR1cm5bcyx0LGksY119ZnVuY3Rpb24gaXMoZSxhLHIpe3ZhciBuPWUucmVhZF9zaGlmdCgyKSx0LHM9e2ZCdWlsdEluOm4mMSxmV2FudEFkdmlzZTpuPj4+MSYxLGZXYW50UGljdDpuPj4+MiYxLGZPbGU6bj4+PjMmMSxmT2xlTGluazpuPj4+NCYxLGNmOm4+Pj41JjEwMjMsZkljb246bj4+PjE1JjF9O3JldHVybiByLnNiY2NoPT09MTQ4NDkmJih0PW1mKGUsYS0yLHIpKSxzLmJvZHk9dHx8ZS5yZWFkX3NoaWZ0KGEtMiksdHlwZW9mIHQ9PSJzdHJpbmciJiYocy5OYW1lPXQpLHN9dmFyIGpmPVsiX3hsbm0uQ29uc29saWRhdGVfQXJlYSIsIl94bG5tLkF1dG9fT3BlbiIsIl94bG5tLkF1dG9fQ2xvc2UiLCJfeGxubS5FeHRyYWN0IiwiX3hsbm0uRGF0YWJhc2UiLCJfeGxubS5Dcml0ZXJpYSIsIl94bG5tLlByaW50X0FyZWEiLCJfeGxubS5QcmludF9UaXRsZXMiLCJfeGxubS5SZWNvcmRlciIsIl94bG5tLkRhdGFfRm9ybSIsIl94bG5tLkF1dG9fQWN0aXZhdGUiLCJfeGxubS5BdXRvX0RlYWN0aXZhdGUiLCJfeGxubS5TaGVldF9UaXRsZSIsIl94bG5tLl9GaWx0ZXJEYXRhYmFzZSJdO2Z1bmN0aW9uIGNzKGUsYSxyKXt2YXIgbj1lLmwrYSx0PWUucmVhZF9zaGlmdCgyKSxzPWUucmVhZF9zaGlmdCgxKSxpPWUucmVhZF9zaGlmdCgxKSxjPWUucmVhZF9zaGlmdChyJiZyLmJpZmY9PTI/MToyKSxmPTA7KCFyfHxyLmJpZmY+PTUpJiYoci5iaWZmIT01JiYoZS5sKz0yKSxmPWUucmVhZF9zaGlmdCgyKSxyLmJpZmY9PTUmJihlLmwrPTIpLGUubCs9NCk7dmFyIG89Y2EoZSxpLHIpO3QmMzImJihvPWpmW28uY2hhckNvZGVBdCgwKV0pO3ZhciBsPW4tZS5sO3ImJnIuYmlmZj09MiYmLS1sO3ZhciBoPW49PWUubHx8Yz09PTB8fCEobD4wKT9bXTpSaChlLGwscixjKTtyZXR1cm57Y2hLZXk6cyxOYW1lOm8saXRhYjpmLHJnY2U6aH19ZnVuY3Rpb24gZnMoZSxhLHIpe2lmKHIuYmlmZjw4KXJldHVybiBKZihlLGEscik7Zm9yKHZhciBuPVtdLHQ9ZS5sK2Escz1lLnJlYWRfc2hpZnQoci5iaWZmPjg/NDoyKTtzLS0hPT0wOyluLnB1c2goZ2YoZSxyLmJpZmY+OD8xMjo2LHIpKTtpZihlLmwhPXQpdGhyb3cgbmV3IEVycm9yKCJCYWQgRXh0ZXJuU2hlZXQ6ICIrZS5sKyIgIT0gIit0KTtyZXR1cm4gbn1mdW5jdGlvbiBKZihlLGEscil7ZVtlLmwrMV09PTMmJmVbZS5sXSsrO3ZhciBuPU1hKGUsYSxyKTtyZXR1cm4gbi5jaGFyQ29kZUF0KDApPT0zP24uc2xpY2UoMSk6bn1mdW5jdGlvbiBaZihlLGEscil7aWYoci5iaWZmPDgpe2UubCs9YTtyZXR1cm59dmFyIG49ZS5yZWFkX3NoaWZ0KDIpLHQ9ZS5yZWFkX3NoaWZ0KDIpLHM9Y2EoZSxuLHIpLGk9Y2EoZSx0LHIpO3JldHVybltzLGldfWZ1bmN0aW9uIHFmKGUsYSxyKXt2YXIgbj1lcyhlKTtlLmwrKzt2YXIgdD1lLnJlYWRfc2hpZnQoMSk7cmV0dXJuIGEtPTgsW0loKGUsYSxyKSx0LG5dfWZ1bmN0aW9uIG9zKGUsYSxyKXt2YXIgbj1fZihlKTtzd2l0Y2goci5iaWZmKXtjYXNlIDI6ZS5sKyssYS09NzticmVhaztjYXNlIDM6Y2FzZSA0OmUubCs9MixhLT04O2JyZWFrO2RlZmF1bHQ6ZS5sKz02LGEtPTEyfXJldHVybltuLERoKGUsYSxyKV19ZnVuY3Rpb24gUWYoZSl7dmFyIGE9ZS5yZWFkX3NoaWZ0KDQpIT09MCxyPWUucmVhZF9zaGlmdCg0KSE9PTAsbj1lLnJlYWRfc2hpZnQoNCk7cmV0dXJuW2EscixuXX1mdW5jdGlvbiBlbyhlLGEscil7aWYoIShyLmJpZmY8OCkpe3ZhciBuPWUucmVhZF9zaGlmdCgyKSx0PWUucmVhZF9zaGlmdCgyKSxzPWUucmVhZF9zaGlmdCgyKSxpPWUucmVhZF9zaGlmdCgyKSxjPWZhKGUsMCxyKTtyZXR1cm4gci5iaWZmPDgmJmUucmVhZF9zaGlmdCgxKSxbe3I6bixjOnR9LGMsaSxzXX19ZnVuY3Rpb24gcm8oZSxhLHIpe3JldHVybiBlbyhlLGEscil9ZnVuY3Rpb24gYW8oZSxhKXtmb3IodmFyIHI9W10sbj1lLnJlYWRfc2hpZnQoMik7bi0tOylyLnB1c2goZHQoZSkpO3JldHVybiByfWZ1bmN0aW9uIHRvKGUsYSxyKXtpZihyJiZyLmJpZmY8OClyZXR1cm4gc28oZSxhLHIpO3ZhciBuPXJzKGUpLHQ9d2YoZSxhLTIyLG5bMV0pO3JldHVybntjbW86bixmdDp0fX12YXIgbm89ezg6ZnVuY3Rpb24oZSxhKXt2YXIgcj1lLmwrYTtlLmwrPTEwO3ZhciBuPWUucmVhZF9zaGlmdCgyKTtlLmwrPTQsZS5sKz0yLGUubCs9MixlLmwrPTIsZS5sKz00O3ZhciB0PWUucmVhZF9zaGlmdCgxKTtyZXR1cm4gZS5sKz10LGUubD1yLHtmbXQ6bn19fTtmdW5jdGlvbiBzbyhlLGEscil7ZS5sKz00O3ZhciBuPWUucmVhZF9zaGlmdCgyKSx0PWUucmVhZF9zaGlmdCgyKSxzPWUucmVhZF9zaGlmdCgyKTtlLmwrPTIsZS5sKz0yLGUubCs9MixlLmwrPTIsZS5sKz0yLGUubCs9MixlLmwrPTIsZS5sKz0yLGUubCs9MixlLmwrPTYsYS09MzY7dmFyIGk9W107cmV0dXJuIGkucHVzaCgobm9bbl18fFllKShlLGEscikpLHtjbW86W3QsbixzXSxmdDppfX1mdW5jdGlvbiBpbyhlLGEscil7dmFyIG49ZS5sLHQ9IiI7dHJ5e2UubCs9NDt2YXIgcz0oci5sYXN0b2JqfHx7Y21vOlswLDBdfSkuY21vWzFdLGk7WzAsNSw3LDExLDEyLDE0XS5pbmRleE9mKHMpPT0tMT9lLmwrPTY6aT1sZihlLDYscik7dmFyIGM9ZS5yZWFkX3NoaWZ0KDIpO2UucmVhZF9zaGlmdCgyKSxNZShlLDIpO3ZhciBmPWUucmVhZF9zaGlmdCgyKTtlLmwrPWY7Zm9yKHZhciBvPTE7bzxlLmxlbnMubGVuZ3RoLTE7KytvKXtpZihlLmwtbiE9ZS5sZW5zW29dKXRocm93IG5ldyBFcnJvcigiVHhPOiBiYWQgY29udGludWUgcmVjb3JkIik7dmFyIGw9ZVtlLmxdLGg9Y2EoZSxlLmxlbnNbbysxXS1lLmxlbnNbb10tMSk7aWYodCs9aCx0Lmxlbmd0aD49KGw/YzoyKmMpKWJyZWFrfWlmKHQubGVuZ3RoIT09YyYmdC5sZW5ndGghPT1jKjIpdGhyb3cgbmV3IEVycm9yKCJjY2hUZXh0OiAiK2MrIiAhPSAiK3QubGVuZ3RoKTtyZXR1cm4gZS5sPW4rYSx7dH19Y2F0Y2h7cmV0dXJuIGUubD1uK2Ese3R9fX1mdW5jdGlvbiBjbyhlLGEpe3ZhciByPWR0KGUpO2UubCs9MTY7dmFyIG49ZGYoZSxhLTI0KTtyZXR1cm5bcixuXX1mdW5jdGlvbiBmbyhlLGEpe2UucmVhZF9zaGlmdCgyKTt2YXIgcj1kdChlKSxuPWUucmVhZF9zaGlmdCgoYS0xMCkvMiwiZGJjcy1jb250Iik7cmV0dXJuIG49bi5yZXBsYWNlKHJyLCIiKSxbcixuXX1mdW5jdGlvbiBvbyhlKXt2YXIgYT1bMCwwXSxyO3JldHVybiByPWUucmVhZF9zaGlmdCgyKSxhWzBdPWJuW3JdfHxyLHI9ZS5yZWFkX3NoaWZ0KDIpLGFbMV09Ym5bcl18fHIsYX1mdW5jdGlvbiBsbyhlKXtmb3IodmFyIGE9ZS5yZWFkX3NoaWZ0KDIpLHI9W107YS0tID4wOylyLnB1c2gocW4oZSkpO3JldHVybiByfWZ1bmN0aW9uIGhvKGUpe2Zvcih2YXIgYT1lLnJlYWRfc2hpZnQoMikscj1bXTthLS0gPjA7KXIucHVzaChxbihlKSk7cmV0dXJuIHJ9ZnVuY3Rpb24gdW8oZSl7ZS5sKz0yO3ZhciBhPXtjeGZzOjAsY3JjOjB9O3JldHVybiBhLmN4ZnM9ZS5yZWFkX3NoaWZ0KDIpLGEuY3JjPWUucmVhZF9zaGlmdCg0KSxhfWZ1bmN0aW9uIGxzKGUsYSxyKXtpZighci5jZWxsU3R5bGVzKXJldHVybiBZZShlLGEpO3ZhciBuPXImJnIuYmlmZj49MTI/NDoyLHQ9ZS5yZWFkX3NoaWZ0KG4pLHM9ZS5yZWFkX3NoaWZ0KG4pLGk9ZS5yZWFkX3NoaWZ0KG4pLGM9ZS5yZWFkX3NoaWZ0KG4pLGY9ZS5yZWFkX3NoaWZ0KDIpO249PTImJihlLmwrPTIpO3ZhciBvPXtzOnQsZTpzLHc6aSxpeGZlOmMsZmxhZ3M6Zn07cmV0dXJuKHIuYmlmZj49NXx8IXIuYmlmZikmJihvLmxldmVsPWY+PjgmNyksb31mdW5jdGlvbiB4byhlLGEpe3ZhciByPXt9O3JldHVybiBhPDMyfHwoZS5sKz0xNixyLmhlYWRlcj1KZShlKSxyLmZvb3Rlcj1KZShlKSxlLmwrPTIpLHJ9ZnVuY3Rpb24gdm8oZSxhLHIpe3ZhciBuPXthcmVhOiExfTtpZihyLmJpZmYhPTUpcmV0dXJuIGUubCs9YSxuO3ZhciB0PWUucmVhZF9zaGlmdCgxKTtyZXR1cm4gZS5sKz0zLHQmMTYmJihuLmFyZWE9ITApLG59dmFyIHBvPXlyLGdvPUpuLG1vPUJhO2Z1bmN0aW9uIF9vKGUpe3ZhciBhPWUucmVhZF9zaGlmdCgyKSxyPWUucmVhZF9zaGlmdCgyKSxuPWUucmVhZF9zaGlmdCg0KSx0PXtmbXQ6YSxlbnY6cixsZW46bixkYXRhOmUuc2xpY2UoZS5sLGUubCtuKX07cmV0dXJuIGUubCs9bix0fWZ1bmN0aW9uIEVvKGUsYSxyKXtyLmJpZmZndWVzcyYmci5iaWZmPT01JiYoci5iaWZmPTIpO3ZhciBuPXlyKGUpOysrZS5sO3ZhciB0PWZhKGUsYS03LHIpO3JldHVybiBuLnQ9InN0ciIsbi52YWw9dCxufWZ1bmN0aW9uIFRvKGUpe3ZhciBhPXlyKGUpOysrZS5sO3ZhciByPUplKGUpO3JldHVybiBhLnQ9Im4iLGEudmFsPXIsYX1mdW5jdGlvbiBrbyhlKXt2YXIgYT15cihlKTsrK2UubDt2YXIgcj1lLnJlYWRfc2hpZnQoMik7cmV0dXJuIGEudD0ibiIsYS52YWw9cixhfWZ1bmN0aW9uIHdvKGUpe3ZhciBhPWUucmVhZF9zaGlmdCgxKTtyZXR1cm4gYT09PTA/KGUubCsrLCIiKTplLnJlYWRfc2hpZnQoYSwic2Jjcy1jb250Iil9ZnVuY3Rpb24gQW8oZSxhKXtlLmwrPTYsZS5sKz0yLGUubCs9MSxlLmwrPTMsZS5sKz0xLGUubCs9YS0xM31mdW5jdGlvbiBGbyhlLGEscil7dmFyIG49ZS5sK2EsdD15cihlKSxzPWUucmVhZF9zaGlmdCgyKSxpPWNhKGUscyxyKTtyZXR1cm4gZS5sPW4sdC50PSJzdHIiLHQudmFsPWksdH12YXIgU289WzIsMyw0OCw0OSwxMzEsMTM5LDE0MCwyNDVdLGhzPWZ1bmN0aW9uKCl7dmFyIGU9ezE6NDM3LDI6ODUwLDM6MTI1Miw0OjFlNCwxMDA6ODUyLDEwMTo4NjYsMTAyOjg2NSwxMDM6ODYxLDEwNDo4OTUsMTA1OjYyMCwxMDY6NzM3LDEwNzo4NTcsMTIwOjk1MCwxMjE6OTQ5LDEyMjo5MzYsMTIzOjkzMiwxMjQ6ODc0LDEyNToxMjU1LDEyNjoxMjU2LDE1MDoxMDAwNywxNTE6MTAwMjksMTUyOjEwMDA2LDIwMDoxMjUwLDIwMToxMjUxLDIwMjoxMjU0LDIwMzoxMjUzLDA6MjAxMjcsODo4NjUsOTo0MzcsMTA6ODUwLDExOjQzNywxMzo0MzcsMTQ6ODUwLDE1OjQzNywxNjo4NTAsMTc6NDM3LDE4Ojg1MCwxOTo5MzIsMjA6ODUwLDIxOjQzNywyMjo4NTAsMjM6ODY1LDI0OjQzNywyNTo0MzcsMjY6ODUwLDI3OjQzNywyODo4NjMsMjk6ODUwLDMxOjg1MiwzNDo4NTIsMzU6ODUyLDM2Ojg2MCwzNzo4NTAsMzg6ODY2LDU1Ojg1MCw2NDo4NTIsNzc6OTM2LDc4Ojk0OSw3OTo5NTAsODA6ODc0LDg3OjEyNTIsODg6MTI1Miw4OToxMjUyLDEwODo4NjMsMTM0OjczNywxMzU6ODUyLDEzNjo4NTcsMjA0OjEyNTcsMjU1OjE2OTY5fSxhPUl0KHsxOjQzNywyOjg1MCwzOjEyNTIsNDoxZTQsMTAwOjg1MiwxMDE6ODY2LDEwMjo4NjUsMTAzOjg2MSwxMDQ6ODk1LDEwNTo2MjAsMTA2OjczNywxMDc6ODU3LDEyMDo5NTAsMTIxOjk0OSwxMjI6OTM2LDEyMzo5MzIsMTI0Ojg3NCwxMjU6MTI1NSwxMjY6MTI1NiwxNTA6MTAwMDcsMTUxOjEwMDI5LDE1MjoxMDAwNiwyMDA6MTI1MCwyMDE6MTI1MSwyMDI6MTI1NCwyMDM6MTI1MywwOjIwMTI3fSk7ZnVuY3Rpb24gcihjLGYpe3ZhciBvPVtdLGw9VnIoMSk7c3dpdGNoKGYudHlwZSl7Y2FzZSJiYXNlNjQiOmw9RXIoZnIoYykpO2JyZWFrO2Nhc2UiYmluYXJ5IjpsPUVyKGMpO2JyZWFrO2Nhc2UiYnVmZmVyIjpjYXNlImFycmF5IjpsPWM7YnJlYWt9JGUobCwwKTt2YXIgaD1sLnJlYWRfc2hpZnQoMSkseD0hIShoJjEzNiksZD0hMSx2PSExO3N3aXRjaChoKXtjYXNlIDI6YnJlYWs7Y2FzZSAzOmJyZWFrO2Nhc2UgNDg6ZD0hMCx4PSEwO2JyZWFrO2Nhc2UgNDk6ZD0hMCx4PSEwO2JyZWFrO2Nhc2UgMTMxOmJyZWFrO2Nhc2UgMTM5OmJyZWFrO2Nhc2UgMTQwOnY9ITA7YnJlYWs7Y2FzZSAyNDU6YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkRCRiBVbnN1cHBvcnRlZCBWZXJzaW9uOiAiK2gudG9TdHJpbmcoMTYpKX12YXIgdT0wLGc9NTIxO2g9PTImJih1PWwucmVhZF9zaGlmdCgyKSksbC5sKz0zLGghPTImJih1PWwucmVhZF9zaGlmdCg0KSksdT4xMDQ4NTc2JiYodT0xZTYpLGghPTImJihnPWwucmVhZF9zaGlmdCgyKSk7dmFyIEY9bC5yZWFkX3NoaWZ0KDIpLHk9Zi5jb2RlcGFnZXx8MTI1MjtoIT0yJiYobC5sKz0xNixsLnJlYWRfc2hpZnQoMSksbFtsLmxdIT09MCYmKHk9ZVtsW2wubF1dKSxsLmwrPTEsbC5sKz0yKSx2JiYobC5sKz0zNik7Zm9yKHZhciBfPVtdLE49e30sYj1NYXRoLm1pbihsLmxlbmd0aCxoPT0yPzUyMTpnLTEwLShkPzI2NDowKSksST12PzMyOjExO2wubDxiJiZsW2wubF0hPTEzOylzd2l0Y2goTj17fSxOLm5hbWU9d2EudXRpbHMuZGVjb2RlKHksbC5zbGljZShsLmwsbC5sK0kpKS5yZXBsYWNlKC9bXHUwMDAwXHJcbl0uKiQvZywiIiksbC5sKz1JLE4udHlwZT1TdHJpbmcuZnJvbUNoYXJDb2RlKGwucmVhZF9zaGlmdCgxKSksaCE9MiYmIXYmJihOLm9mZnNldD1sLnJlYWRfc2hpZnQoNCkpLE4ubGVuPWwucmVhZF9zaGlmdCgxKSxoPT0yJiYoTi5vZmZzZXQ9bC5yZWFkX3NoaWZ0KDIpKSxOLmRlYz1sLnJlYWRfc2hpZnQoMSksTi5uYW1lLmxlbmd0aCYmXy5wdXNoKE4pLGghPTImJihsLmwrPXY/MTM6MTQpLE4udHlwZSl7Y2FzZSJCIjooIWR8fE4ubGVuIT04KSYmZi5XVEYmJmNvbnNvbGUubG9nKCJTa2lwcGluZyAiK04ubmFtZSsiOiIrTi50eXBlKTticmVhaztjYXNlIkciOmNhc2UiUCI6Zi5XVEYmJmNvbnNvbGUubG9nKCJTa2lwcGluZyAiK04ubmFtZSsiOiIrTi50eXBlKTticmVhaztjYXNlIisiOmNhc2UiMCI6Y2FzZSJAIjpjYXNlIkMiOmNhc2UiRCI6Y2FzZSJGIjpjYXNlIkkiOmNhc2UiTCI6Y2FzZSJNIjpjYXNlIk4iOmNhc2UiTyI6Y2FzZSJUIjpjYXNlIlkiOmJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbmtub3duIEZpZWxkIFR5cGU6ICIrTi50eXBlKX1pZihsW2wubF0hPT0xMyYmKGwubD1nLTEpLGwucmVhZF9zaGlmdCgxKSE9PTEzKXRocm93IG5ldyBFcnJvcigiREJGIFRlcm1pbmF0b3Igbm90IGZvdW5kICIrbC5sKyIgIitsW2wubF0pO2wubD1nO3ZhciBBPTAsVj0wO2ZvcihvWzBdPVtdLFY9MDtWIT1fLmxlbmd0aDsrK1Ypb1swXVtWXT1fW1ZdLm5hbWU7Zm9yKDt1LS0gPjA7KXtpZihsW2wubF09PT00Mil7bC5sKz1GO2NvbnRpbnVlfWZvcigrK2wubCxvWysrQV09W10sVj0wLFY9MDtWIT1fLmxlbmd0aDsrK1Ype3ZhciBEPWwuc2xpY2UobC5sLGwubCtfW1ZdLmxlbik7bC5sKz1fW1ZdLmxlbiwkZShELDApO3ZhciB6PXdhLnV0aWxzLmRlY29kZSh5LEQpO3N3aXRjaChfW1ZdLnR5cGUpe2Nhc2UiQyI6ei50cmltKCkubGVuZ3RoJiYob1tBXVtWXT16LnJlcGxhY2UoL1xzKyQvLCIiKSk7YnJlYWs7Y2FzZSJEIjp6Lmxlbmd0aD09PTg/b1tBXVtWXT1uZXcgRGF0ZSgrei5zbGljZSgwLDQpLCt6LnNsaWNlKDQsNiktMSwrei5zbGljZSg2LDgpKTpvW0FdW1ZdPXo7YnJlYWs7Y2FzZSJGIjpvW0FdW1ZdPXBhcnNlRmxvYXQoei50cmltKCkpO2JyZWFrO2Nhc2UiKyI6Y2FzZSJJIjpvW0FdW1ZdPXY/RC5yZWFkX3NoaWZ0KC00LCJpIileMjE0NzQ4MzY0ODpELnJlYWRfc2hpZnQoNCwiaSIpO2JyZWFrO2Nhc2UiTCI6c3dpdGNoKHoudHJpbSgpLnRvVXBwZXJDYXNlKCkpe2Nhc2UiWSI6Y2FzZSJUIjpvW0FdW1ZdPSEwO2JyZWFrO2Nhc2UiTiI6Y2FzZSJGIjpvW0FdW1ZdPSExO2JyZWFrO2Nhc2UiIjpjYXNlIj8iOmJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJEQkYgVW5yZWNvZ25pemVkIEw6fCIreisifCIpfWJyZWFrO2Nhc2UiTSI6aWYoIXgpdGhyb3cgbmV3IEVycm9yKCJEQkYgVW5leHBlY3RlZCBNRU1PIGZvciB0eXBlICIraC50b1N0cmluZygxNikpO29bQV1bVl09IiMjTUVNTyMjIisodj9wYXJzZUludCh6LnRyaW0oKSwxMCk6RC5yZWFkX3NoaWZ0KDQpKTticmVhaztjYXNlIk4iOno9ei5yZXBsYWNlKC9cdTAwMDAvZywiIikudHJpbSgpLHomJnohPSIuIiYmKG9bQV1bVl09K3p8fDApO2JyZWFrO2Nhc2UiQCI6b1tBXVtWXT1uZXcgRGF0ZShELnJlYWRfc2hpZnQoLTgsImYiKS02MjEzNTY4MzJlNSk7YnJlYWs7Y2FzZSJUIjpvW0FdW1ZdPW5ldyBEYXRlKChELnJlYWRfc2hpZnQoNCktMjQ0MDU4OCkqODY0ZTUrRC5yZWFkX3NoaWZ0KDQpKTticmVhaztjYXNlIlkiOm9bQV1bVl09RC5yZWFkX3NoaWZ0KDQsImkiKS8xZTQrRC5yZWFkX3NoaWZ0KDQsImkiKS8xZTQqTWF0aC5wb3coMiwzMik7YnJlYWs7Y2FzZSJPIjpvW0FdW1ZdPS1ELnJlYWRfc2hpZnQoLTgsImYiKTticmVhaztjYXNlIkIiOmlmKGQmJl9bVl0ubGVuPT04KXtvW0FdW1ZdPUQucmVhZF9zaGlmdCg4LCJmIik7YnJlYWt9Y2FzZSJHIjpjYXNlIlAiOkQubCs9X1tWXS5sZW47YnJlYWs7Y2FzZSIwIjppZihfW1ZdLm5hbWU9PT0iX051bGxGbGFncyIpYnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkRCRiBVbnN1cHBvcnRlZCBkYXRhIHR5cGUgIitfW1ZdLnR5cGUpfX19aWYoaCE9MiYmbC5sPGwubGVuZ3RoJiZsW2wubCsrXSE9MjYpdGhyb3cgbmV3IEVycm9yKCJEQkYgRU9GIE1hcmtlciBtaXNzaW5nICIrKGwubC0xKSsiIG9mICIrbC5sZW5ndGgrIiAiK2xbbC5sLTFdLnRvU3RyaW5nKDE2KSk7cmV0dXJuIGYmJmYuc2hlZXRSb3dzJiYobz1vLnNsaWNlKDAsZi5zaGVldFJvd3MpKSxmLkRCRj1fLG99ZnVuY3Rpb24gbihjLGYpe3ZhciBvPWZ8fHt9O28uZGF0ZU5GfHwoby5kYXRlTkY9Inl5eXltbWRkIik7dmFyIGw9Z2EocihjLG8pLG8pO3JldHVybiBsWyIhY29scyJdPW8uREJGLm1hcChmdW5jdGlvbihoKXtyZXR1cm57d2NoOmgubGVuLERCRjpofX0pLGRlbGV0ZSBvLkRCRixsfWZ1bmN0aW9uIHQoYyxmKXt0cnl7cmV0dXJuIFhyKG4oYyxmKSxmKX1jYXRjaChvKXtpZihmJiZmLldURil0aHJvdyBvfXJldHVybntTaGVldE5hbWVzOltdLFNoZWV0czp7fX19dmFyIHM9e0I6OCxDOjI1MCxMOjEsRDo4LCI/IjowLCIiOjB9O2Z1bmN0aW9uIGkoYyxmKXt2YXIgbz1mfHx7fTtpZigrby5jb2RlcGFnZT49MCYmX3IoK28uY29kZXBhZ2UpLG8udHlwZT09InN0cmluZyIpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgd3JpdGUgREJGIHRvIEpTIHN0cmluZyIpO3ZhciBsPWJ0KCksaD1nMChjLHtoZWFkZXI6MSxyYXc6ITAsY2VsbERhdGVzOiEwfSkseD1oWzBdLGQ9aC5zbGljZSgxKSx2PWNbIiFjb2xzIl18fFtdLHU9MCxnPTAsRj0wLHk9MTtmb3IodT0wO3U8eC5sZW5ndGg7Kyt1KXtpZigoKHZbdV18fHt9KS5EQkZ8fHt9KS5uYW1lKXt4W3VdPXZbdV0uREJGLm5hbWUsKytGO2NvbnRpbnVlfWlmKHhbdV0hPW51bGwpe2lmKCsrRix0eXBlb2YgeFt1XT09Im51bWJlciImJih4W3VdPXhbdV0udG9TdHJpbmcoMTApKSx0eXBlb2YgeFt1XSE9InN0cmluZyIpdGhyb3cgbmV3IEVycm9yKCJEQkYgSW52YWxpZCBjb2x1bW4gbmFtZSAiK3hbdV0rIiB8Iit0eXBlb2YgeFt1XSsifCIpO2lmKHguaW5kZXhPZih4W3VdKSE9PXUpe2ZvcihnPTA7ZzwxMDI0OysrZylpZih4LmluZGV4T2YoeFt1XSsiXyIrZyk9PS0xKXt4W3VdKz0iXyIrZzticmVha319fX12YXIgXz1PZShjWyIhcmVmIl0pLE49W10sYj1bXSxJPVtdO2Zvcih1PTA7dTw9Xy5lLmMtXy5zLmM7Kyt1KXt2YXIgQT0iIixWPSIiLEQ9MCx6PVtdO2ZvcihnPTA7ZzxkLmxlbmd0aDsrK2cpZFtnXVt1XSE9bnVsbCYmei5wdXNoKGRbZ11bdV0pO2lmKHoubGVuZ3RoPT0wfHx4W3VdPT1udWxsKXtOW3VdPSI/Ijtjb250aW51ZX1mb3IoZz0wO2c8ei5sZW5ndGg7KytnKXtzd2l0Y2godHlwZW9mIHpbZ10pe2Nhc2UibnVtYmVyIjpWPSJCIjticmVhaztjYXNlInN0cmluZyI6Vj0iQyI7YnJlYWs7Y2FzZSJib29sZWFuIjpWPSJMIjticmVhaztjYXNlIm9iamVjdCI6Vj16W2ddaW5zdGFuY2VvZiBEYXRlPyJEIjoiQyI7YnJlYWs7ZGVmYXVsdDpWPSJDIn1EPU1hdGgubWF4KEQsU3RyaW5nKHpbZ10pLmxlbmd0aCksQT1BJiZBIT1WPyJDIjpWfUQ+MjUwJiYoRD0yNTApLFY9KCh2W3VdfHx7fSkuREJGfHx7fSkudHlwZSxWPT0iQyImJnZbdV0uREJGLmxlbj5EJiYoRD12W3VdLkRCRi5sZW4pLEE9PSJCIiYmVj09Ik4iJiYoQT0iTiIsSVt1XT12W3VdLkRCRi5kZWMsRD12W3VdLkRCRi5sZW4pLGJbdV09QT09IkMifHxWPT0iTiI/RDpzW0FdfHwwLHkrPWJbdV0sTlt1XT1BfXZhciBHPWwubmV4dCgzMik7Zm9yKEcud3JpdGVfc2hpZnQoNCwzMTg5MDI1NzYpLEcud3JpdGVfc2hpZnQoNCxkLmxlbmd0aCksRy53cml0ZV9zaGlmdCgyLDI5NiszMipGKSxHLndyaXRlX3NoaWZ0KDIseSksdT0wO3U8NDsrK3UpRy53cml0ZV9zaGlmdCg0LDApO2ZvcihHLndyaXRlX3NoaWZ0KDQsMHwoK2FbdzBdfHwzKTw8OCksdT0wLGc9MDt1PHgubGVuZ3RoOysrdSlpZih4W3VdIT1udWxsKXt2YXIgUD1sLm5leHQoMzIpLEo9KHhbdV0uc2xpY2UoLTEwKSsiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIpLnNsaWNlKDAsMTEpO1Aud3JpdGVfc2hpZnQoMSxKLCJzYmNzIiksUC53cml0ZV9zaGlmdCgxLE5bdV09PSI/Ij8iQyI6Tlt1XSwic2JjcyIpLFAud3JpdGVfc2hpZnQoNCxnKSxQLndyaXRlX3NoaWZ0KDEsYlt1XXx8c1tOW3VdXXx8MCksUC53cml0ZV9zaGlmdCgxLElbdV18fDApLFAud3JpdGVfc2hpZnQoMSwyKSxQLndyaXRlX3NoaWZ0KDQsMCksUC53cml0ZV9zaGlmdCgxLDApLFAud3JpdGVfc2hpZnQoNCwwKSxQLndyaXRlX3NoaWZ0KDQsMCksZys9Ylt1XXx8c1tOW3VdXXx8MH12YXIgZmU9bC5uZXh0KDI2NCk7Zm9yKGZlLndyaXRlX3NoaWZ0KDQsMTMpLHU9MDt1PDY1OysrdSlmZS53cml0ZV9zaGlmdCg0LDApO2Zvcih1PTA7dTxkLmxlbmd0aDsrK3Upe3ZhciByZT1sLm5leHQoeSk7Zm9yKHJlLndyaXRlX3NoaWZ0KDEsMCksZz0wO2c8eC5sZW5ndGg7KytnKWlmKHhbZ10hPW51bGwpc3dpdGNoKE5bZ10pe2Nhc2UiTCI6cmUud3JpdGVfc2hpZnQoMSxkW3VdW2ddPT1udWxsPzYzOmRbdV1bZ10/ODQ6NzApO2JyZWFrO2Nhc2UiQiI6cmUud3JpdGVfc2hpZnQoOCxkW3VdW2ddfHwwLCJmIik7YnJlYWs7Y2FzZSJOIjp2YXIgY2U9IjAiO2Zvcih0eXBlb2YgZFt1XVtnXT09Im51bWJlciImJihjZT1kW3VdW2ddLnRvRml4ZWQoSVtnXXx8MCkpLEY9MDtGPGJbZ10tY2UubGVuZ3RoOysrRilyZS53cml0ZV9zaGlmdCgxLDMyKTtyZS53cml0ZV9zaGlmdCgxLGNlLCJzYmNzIik7YnJlYWs7Y2FzZSJEIjpkW3VdW2ddPyhyZS53cml0ZV9zaGlmdCg0LCgiMDAwMCIrZFt1XVtnXS5nZXRGdWxsWWVhcigpKS5zbGljZSgtNCksInNiY3MiKSxyZS53cml0ZV9zaGlmdCgyLCgiMDAiKyhkW3VdW2ddLmdldE1vbnRoKCkrMSkpLnNsaWNlKC0yKSwic2JjcyIpLHJlLndyaXRlX3NoaWZ0KDIsKCIwMCIrZFt1XVtnXS5nZXREYXRlKCkpLnNsaWNlKC0yKSwic2JjcyIpKTpyZS53cml0ZV9zaGlmdCg4LCIwMDAwMDAwMCIsInNiY3MiKTticmVhaztjYXNlIkMiOnZhciBpZT1TdHJpbmcoZFt1XVtnXSE9bnVsbD9kW3VdW2ddOiIiKS5zbGljZSgwLGJbZ10pO2ZvcihyZS53cml0ZV9zaGlmdCgxLGllLCJzYmNzIiksRj0wO0Y8YltnXS1pZS5sZW5ndGg7KytGKXJlLndyaXRlX3NoaWZ0KDEsMzIpO2JyZWFrfX1yZXR1cm4gbC5uZXh0KDEpLndyaXRlX3NoaWZ0KDEsMjYpLGwuZW5kKCl9cmV0dXJue3RvX3dvcmtib29rOnQsdG9fc2hlZXQ6bixmcm9tX3NoZWV0Oml9fSgpLENvPWZ1bmN0aW9uKCl7dmFyIGU9e0FBOiLDgCIsQkE6IsOBIixDQToiw4IiLERBOjE5NSxIQToiw4QiLEpBOjE5NyxBRToiw4giLEJFOiLDiSIsQ0U6IsOKIixIRToiw4siLEFJOiLDjCIsQkk6IsONIixDSToiw44iLEhJOiLDjyIsQU86IsOSIixCTzoiw5MiLENPOiLDlCIsRE86MjEzLEhPOiLDliIsQVU6IsOZIixCVToiw5oiLENVOiLDmyIsSFU6IsOcIixBYToiw6AiLEJhOiLDoSIsQ2E6IsOiIixEYToyMjcsSGE6IsOkIixKYToyMjksQWU6IsOoIixCZToiw6kiLENlOiLDqiIsSGU6IsOrIixBaToiw6wiLEJpOiLDrSIsQ2k6IsOuIixIaToiw68iLEFvOiLDsiIsQm86IsOzIixDbzoiw7QiLERvOjI0NSxIbzoiw7YiLEF1OiLDuSIsQnU6IsO6IixDdToiw7siLEh1OiLDvCIsS0M6IsOHIixLYzoiw6ciLHE6IsOmIix6OiLFkyIsYToiw4YiLGo6IsWSIixETjoyMDksRG46MjQxLEh5OjI1NSxTOjE2OSxjOjE3MCxSOjE3NCwiQiAiOjE4MCwwOjE3NiwxOjE3NywyOjE3OCwzOjE3OSw1OjE4MSw2OjE4Miw3OjE4MyxROjE4NSxrOjE4NixiOjIwOCxpOjIxNixsOjIyMixzOjI0MCx5OjI0OCwiISI6MTYxLCciJzoxNjIsIiMiOjE2MywiKCI6MTY0LCIlIjoxNjUsIiciOjE2NywiSCAiOjE2OCwiKyI6MTcxLCI7IjoxODcsIjwiOjE4OCwiPSI6MTg5LCI+IjoxOTAsIj8iOjE5MSwieyI6MjIzfSxhPW5ldyBSZWdFeHAoIlx4MUJOKCIrU3IoZSkuam9pbigifCIpLnJlcGxhY2UoL1x8XHxcfC8sInxcXHx8IikucmVwbGFjZSgvKFs/KCkrXSkvZywiXFwkMSIpKyJ8XFx8KSIsImdtIikscj1mdW5jdGlvbih4LGQpe3ZhciB2PWVbZF07cmV0dXJuIHR5cGVvZiB2PT0ibnVtYmVyIj9DMCh2KTp2fSxuPWZ1bmN0aW9uKHgsZCx2KXt2YXIgdT1kLmNoYXJDb2RlQXQoMCktMzI8PDR8di5jaGFyQ29kZUF0KDApLTQ4O3JldHVybiB1PT01OT94OkMwKHUpfTtlWyJ8Il09MjU0O2Z1bmN0aW9uIHQoeCxkKXtzd2l0Y2goZC50eXBlKXtjYXNlImJhc2U2NCI6cmV0dXJuIHMoZnIoeCksZCk7Y2FzZSJiaW5hcnkiOnJldHVybiBzKHgsZCk7Y2FzZSJidWZmZXIiOnJldHVybiBzKGdlJiZCdWZmZXIuaXNCdWZmZXIoeCk/eC50b1N0cmluZygiYmluYXJ5Iik6WnIoeCksZCk7Y2FzZSJhcnJheSI6cmV0dXJuIHMocmEoeCksZCl9dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiK2QudHlwZSl9ZnVuY3Rpb24gcyh4LGQpe3ZhciB2PXguc3BsaXQoL1tcblxyXSsvKSx1PS0xLGc9LTEsRj0wLHk9MCxfPVtdLE49W10sYj1udWxsLEk9e30sQT1bXSxWPVtdLEQ9W10sej0wLEc7Zm9yKCtkLmNvZGVwYWdlPj0wJiZfcigrZC5jb2RlcGFnZSk7RiE9PXYubGVuZ3RoOysrRil7ej0wO3ZhciBQPXZbRl0udHJpbSgpLnJlcGxhY2UoL1x4MUIoW1x4MjAtXHgyRl0pKFtceDMwLVx4M0ZdKS9nLG4pLnJlcGxhY2UoYSxyKSxKPVAucmVwbGFjZSgvOzsvZywiXDAiKS5zcGxpdCgiOyIpLm1hcChmdW5jdGlvbihPKXtyZXR1cm4gTy5yZXBsYWNlKC9cdTAwMDAvZywiOyIpfSksZmU9SlswXSxyZTtpZihQLmxlbmd0aD4wKXN3aXRjaChmZSl7Y2FzZSJJRCI6YnJlYWs7Y2FzZSJFIjpicmVhaztjYXNlIkIiOmJyZWFrO2Nhc2UiTyI6YnJlYWs7Y2FzZSJXIjpicmVhaztjYXNlIlAiOkpbMV0uY2hhckF0KDApPT0iUCImJk4ucHVzaChQLnNsaWNlKDMpLnJlcGxhY2UoLzs7L2csIjsiKSk7YnJlYWs7Y2FzZSJDIjp2YXIgY2U9ITEsaWU9ITEsRmU9ITEsVz0hMSxsZT0tMSxoZT0tMTtmb3IoeT0xO3k8Si5sZW5ndGg7Kyt5KXN3aXRjaChKW3ldLmNoYXJBdCgwKSl7Y2FzZSJBIjpicmVhaztjYXNlIlgiOmc9cGFyc2VJbnQoSlt5XS5zbGljZSgxKSktMSxpZT0hMDticmVhaztjYXNlIlkiOmZvcih1PXBhcnNlSW50KEpbeV0uc2xpY2UoMSkpLTEsaWV8fChnPTApLEc9Xy5sZW5ndGg7Rzw9dTsrK0cpX1tHXT1bXTticmVhaztjYXNlIksiOnJlPUpbeV0uc2xpY2UoMSkscmUuY2hhckF0KDApPT09JyInP3JlPXJlLnNsaWNlKDEscmUubGVuZ3RoLTEpOnJlPT09IlRSVUUiP3JlPSEwOnJlPT09IkZBTFNFIj9yZT0hMTppc05hTihrcihyZSkpP2lzTmFOKGRhKHJlKS5nZXREYXRlKCkpfHwocmU9V2UocmUpKToocmU9a3IocmUpLGIhPT1udWxsJiZ4YShiKSYmKHJlPWl0KHJlKSkpLGNlPSEwO2JyZWFrO2Nhc2UiRSI6Vz0hMDt2YXIgUz1FYShKW3ldLnNsaWNlKDEpLHtyOnUsYzpnfSk7X1t1XVtnXT1bX1t1XVtnXSxTXTticmVhaztjYXNlIlMiOkZlPSEwLF9bdV1bZ109W19bdV1bZ10sIlM1UyJdO2JyZWFrO2Nhc2UiRyI6YnJlYWs7Y2FzZSJSIjpsZT1wYXJzZUludChKW3ldLnNsaWNlKDEpKS0xO2JyZWFrO2Nhc2UiQyI6aGU9cGFyc2VJbnQoSlt5XS5zbGljZSgxKSktMTticmVhaztkZWZhdWx0OmlmKGQmJmQuV1RGKXRocm93IG5ldyBFcnJvcigiU1lMSyBiYWQgcmVjb3JkICIrUCl9aWYoY2UmJihfW3VdW2ddJiZfW3VdW2ddLmxlbmd0aD09Mj9fW3VdW2ddWzBdPXJlOl9bdV1bZ109cmUsYj1udWxsKSxGZSl7aWYoVyl0aHJvdyBuZXcgRXJyb3IoIlNZTEsgc2hhcmVkIGZvcm11bGEgY2Fubm90IGhhdmUgb3duIGZvcm11bGEiKTt2YXIgVT1sZT4tMSYmX1tsZV1baGVdO2lmKCFVfHwhVVsxXSl0aHJvdyBuZXcgRXJyb3IoIlNZTEsgc2hhcmVkIGZvcm11bGEgY2Fubm90IGZpbmQgYmFzZSIpO19bdV1bZ11bMV09a3MoVVsxXSx7cjp1LWxlLGM6Zy1oZX0pfWJyZWFrO2Nhc2UiRiI6dmFyIFI9MDtmb3IoeT0xO3k8Si5sZW5ndGg7Kyt5KXN3aXRjaChKW3ldLmNoYXJBdCgwKSl7Y2FzZSJYIjpnPXBhcnNlSW50KEpbeV0uc2xpY2UoMSkpLTEsKytSO2JyZWFrO2Nhc2UiWSI6Zm9yKHU9cGFyc2VJbnQoSlt5XS5zbGljZSgxKSktMSxHPV8ubGVuZ3RoO0c8PXU7KytHKV9bR109W107YnJlYWs7Y2FzZSJNIjp6PXBhcnNlSW50KEpbeV0uc2xpY2UoMSkpLzIwO2JyZWFrO2Nhc2UiRiI6YnJlYWs7Y2FzZSJHIjpicmVhaztjYXNlIlAiOmI9TltwYXJzZUludChKW3ldLnNsaWNlKDEpKV07YnJlYWs7Y2FzZSJTIjpicmVhaztjYXNlIkQiOmJyZWFrO2Nhc2UiTiI6YnJlYWs7Y2FzZSJXIjpmb3IoRD1KW3ldLnNsaWNlKDEpLnNwbGl0KCIgIiksRz1wYXJzZUludChEWzBdLDEwKTtHPD1wYXJzZUludChEWzFdLDEwKTsrK0cpej1wYXJzZUludChEWzJdLDEwKSxWW0ctMV09ej09PTA/e2hpZGRlbjohMH06e3djaDp6fSxfYShWW0ctMV0pO2JyZWFrO2Nhc2UiQyI6Zz1wYXJzZUludChKW3ldLnNsaWNlKDEpKS0xLFZbZ118fChWW2ddPXt9KTticmVhaztjYXNlIlIiOnU9cGFyc2VJbnQoSlt5XS5zbGljZSgxKSktMSxBW3VdfHwoQVt1XT17fSksej4wPyhBW3VdLmhwdD16LEFbdV0uaHB4PVZhKHopKTp6PT09MCYmKEFbdV0uaGlkZGVuPSEwKTticmVhaztkZWZhdWx0OmlmKGQmJmQuV1RGKXRocm93IG5ldyBFcnJvcigiU1lMSyBiYWQgcmVjb3JkICIrUCl9UjwxJiYoYj1udWxsKTticmVhaztkZWZhdWx0OmlmKGQmJmQuV1RGKXRocm93IG5ldyBFcnJvcigiU1lMSyBiYWQgcmVjb3JkICIrUCl9fXJldHVybiBBLmxlbmd0aD4wJiYoSVsiIXJvd3MiXT1BKSxWLmxlbmd0aD4wJiYoSVsiIWNvbHMiXT1WKSxkJiZkLnNoZWV0Um93cyYmKF89Xy5zbGljZSgwLGQuc2hlZXRSb3dzKSksW18sSV19ZnVuY3Rpb24gaSh4LGQpe3ZhciB2PXQoeCxkKSx1PXZbMF0sZz12WzFdLEY9Z2EodSxkKTtyZXR1cm4gU3IoZykuZm9yRWFjaChmdW5jdGlvbih5KXtGW3ldPWdbeV19KSxGfWZ1bmN0aW9uIGMoeCxkKXtyZXR1cm4gWHIoaSh4LGQpLGQpfWZ1bmN0aW9uIGYoeCxkLHYsdSl7dmFyIGc9IkM7WSIrKHYrMSkrIjtYIisodSsxKSsiO0siO3N3aXRjaCh4LnQpe2Nhc2UibiI6Zys9eC52fHwwLHguZiYmIXguRiYmKGcrPSI7RSIreDEoeC5mLHtyOnYsYzp1fSkpO2JyZWFrO2Nhc2UiYiI6Zys9eC52PyJUUlVFIjoiRkFMU0UiO2JyZWFrO2Nhc2UiZSI6Zys9eC53fHx4LnY7YnJlYWs7Y2FzZSJkIjpnKz0nIicrKHgud3x8eC52KSsnIic7YnJlYWs7Y2FzZSJzIjpnKz0nIicreC52LnJlcGxhY2UoLyIvZywiIikucmVwbGFjZSgvOy9nLCI7OyIpKyciJzticmVha31yZXR1cm4gZ31mdW5jdGlvbiBvKHgsZCl7ZC5mb3JFYWNoKGZ1bmN0aW9uKHYsdSl7dmFyIGc9IkY7VyIrKHUrMSkrIiAiKyh1KzEpKyIgIjt2LmhpZGRlbj9nKz0iMCI6KHR5cGVvZiB2LndpZHRoPT0ibnVtYmVyIiYmIXYud3B4JiYodi53cHg9Z3Qodi53aWR0aCkpLHR5cGVvZiB2LndweD09Im51bWJlciImJiF2LndjaCYmKHYud2NoPW10KHYud3B4KSksdHlwZW9mIHYud2NoPT0ibnVtYmVyIiYmKGcrPU1hdGgucm91bmQodi53Y2gpKSksZy5jaGFyQXQoZy5sZW5ndGgtMSkhPSIgIiYmeC5wdXNoKGcpfSl9ZnVuY3Rpb24gbCh4LGQpe2QuZm9yRWFjaChmdW5jdGlvbih2LHUpe3ZhciBnPSJGOyI7di5oaWRkZW4/Zys9Ik0wOyI6di5ocHQ/Zys9Ik0iKzIwKnYuaHB0KyI7Ijp2LmhweCYmKGcrPSJNIisyMCptcyh2LmhweCkrIjsiKSxnLmxlbmd0aD4yJiZ4LnB1c2goZysiUiIrKHUrMSkpfSl9ZnVuY3Rpb24gaCh4LGQpe3ZhciB2PVsiSUQ7UFdYTDtOO0UiXSx1PVtdLGc9T2UoeFsiIXJlZiJdKSxGLHk9QXJyYXkuaXNBcnJheSh4KSxfPWBccgpgO3YucHVzaCgiUDtQR2VuZXJhbCIpLHYucHVzaCgiRjtQMDtERzBHODtNMjU1IikseFsiIWNvbHMiXSYmbyh2LHhbIiFjb2xzIl0pLHhbIiFyb3dzIl0mJmwodix4WyIhcm93cyJdKSx2LnB1c2goIkI7WSIrKGcuZS5yLWcucy5yKzEpKyI7WCIrKGcuZS5jLWcucy5jKzEpKyI7RCIrW2cucy5jLGcucy5yLGcuZS5jLGcuZS5yXS5qb2luKCIgIikpO2Zvcih2YXIgTj1nLnMucjtOPD1nLmUucjsrK04pZm9yKHZhciBiPWcucy5jO2I8PWcuZS5jOysrYil7dmFyIEk9dWUoe3I6TixjOmJ9KTtGPXk/KHhbTl18fFtdKVtiXTp4W0ldLCEoIUZ8fEYudj09bnVsbCYmKCFGLmZ8fEYuRikpJiZ1LnB1c2goZihGLHgsTixiKSl9cmV0dXJuIHYuam9pbihfKStfK3Uuam9pbihfKStfKyJFIitffXJldHVybnt0b193b3JrYm9vazpjLHRvX3NoZWV0OmksZnJvbV9zaGVldDpofX0oKSx5bz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUocyxpKXtzd2l0Y2goaS50eXBlKXtjYXNlImJhc2U2NCI6cmV0dXJuIGEoZnIocyksaSk7Y2FzZSJiaW5hcnkiOnJldHVybiBhKHMsaSk7Y2FzZSJidWZmZXIiOnJldHVybiBhKGdlJiZCdWZmZXIuaXNCdWZmZXIocyk/cy50b1N0cmluZygiYmluYXJ5Iik6WnIocyksaSk7Y2FzZSJhcnJheSI6cmV0dXJuIGEocmEocyksaSl9dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiK2kudHlwZSl9ZnVuY3Rpb24gYShzLGkpe2Zvcih2YXIgYz1zLnNwbGl0KGAKYCksZj0tMSxvPS0xLGw9MCxoPVtdO2whPT1jLmxlbmd0aDsrK2wpe2lmKGNbbF0udHJpbSgpPT09IkJPVCIpe2hbKytmXT1bXSxvPTA7Y29udGludWV9aWYoIShmPDApKXt2YXIgeD1jW2xdLnRyaW0oKS5zcGxpdCgiLCIpLGQ9eFswXSx2PXhbMV07KytsO2Zvcih2YXIgdT1jW2xdfHwiIjsodS5tYXRjaCgvWyJdL2cpfHxbXSkubGVuZ3RoJjEmJmw8Yy5sZW5ndGgtMTspdSs9YApgK2NbKytsXTtzd2l0Y2godT11LnRyaW0oKSwrZCl7Y2FzZS0xOmlmKHU9PT0iQk9UIil7aFsrK2ZdPVtdLG89MDtjb250aW51ZX1lbHNlIGlmKHUhPT0iRU9EIil0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBESUYgc3BlY2lhbCBjb21tYW5kICIrdSk7YnJlYWs7Y2FzZSAwOnU9PT0iVFJVRSI/aFtmXVtvXT0hMDp1PT09IkZBTFNFIj9oW2ZdW29dPSExOmlzTmFOKGtyKHYpKT9pc05hTihkYSh2KS5nZXREYXRlKCkpP2hbZl1bb109djpoW2ZdW29dPVdlKHYpOmhbZl1bb109a3IodiksKytvO2JyZWFrO2Nhc2UgMTp1PXUuc2xpY2UoMSx1Lmxlbmd0aC0xKSx1PXUucmVwbGFjZSgvIiIvZywnIicpLHUmJnUubWF0Y2goL149Ii4qIiQvKSYmKHU9dS5zbGljZSgyLC0xKSksaFtmXVtvKytdPXUhPT0iIj91Om51bGw7YnJlYWt9aWYodT09PSJFT0QiKWJyZWFrfX1yZXR1cm4gaSYmaS5zaGVldFJvd3MmJihoPWguc2xpY2UoMCxpLnNoZWV0Um93cykpLGh9ZnVuY3Rpb24gcihzLGkpe3JldHVybiBnYShlKHMsaSksaSl9ZnVuY3Rpb24gbihzLGkpe3JldHVybiBYcihyKHMsaSksaSl9dmFyIHQ9ZnVuY3Rpb24oKXt2YXIgcz1mdW5jdGlvbihmLG8sbCxoLHgpe2YucHVzaChvKSxmLnB1c2gobCsiLCIraCksZi5wdXNoKCciJyt4LnJlcGxhY2UoLyIvZywnIiInKSsnIicpfSxpPWZ1bmN0aW9uKGYsbyxsLGgpe2YucHVzaChvKyIsIitsKSxmLnB1c2gobz09MT8nIicraC5yZXBsYWNlKC8iL2csJyIiJykrJyInOmgpfTtyZXR1cm4gZnVuY3Rpb24oZil7dmFyIG89W10sbD1PZShmWyIhcmVmIl0pLGgseD1BcnJheS5pc0FycmF5KGYpO3MobywiVEFCTEUiLDAsMSwic2hlZXRqcyIpLHMobywiVkVDVE9SUyIsMCxsLmUuci1sLnMucisxLCIiKSxzKG8sIlRVUExFUyIsMCxsLmUuYy1sLnMuYysxLCIiKSxzKG8sIkRBVEEiLDAsMCwiIik7Zm9yKHZhciBkPWwucy5yO2Q8PWwuZS5yOysrZCl7aShvLC0xLDAsIkJPVCIpO2Zvcih2YXIgdj1sLnMuYzt2PD1sLmUuYzsrK3Ype3ZhciB1PXVlKHtyOmQsYzp2fSk7aWYoaD14PyhmW2RdfHxbXSlbdl06Zlt1XSwhaCl7aShvLDEsMCwiIik7Y29udGludWV9c3dpdGNoKGgudCl7Y2FzZSJuIjp2YXIgZz1oLnc7IWcmJmgudiE9bnVsbCYmKGc9aC52KSxnPT1udWxsP2guZiYmIWguRj9pKG8sMSwwLCI9IitoLmYpOmkobywxLDAsIiIpOmkobywwLGcsIlYiKTticmVhaztjYXNlImIiOmkobywwLGgudj8xOjAsaC52PyJUUlVFIjoiRkFMU0UiKTticmVhaztjYXNlInMiOmkobywxLDAsaXNOYU4oaC52KT9oLnY6Jz0iJytoLnYrJyInKTticmVhaztjYXNlImQiOmgud3x8KGgudz14cihoLnp8fGRlWzE0XSx0cihXZShoLnYpKSkpLGkobywwLGgudywiViIpO2JyZWFrO2RlZmF1bHQ6aShvLDEsMCwiIil9fX1pKG8sLTEsMCwiRU9EIik7dmFyIEY9YFxyCmAseT1vLmpvaW4oRik7cmV0dXJuIHl9fSgpO3JldHVybnt0b193b3JrYm9vazpuLHRvX3NoZWV0OnIsZnJvbV9zaGVldDp0fX0oKSxEbz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoaCl7cmV0dXJuIGgucmVwbGFjZSgvXFxiL2csIlxcIikucmVwbGFjZSgvXFxjL2csIjoiKS5yZXBsYWNlKC9cXG4vZyxgCmApfWZ1bmN0aW9uIGEoaCl7cmV0dXJuIGgucmVwbGFjZSgvXFwvZywiXFxiIikucmVwbGFjZSgvOi9nLCJcXGMiKS5yZXBsYWNlKC9cbi9nLCJcXG4iKX1mdW5jdGlvbiByKGgseCl7Zm9yKHZhciBkPWguc3BsaXQoYApgKSx2PS0xLHU9LTEsZz0wLEY9W107ZyE9PWQubGVuZ3RoOysrZyl7dmFyIHk9ZFtnXS50cmltKCkuc3BsaXQoIjoiKTtpZih5WzBdPT09ImNlbGwiKXt2YXIgXz1ucih5WzFdKTtpZihGLmxlbmd0aDw9Xy5yKWZvcih2PUYubGVuZ3RoO3Y8PV8ucjsrK3YpRlt2XXx8KEZbdl09W10pO3N3aXRjaCh2PV8ucix1PV8uYyx5WzJdKXtjYXNlInQiOkZbdl1bdV09ZSh5WzNdKTticmVhaztjYXNlInYiOkZbdl1bdV09K3lbM107YnJlYWs7Y2FzZSJ2dGYiOnZhciBOPXlbeS5sZW5ndGgtMV07Y2FzZSJ2dGMiOnN3aXRjaCh5WzNdKXtjYXNlIm5sIjpGW3ZdW3VdPSEhK3lbNF07YnJlYWs7ZGVmYXVsdDpGW3ZdW3VdPSt5WzRdO2JyZWFrfXlbMl09PSJ2dGYiJiYoRlt2XVt1XT1bRlt2XVt1XSxOXSl9fX1yZXR1cm4geCYmeC5zaGVldFJvd3MmJihGPUYuc2xpY2UoMCx4LnNoZWV0Um93cykpLEZ9ZnVuY3Rpb24gbihoLHgpe3JldHVybiBnYShyKGgseCkseCl9ZnVuY3Rpb24gdChoLHgpe3JldHVybiBYcihuKGgseCkseCl9dmFyIHM9WyJzb2NpYWxjYWxjOnZlcnNpb246MS41IiwiTUlNRS1WZXJzaW9uOiAxLjAiLCJDb250ZW50LVR5cGU6IG11bHRpcGFydC9taXhlZDsgYm91bmRhcnk9U29jaWFsQ2FsY1NwcmVhZHNoZWV0Q29udHJvbFNhdmUiXS5qb2luKGAKYCksaT1bIi0tU29jaWFsQ2FsY1NwcmVhZHNoZWV0Q29udHJvbFNhdmUiLCJDb250ZW50LXR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgiXS5qb2luKGAKYCkrYApgLGM9WyIjIFNvY2lhbENhbGMgU3ByZWFkc2hlZXQgQ29udHJvbCBTYXZlIiwicGFydDpzaGVldCJdLmpvaW4oYApgKSxmPSItLVNvY2lhbENhbGNTcHJlYWRzaGVldENvbnRyb2xTYXZlLS0iO2Z1bmN0aW9uIG8oaCl7aWYoIWh8fCFoWyIhcmVmIl0pcmV0dXJuIiI7Zm9yKHZhciB4PVtdLGQ9W10sdix1PSIiLGc9cGEoaFsiIXJlZiJdKSxGPUFycmF5LmlzQXJyYXkoaCkseT1nLnMucjt5PD1nLmUucjsrK3kpZm9yKHZhciBfPWcucy5jO188PWcuZS5jOysrXylpZih1PXVlKHtyOnksYzpffSksdj1GPyhoW3ldfHxbXSlbX106aFt1XSwhKCF2fHx2LnY9PW51bGx8fHYudD09PSJ6Iikpe3N3aXRjaChkPVsiY2VsbCIsdSwidCJdLHYudCl7Y2FzZSJzIjpjYXNlInN0ciI6ZC5wdXNoKGEodi52KSk7YnJlYWs7Y2FzZSJuIjp2LmY/KGRbMl09InZ0ZiIsZFszXT0ibiIsZFs0XT12LnYsZFs1XT1hKHYuZikpOihkWzJdPSJ2IixkWzNdPXYudik7YnJlYWs7Y2FzZSJiIjpkWzJdPSJ2dCIrKHYuZj8iZiI6ImMiKSxkWzNdPSJubCIsZFs0XT12LnY/IjEiOiIwIixkWzVdPWEodi5mfHwodi52PyJUUlVFIjoiRkFMU0UiKSk7YnJlYWs7Y2FzZSJkIjp2YXIgTj10cihXZSh2LnYpKTtkWzJdPSJ2dGMiLGRbM109Im5kIixkWzRdPSIiK04sZFs1XT12Lnd8fHhyKHYuenx8ZGVbMTRdLE4pO2JyZWFrO2Nhc2UiZSI6Y29udGludWV9eC5wdXNoKGQuam9pbigiOiIpKX1yZXR1cm4geC5wdXNoKCJzaGVldDpjOiIrKGcuZS5jLWcucy5jKzEpKyI6cjoiKyhnLmUuci1nLnMucisxKSsiOnR2ZjoxIikseC5wdXNoKCJ2YWx1ZWZvcm1hdDoxOnRleHQtd2lraSIpLHguam9pbihgCmApfWZ1bmN0aW9uIGwoaCl7cmV0dXJuW3MsaSxjLGksbyhoKSxmXS5qb2luKGAKYCl9cmV0dXJue3RvX3dvcmtib29rOnQsdG9fc2hlZXQ6bixmcm9tX3NoZWV0Omx9fSgpLGJhPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShsLGgseCxkLHYpe3YucmF3P2hbeF1bZF09bDpsPT09IiJ8fChsPT09IlRSVUUiP2hbeF1bZF09ITA6bD09PSJGQUxTRSI/aFt4XVtkXT0hMTppc05hTihrcihsKSk/aXNOYU4oZGEobCkuZ2V0RGF0ZSgpKT9oW3hdW2RdPWw6aFt4XVtkXT1XZShsKTpoW3hdW2RdPWtyKGwpKX1mdW5jdGlvbiBhKGwsaCl7dmFyIHg9aHx8e30sZD1bXTtpZighbHx8bC5sZW5ndGg9PT0wKXJldHVybiBkO2Zvcih2YXIgdj1sLnNwbGl0KC9bXHJcbl0vKSx1PXYubGVuZ3RoLTE7dT49MCYmdlt1XS5sZW5ndGg9PT0wOyktLXU7Zm9yKHZhciBnPTEwLEY9MCx5PTA7eTw9dTsrK3kpRj12W3ldLmluZGV4T2YoIiAiKSxGPT0tMT9GPXZbeV0ubGVuZ3RoOkYrKyxnPU1hdGgubWF4KGcsRik7Zm9yKHk9MDt5PD11OysreSl7ZFt5XT1bXTt2YXIgXz0wO2ZvcihlKHZbeV0uc2xpY2UoMCxnKS50cmltKCksZCx5LF8seCksXz0xO188PSh2W3ldLmxlbmd0aC1nKS8xMCsxOysrXyllKHZbeV0uc2xpY2UoZysoXy0xKSoxMCxnK18qMTApLnRyaW0oKSxkLHksXyx4KX1yZXR1cm4geC5zaGVldFJvd3MmJihkPWQuc2xpY2UoMCx4LnNoZWV0Um93cykpLGR9dmFyIHI9ezQ0OiIsIiw5OiIJIiw1OToiOyIsMTI0OiJ8In0sbj17NDQ6Myw5OjIsNTk6MSwxMjQ6MH07ZnVuY3Rpb24gdChsKXtmb3IodmFyIGg9e30seD0hMSxkPTAsdj0wO2Q8bC5sZW5ndGg7KytkKSh2PWwuY2hhckNvZGVBdChkKSk9PTM0P3g9IXg6IXgmJnYgaW4gciYmKGhbdl09KGhbdl18fDApKzEpO3Y9W107Zm9yKGQgaW4gaClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaCxkKSYmdi5wdXNoKFtoW2RdLGRdKTtpZighdi5sZW5ndGgpe2g9bjtmb3IoZCBpbiBoKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChoLGQpJiZ2LnB1c2goW2hbZF0sZF0pfXJldHVybiB2LnNvcnQoZnVuY3Rpb24odSxnKXtyZXR1cm4gdVswXS1nWzBdfHxuW3VbMV1dLW5bZ1sxXV19KSxyW3YucG9wKClbMV1dfHw0NH1mdW5jdGlvbiBzKGwsaCl7dmFyIHg9aHx8e30sZD0iIix2PXguZGVuc2U/W106e30sdT17czp7YzowLHI6MH0sZTp7YzowLHI6MH19O2wuc2xpY2UoMCw0KT09InNlcD0iP2wuY2hhckNvZGVBdCg1KT09MTMmJmwuY2hhckNvZGVBdCg2KT09MTA/KGQ9bC5jaGFyQXQoNCksbD1sLnNsaWNlKDcpKTpsLmNoYXJDb2RlQXQoNSk9PTEzfHxsLmNoYXJDb2RlQXQoNSk9PTEwPyhkPWwuY2hhckF0KDQpLGw9bC5zbGljZSg2KSk6ZD10KGwuc2xpY2UoMCwxMDI0KSk6eCYmeC5GUz9kPXguRlM6ZD10KGwuc2xpY2UoMCwxMDI0KSk7dmFyIGc9MCxGPTAseT0wLF89MCxOPTAsYj1kLmNoYXJDb2RlQXQoMCksST0hMSxBPTAsVj1sLmNoYXJDb2RlQXQoMCk7bD1sLnJlcGxhY2UoL1xyXG4vbWcsYApgKTt2YXIgRD14LmRhdGVORiE9bnVsbD9iaSh4LmRhdGVORik6bnVsbDtmdW5jdGlvbiB6KCl7dmFyIEc9bC5zbGljZShfLE4pLFA9e307aWYoRy5jaGFyQXQoMCk9PSciJyYmRy5jaGFyQXQoRy5sZW5ndGgtMSk9PSciJyYmKEc9Ry5zbGljZSgxLC0xKS5yZXBsYWNlKC8iIi9nLCciJykpLEcubGVuZ3RoPT09MClQLnQ9InoiO2Vsc2UgaWYoeC5yYXcpUC50PSJzIixQLnY9RztlbHNlIGlmKEcudHJpbSgpLmxlbmd0aD09PTApUC50PSJzIixQLnY9RztlbHNlIGlmKEcuY2hhckNvZGVBdCgwKT09NjEpRy5jaGFyQ29kZUF0KDEpPT0zNCYmRy5jaGFyQ29kZUF0KEcubGVuZ3RoLTEpPT0zND8oUC50PSJzIixQLnY9Ry5zbGljZSgyLC0xKS5yZXBsYWNlKC8iIi9nLCciJykpOnYxKEcpPyhQLnQ9Im4iLFAuZj1HLnNsaWNlKDEpKTooUC50PSJzIixQLnY9Ryk7ZWxzZSBpZihHPT0iVFJVRSIpUC50PSJiIixQLnY9ITA7ZWxzZSBpZihHPT0iRkFMU0UiKVAudD0iYiIsUC52PSExO2Vsc2UgaWYoIWlzTmFOKHk9a3IoRykpKVAudD0ibiIseC5jZWxsVGV4dCE9PSExJiYoUC53PUcpLFAudj15O2Vsc2UgaWYoIWlzTmFOKGRhKEcpLmdldERhdGUoKSl8fEQmJkcubWF0Y2goRCkpe1Auej14LmRhdGVORnx8ZGVbMTRdO3ZhciBKPTA7RCYmRy5tYXRjaChEKSYmKEc9VWkoRyx4LmRhdGVORixHLm1hdGNoKEQpfHxbXSksSj0xKSx4LmNlbGxEYXRlcz8oUC50PSJkIixQLnY9V2UoRyxKKSk6KFAudD0ibiIsUC52PXRyKFdlKEcsSikpKSx4LmNlbGxUZXh0IT09ITEmJihQLnc9eHIoUC56LFAudiBpbnN0YW5jZW9mIERhdGU/dHIoUC52KTpQLnYpKSx4LmNlbGxORnx8ZGVsZXRlIFAuen1lbHNlIFAudD0icyIsUC52PUc7aWYoUC50PT0ieiJ8fCh4LmRlbnNlPyh2W2ddfHwodltnXT1bXSksdltnXVtGXT1QKTp2W3VlKHtjOkYscjpnfSldPVApLF89TisxLFY9bC5jaGFyQ29kZUF0KF8pLHUuZS5jPEYmJih1LmUuYz1GKSx1LmUucjxnJiYodS5lLnI9ZyksQT09YikrK0Y7ZWxzZSBpZihGPTAsKytnLHguc2hlZXRSb3dzJiZ4LnNoZWV0Um93czw9ZylyZXR1cm4hMH1lOmZvcig7TjxsLmxlbmd0aDsrK04pc3dpdGNoKEE9bC5jaGFyQ29kZUF0KE4pKXtjYXNlIDM0OlY9PT0zNCYmKEk9IUkpO2JyZWFrO2Nhc2UgYjpjYXNlIDEwOmNhc2UgMTM6aWYoIUkmJnooKSlicmVhayBlO2JyZWFrfXJldHVybiBOLV8+MCYmeigpLHZbIiFyZWYiXT1fZSh1KSx2fWZ1bmN0aW9uIGkobCxoKXtyZXR1cm4hKGgmJmguUFJOKXx8aC5GU3x8bC5zbGljZSgwLDQpPT0ic2VwPSJ8fGwuaW5kZXhPZigiCSIpPj0wfHxsLmluZGV4T2YoIiwiKT49MHx8bC5pbmRleE9mKCI7Iik+PTA/cyhsLGgpOmdhKGEobCxoKSxoKX1mdW5jdGlvbiBjKGwsaCl7dmFyIHg9IiIsZD1oLnR5cGU9PSJzdHJpbmciP1swLDAsMCwwXTpkMChsLGgpO3N3aXRjaChoLnR5cGUpe2Nhc2UiYmFzZTY0Ijp4PWZyKGwpO2JyZWFrO2Nhc2UiYmluYXJ5Ijp4PWw7YnJlYWs7Y2FzZSJidWZmZXIiOmguY29kZXBhZ2U9PTY1MDAxP3g9bC50b1N0cmluZygidXRmOCIpOmguY29kZXBhZ2UmJnR5cGVvZiB3YTwidSJ8fCh4PWdlJiZCdWZmZXIuaXNCdWZmZXIobCk/bC50b1N0cmluZygiYmluYXJ5Iik6WnIobCkpO2JyZWFrO2Nhc2UiYXJyYXkiOng9cmEobCk7YnJlYWs7Y2FzZSJzdHJpbmciOng9bDticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHR5cGUgIitoLnR5cGUpfXJldHVybiBkWzBdPT0yMzkmJmRbMV09PTE4NyYmZFsyXT09MTkxP3g9QWUoeC5zbGljZSgzKSk6aC50eXBlIT0ic3RyaW5nIiYmaC50eXBlIT0iYnVmZmVyIiYmaC5jb2RlcGFnZT09NjUwMDE/eD1BZSh4KTpoLnR5cGU9PSJiaW5hcnkiJiZ0eXBlb2Ygd2E8InUiLHguc2xpY2UoMCwxOSk9PSJzb2NpYWxjYWxjOnZlcnNpb246Ij9Eby50b19zaGVldChoLnR5cGU9PSJzdHJpbmciP3g6QWUoeCksaCk6aSh4LGgpfWZ1bmN0aW9uIGYobCxoKXtyZXR1cm4gWHIoYyhsLGgpLGgpfWZ1bmN0aW9uIG8obCl7Zm9yKHZhciBoPVtdLHg9T2UobFsiIXJlZiJdKSxkLHY9QXJyYXkuaXNBcnJheShsKSx1PXgucy5yO3U8PXguZS5yOysrdSl7Zm9yKHZhciBnPVtdLEY9eC5zLmM7Rjw9eC5lLmM7KytGKXt2YXIgeT11ZSh7cjp1LGM6Rn0pO2lmKGQ9dj8obFt1XXx8W10pW0ZdOmxbeV0sIWR8fGQudj09bnVsbCl7Zy5wdXNoKCIgICAgICAgICAgIik7Y29udGludWV9Zm9yKHZhciBfPShkLnd8fChMcihkKSxkLncpfHwiIikuc2xpY2UoMCwxMCk7Xy5sZW5ndGg8MTA7KV8rPSIgIjtnLnB1c2goXysoRj09PTA/IiAiOiIiKSl9aC5wdXNoKGcuam9pbigiIikpfXJldHVybiBoLmpvaW4oYApgKX1yZXR1cm57dG9fd29ya2Jvb2s6Zix0b19zaGVldDpjLGZyb21fc2hlZXQ6b319KCk7ZnVuY3Rpb24gT28oZSxhKXt2YXIgcj1hfHx7fSxuPSEhci5XVEY7ci5XVEY9ITA7dHJ5e3ZhciB0PUNvLnRvX3dvcmtib29rKGUscik7cmV0dXJuIHIuV1RGPW4sdH1jYXRjaChzKXtpZihyLldURj1uLCFzLm1lc3NhZ2UubWF0Y2goL1NZTEsgYmFkIHJlY29yZCBJRC8pJiZuKXRocm93IHM7cmV0dXJuIGJhLnRvX3dvcmtib29rKGUsYSl9fXZhciBVYT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoUyxVLFIpe2lmKFMpeyRlKFMsUy5sfHwwKTtmb3IodmFyIE89Ui5FbnVtfHxsZTtTLmw8Uy5sZW5ndGg7KXt2YXIgSz1TLnJlYWRfc2hpZnQoMiksZWU9T1tLXXx8T1s2NTUzNV0sbmU9Uy5yZWFkX3NoaWZ0KDIpLHE9Uy5sK25lLGo9ZWUuZiYmZWUuZihTLG5lLFIpO2lmKFMubD1xLFUoaixlZSxLKSlyZXR1cm59fX1mdW5jdGlvbiBhKFMsVSl7c3dpdGNoKFUudHlwZSl7Y2FzZSJiYXNlNjQiOnJldHVybiByKEVyKGZyKFMpKSxVKTtjYXNlImJpbmFyeSI6cmV0dXJuIHIoRXIoUyksVSk7Y2FzZSJidWZmZXIiOmNhc2UiYXJyYXkiOnJldHVybiByKFMsVSl9dGhyb3ciVW5zdXBwb3J0ZWQgdHlwZSAiK1UudHlwZX1mdW5jdGlvbiByKFMsVSl7aWYoIVMpcmV0dXJuIFM7dmFyIFI9VXx8e30sTz1SLmRlbnNlP1tdOnt9LEs9IlNoZWV0MSIsZWU9IiIsbmU9MCxxPXt9LGo9W10sVGU9W10sQz17czp7cjowLGM6MH0sZTp7cjowLGM6MH19LEllPVIuc2hlZXRSb3dzfHwwO2lmKFNbMl09PTAmJihTWzNdPT04fHxTWzNdPT05KSYmUy5sZW5ndGg+PTE2JiZTWzE0XT09NSYmU1sxNV09PT0xMDgpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBXb3JrcyAzIGZvciBNYWMgZmlsZSIpO2lmKFNbMl09PTIpUi5FbnVtPWxlLGUoUyxmdW5jdGlvbihhZSxOZSxncil7c3dpdGNoKGdyKXtjYXNlIDA6Ui52ZXJzPWFlLGFlPj00MDk2JiYoUi5xcHJvPSEwKTticmVhaztjYXNlIDY6Qz1hZTticmVhaztjYXNlIDIwNDphZSYmKGVlPWFlKTticmVhaztjYXNlIDIyMjplZT1hZTticmVhaztjYXNlIDE1OmNhc2UgNTE6Ui5xcHJvfHwoYWVbMV0udj1hZVsxXS52LnNsaWNlKDEpKTtjYXNlIDEzOmNhc2UgMTQ6Y2FzZSAxNjpncj09MTQmJihhZVsyXSYxMTIpPT0xMTImJihhZVsyXSYxNSk+MSYmKGFlWzJdJjE1KTwxNSYmKGFlWzFdLno9Ui5kYXRlTkZ8fGRlWzE0XSxSLmNlbGxEYXRlcyYmKGFlWzFdLnQ9ImQiLGFlWzFdLnY9aXQoYWVbMV0udikpKSxSLnFwcm8mJmFlWzNdPm5lJiYoT1siIXJlZiJdPV9lKEMpLHFbS109TyxqLnB1c2goSyksTz1SLmRlbnNlP1tdOnt9LEM9e3M6e3I6MCxjOjB9LGU6e3I6MCxjOjB9fSxuZT1hZVszXSxLPWVlfHwiU2hlZXQiKyhuZSsxKSxlZT0iIik7dmFyIE9yPVIuZGVuc2U/KE9bYWVbMF0ucl18fFtdKVthZVswXS5jXTpPW3VlKGFlWzBdKV07aWYoT3Ipe09yLnQ9YWVbMV0udCxPci52PWFlWzFdLnYsYWVbMV0ueiE9bnVsbCYmKE9yLno9YWVbMV0ueiksYWVbMV0uZiE9bnVsbCYmKE9yLmY9YWVbMV0uZik7YnJlYWt9Ui5kZW5zZT8oT1thZVswXS5yXXx8KE9bYWVbMF0ucl09W10pLE9bYWVbMF0ucl1bYWVbMF0uY109YWVbMV0pOk9bdWUoYWVbMF0pXT1hZVsxXTticmVha319LFIpO2Vsc2UgaWYoU1syXT09MjZ8fFNbMl09PTE0KVIuRW51bT1oZSxTWzJdPT0xNCYmKFIucXBybz0hMCxTLmw9MCksZShTLGZ1bmN0aW9uKGFlLE5lLGdyKXtzd2l0Y2goZ3Ipe2Nhc2UgMjA0Oks9YWU7YnJlYWs7Y2FzZSAyMjphZVsxXS52PWFlWzFdLnYuc2xpY2UoMSk7Y2FzZSAyMzpjYXNlIDI0OmNhc2UgMjU6Y2FzZSAzNzpjYXNlIDM5OmNhc2UgNDA6aWYoYWVbM10+bmUmJihPWyIhcmVmIl09X2UoQykscVtLXT1PLGoucHVzaChLKSxPPVIuZGVuc2U/W106e30sQz17czp7cjowLGM6MH0sZTp7cjowLGM6MH19LG5lPWFlWzNdLEs9IlNoZWV0IisobmUrMSkpLEllPjAmJmFlWzBdLnI+PUllKWJyZWFrO1IuZGVuc2U/KE9bYWVbMF0ucl18fChPW2FlWzBdLnJdPVtdKSxPW2FlWzBdLnJdW2FlWzBdLmNdPWFlWzFdKTpPW3VlKGFlWzBdKV09YWVbMV0sQy5lLmM8YWVbMF0uYyYmKEMuZS5jPWFlWzBdLmMpLEMuZS5yPGFlWzBdLnImJihDLmUucj1hZVswXS5yKTticmVhaztjYXNlIDI3OmFlWzE0ZTNdJiYoVGVbYWVbMTRlM11bMF1dPWFlWzE0ZTNdWzFdKTticmVhaztjYXNlIDE1Mzc6VGVbYWVbMF1dPWFlWzFdLGFlWzBdPT1uZSYmKEs9YWVbMV0pO2JyZWFrfX0sUik7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBMT1RVUyBCT0YgIitTWzJdKTtpZihPWyIhcmVmIl09X2UoQykscVtlZXx8S109TyxqLnB1c2goZWV8fEspLCFUZS5sZW5ndGgpcmV0dXJue1NoZWV0TmFtZXM6aixTaGVldHM6cX07Zm9yKHZhciBrZT17fSx3ZT1bXSxwZT0wO3BlPFRlLmxlbmd0aDsrK3BlKXFbaltwZV1dPyh3ZS5wdXNoKFRlW3BlXXx8altwZV0pLGtlW1RlW3BlXV09cVtUZVtwZV1dfHxxW2pbcGVdXSk6KHdlLnB1c2goVGVbcGVdKSxrZVtUZVtwZV1dPXsiIXJlZiI6IkExIn0pO3JldHVybntTaGVldE5hbWVzOndlLFNoZWV0czprZX19ZnVuY3Rpb24gbihTLFUpe3ZhciBSPVV8fHt9O2lmKCtSLmNvZGVwYWdlPj0wJiZfcigrUi5jb2RlcGFnZSksUi50eXBlPT0ic3RyaW5nIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCB3cml0ZSBXSzEgdG8gSlMgc3RyaW5nIik7dmFyIE89YnQoKSxLPU9lKFNbIiFyZWYiXSksZWU9QXJyYXkuaXNBcnJheShTKSxuZT1bXTtBcihPLDAscygxMDMwKSksQXIoTyw2LGYoSykpO2Zvcih2YXIgcT1NYXRoLm1pbihLLmUuciw4MTkxKSxqPUsucy5yO2o8PXE7KytqKWZvcih2YXIgVGU9emUoaiksQz1LLnMuYztDPD1LLmUuYzsrK0Mpe2o9PT1LLnMuciYmKG5lW0NdPVVlKEMpKTt2YXIgSWU9bmVbQ10rVGUsa2U9ZWU/KFNbal18fFtdKVtDXTpTW0llXTtpZighKCFrZXx8a2UudD09InoiKSlpZihrZS50PT0ibiIpKGtlLnZ8MCk9PWtlLnYmJmtlLnY+PS0zMjc2OCYma2Uudjw9MzI3Njc/QXIoTywxMyxkKGosQyxrZS52KSk6QXIoTywxNCx1KGosQyxrZS52KSk7ZWxzZXt2YXIgd2U9THIoa2UpO0FyKE8sMTUsaChqLEMsd2Uuc2xpY2UoMCwyMzkpKSl9fXJldHVybiBBcihPLDEpLE8uZW5kKCl9ZnVuY3Rpb24gdChTLFUpe3ZhciBSPVV8fHt9O2lmKCtSLmNvZGVwYWdlPj0wJiZfcigrUi5jb2RlcGFnZSksUi50eXBlPT0ic3RyaW5nIil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCB3cml0ZSBXSzMgdG8gSlMgc3RyaW5nIik7dmFyIE89YnQoKTtBcihPLDAsaShTKSk7Zm9yKHZhciBLPTAsZWU9MDtLPFMuU2hlZXROYW1lcy5sZW5ndGg7KytLKShTLlNoZWV0c1tTLlNoZWV0TmFtZXNbS11dfHx7fSlbIiFyZWYiXSYmQXIoTywyNyxXKFMuU2hlZXROYW1lc1tLXSxlZSsrKSk7dmFyIG5lPTA7Zm9yKEs9MDtLPFMuU2hlZXROYW1lcy5sZW5ndGg7KytLKXt2YXIgcT1TLlNoZWV0c1tTLlNoZWV0TmFtZXNbS11dO2lmKCEoIXF8fCFxWyIhcmVmIl0pKXtmb3IodmFyIGo9T2UocVsiIXJlZiJdKSxUZT1BcnJheS5pc0FycmF5KHEpLEM9W10sSWU9TWF0aC5taW4oai5lLnIsODE5MSksa2U9ai5zLnI7a2U8PUllOysra2UpZm9yKHZhciB3ZT16ZShrZSkscGU9ai5zLmM7cGU8PWouZS5jOysrcGUpe2tlPT09ai5zLnImJihDW3BlXT1VZShwZSkpO3ZhciBhZT1DW3BlXSt3ZSxOZT1UZT8ocVtrZV18fFtdKVtwZV06cVthZV07aWYoISghTmV8fE5lLnQ9PSJ6IikpaWYoTmUudD09Im4iKUFyKE8sMjMseihrZSxwZSxuZSxOZS52KSk7ZWxzZXt2YXIgZ3I9THIoTmUpO0FyKE8sMjIsQShrZSxwZSxuZSxnci5zbGljZSgwLDIzOSkpKX19KytuZX19cmV0dXJuIEFyKE8sMSksTy5lbmQoKX1mdW5jdGlvbiBzKFMpe3ZhciBVPWJlKDIpO3JldHVybiBVLndyaXRlX3NoaWZ0KDIsUyksVX1mdW5jdGlvbiBpKFMpe3ZhciBVPWJlKDI2KTtVLndyaXRlX3NoaWZ0KDIsNDA5NiksVS53cml0ZV9zaGlmdCgyLDQpLFUud3JpdGVfc2hpZnQoNCwwKTtmb3IodmFyIFI9MCxPPTAsSz0wLGVlPTA7ZWU8Uy5TaGVldE5hbWVzLmxlbmd0aDsrK2VlKXt2YXIgbmU9Uy5TaGVldE5hbWVzW2VlXSxxPVMuU2hlZXRzW25lXTtpZighKCFxfHwhcVsiIXJlZiJdKSl7KytLO3ZhciBqPXBhKHFbIiFyZWYiXSk7UjxqLmUuciYmKFI9ai5lLnIpLE88ai5lLmMmJihPPWouZS5jKX19cmV0dXJuIFI+ODE5MSYmKFI9ODE5MSksVS53cml0ZV9zaGlmdCgyLFIpLFUud3JpdGVfc2hpZnQoMSxLKSxVLndyaXRlX3NoaWZ0KDEsTyksVS53cml0ZV9zaGlmdCgyLDApLFUud3JpdGVfc2hpZnQoMiwwKSxVLndyaXRlX3NoaWZ0KDEsMSksVS53cml0ZV9zaGlmdCgxLDIpLFUud3JpdGVfc2hpZnQoNCwwKSxVLndyaXRlX3NoaWZ0KDQsMCksVX1mdW5jdGlvbiBjKFMsVSxSKXt2YXIgTz17czp7YzowLHI6MH0sZTp7YzowLHI6MH19O3JldHVybiBVPT04JiZSLnFwcm8/KE8ucy5jPVMucmVhZF9zaGlmdCgxKSxTLmwrKyxPLnMucj1TLnJlYWRfc2hpZnQoMiksTy5lLmM9Uy5yZWFkX3NoaWZ0KDEpLFMubCsrLE8uZS5yPVMucmVhZF9zaGlmdCgyKSxPKTooTy5zLmM9Uy5yZWFkX3NoaWZ0KDIpLE8ucy5yPVMucmVhZF9zaGlmdCgyKSxVPT0xMiYmUi5xcHJvJiYoUy5sKz0yKSxPLmUuYz1TLnJlYWRfc2hpZnQoMiksTy5lLnI9Uy5yZWFkX3NoaWZ0KDIpLFU9PTEyJiZSLnFwcm8mJihTLmwrPTIpLE8ucy5jPT02NTUzNSYmKE8ucy5jPU8uZS5jPU8ucy5yPU8uZS5yPTApLE8pfWZ1bmN0aW9uIGYoUyl7dmFyIFU9YmUoOCk7cmV0dXJuIFUud3JpdGVfc2hpZnQoMixTLnMuYyksVS53cml0ZV9zaGlmdCgyLFMucy5yKSxVLndyaXRlX3NoaWZ0KDIsUy5lLmMpLFUud3JpdGVfc2hpZnQoMixTLmUuciksVX1mdW5jdGlvbiBvKFMsVSxSKXt2YXIgTz1be2M6MCxyOjB9LHt0OiJuIix2OjB9LDAsMF07cmV0dXJuIFIucXBybyYmUi52ZXJzIT0yMDc2OD8oT1swXS5jPVMucmVhZF9zaGlmdCgxKSxPWzNdPVMucmVhZF9zaGlmdCgxKSxPWzBdLnI9Uy5yZWFkX3NoaWZ0KDIpLFMubCs9Mik6KE9bMl09Uy5yZWFkX3NoaWZ0KDEpLE9bMF0uYz1TLnJlYWRfc2hpZnQoMiksT1swXS5yPVMucmVhZF9zaGlmdCgyKSksT31mdW5jdGlvbiBsKFMsVSxSKXt2YXIgTz1TLmwrVSxLPW8oUyxVLFIpO2lmKEtbMV0udD0icyIsUi52ZXJzPT0yMDc2OCl7Uy5sKys7dmFyIGVlPVMucmVhZF9zaGlmdCgxKTtyZXR1cm4gS1sxXS52PVMucmVhZF9zaGlmdChlZSwidXRmOCIpLEt9cmV0dXJuIFIucXBybyYmUy5sKyssS1sxXS52PVMucmVhZF9zaGlmdChPLVMubCwiY3N0ciIpLEt9ZnVuY3Rpb24gaChTLFUsUil7dmFyIE89YmUoNytSLmxlbmd0aCk7Ty53cml0ZV9zaGlmdCgxLDI1NSksTy53cml0ZV9zaGlmdCgyLFUpLE8ud3JpdGVfc2hpZnQoMixTKSxPLndyaXRlX3NoaWZ0KDEsMzkpO2Zvcih2YXIgSz0wO0s8Ty5sZW5ndGg7KytLKXt2YXIgZWU9Ui5jaGFyQ29kZUF0KEspO08ud3JpdGVfc2hpZnQoMSxlZT49MTI4Pzk1OmVlKX1yZXR1cm4gTy53cml0ZV9zaGlmdCgxLDApLE99ZnVuY3Rpb24geChTLFUsUil7dmFyIE89byhTLFUsUik7cmV0dXJuIE9bMV0udj1TLnJlYWRfc2hpZnQoMiwiaSIpLE99ZnVuY3Rpb24gZChTLFUsUil7dmFyIE89YmUoNyk7cmV0dXJuIE8ud3JpdGVfc2hpZnQoMSwyNTUpLE8ud3JpdGVfc2hpZnQoMixVKSxPLndyaXRlX3NoaWZ0KDIsUyksTy53cml0ZV9zaGlmdCgyLFIsImkiKSxPfWZ1bmN0aW9uIHYoUyxVLFIpe3ZhciBPPW8oUyxVLFIpO3JldHVybiBPWzFdLnY9Uy5yZWFkX3NoaWZ0KDgsImYiKSxPfWZ1bmN0aW9uIHUoUyxVLFIpe3ZhciBPPWJlKDEzKTtyZXR1cm4gTy53cml0ZV9zaGlmdCgxLDI1NSksTy53cml0ZV9zaGlmdCgyLFUpLE8ud3JpdGVfc2hpZnQoMixTKSxPLndyaXRlX3NoaWZ0KDgsUiwiZiIpLE99ZnVuY3Rpb24gZyhTLFUsUil7dmFyIE89Uy5sK1UsSz1vKFMsVSxSKTtpZihLWzFdLnY9Uy5yZWFkX3NoaWZ0KDgsImYiKSxSLnFwcm8pUy5sPU87ZWxzZXt2YXIgZWU9Uy5yZWFkX3NoaWZ0KDIpO04oUy5zbGljZShTLmwsUy5sK2VlKSxLKSxTLmwrPWVlfXJldHVybiBLfWZ1bmN0aW9uIEYoUyxVLFIpe3ZhciBPPVUmMzI3Njg7cmV0dXJuIFUmPS0zMjc2OSxVPShPP1M6MCkrKFU+PTgxOTI/VS0xNjM4NDpVKSwoTz8iIjoiJCIpKyhSP1VlKFUpOnplKFUpKX12YXIgeT17NTE6WyJGQUxTRSIsMF0sNTI6WyJUUlVFIiwwXSw3MDpbIkxFTiIsMV0sODA6WyJTVU0iLDY5XSw4MTpbIkFWRVJBR0VBIiw2OV0sODI6WyJDT1VOVEEiLDY5XSw4MzpbIk1JTkEiLDY5XSw4NDpbIk1BWEEiLDY5XSwxMTE6WyJUIiwxXX0sXz1bIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIisiLCItIiwiKiIsIi8iLCJeIiwiPSIsIjw+IiwiPD0iLCI+PSIsIjwiLCI+IiwiIiwiIiwiIiwiIiwiJiIsIiIsIiIsIiIsIiIsIiIsIiIsIiJdO2Z1bmN0aW9uIE4oUyxVKXskZShTLDApO2Zvcih2YXIgUj1bXSxPPTAsSz0iIixlZT0iIixuZT0iIixxPSIiO1MubDxTLmxlbmd0aDspe3ZhciBqPVNbUy5sKytdO3N3aXRjaChqKXtjYXNlIDA6Ui5wdXNoKFMucmVhZF9zaGlmdCg4LCJmIikpO2JyZWFrO2Nhc2UgMTplZT1GKFVbMF0uYyxTLnJlYWRfc2hpZnQoMiksITApLEs9RihVWzBdLnIsUy5yZWFkX3NoaWZ0KDIpLCExKSxSLnB1c2goZWUrSyk7YnJlYWs7Y2FzZSAyOnt2YXIgVGU9RihVWzBdLmMsUy5yZWFkX3NoaWZ0KDIpLCEwKSxDPUYoVVswXS5yLFMucmVhZF9zaGlmdCgyKSwhMSk7ZWU9RihVWzBdLmMsUy5yZWFkX3NoaWZ0KDIpLCEwKSxLPUYoVVswXS5yLFMucmVhZF9zaGlmdCgyKSwhMSksUi5wdXNoKFRlK0MrIjoiK2VlK0spfWJyZWFrO2Nhc2UgMzppZihTLmw8Uy5sZW5ndGgpe2NvbnNvbGUuZXJyb3IoIldLMSBwcmVtYXR1cmUgZm9ybXVsYSBlbmQiKTtyZXR1cm59YnJlYWs7Y2FzZSA0OlIucHVzaCgiKCIrUi5wb3AoKSsiKSIpO2JyZWFrO2Nhc2UgNTpSLnB1c2goUy5yZWFkX3NoaWZ0KDIpKTticmVhaztjYXNlIDY6e2Zvcih2YXIgSWU9IiI7aj1TW1MubCsrXTspSWUrPVN0cmluZy5mcm9tQ2hhckNvZGUoaik7Ui5wdXNoKCciJytJZS5yZXBsYWNlKC8iL2csJyIiJykrJyInKX1icmVhaztjYXNlIDg6Ui5wdXNoKCItIitSLnBvcCgpKTticmVhaztjYXNlIDIzOlIucHVzaCgiKyIrUi5wb3AoKSk7YnJlYWs7Y2FzZSAyMjpSLnB1c2goIk5PVCgiK1IucG9wKCkrIikiKTticmVhaztjYXNlIDIwOmNhc2UgMjE6cT1SLnBvcCgpLG5lPVIucG9wKCksUi5wdXNoKFsiQU5EIiwiT1IiXVtqLTIwXSsiKCIrbmUrIiwiK3ErIikiKTticmVhaztkZWZhdWx0OmlmKGo8MzImJl9bal0pcT1SLnBvcCgpLG5lPVIucG9wKCksUi5wdXNoKG5lK19bal0rcSk7ZWxzZSBpZih5W2pdKXtpZihPPXlbal1bMV0sTz09NjkmJihPPVNbUy5sKytdKSxPPlIubGVuZ3RoKXtjb25zb2xlLmVycm9yKCJXSzEgYmFkIGZvcm11bGEgcGFyc2UgMHgiK2oudG9TdHJpbmcoMTYpKyI6fCIrUi5qb2luKCJ8IikrInwiKTtyZXR1cm59dmFyIGtlPVIuc2xpY2UoLU8pO1IubGVuZ3RoLT1PLFIucHVzaCh5W2pdWzBdKyIoIitrZS5qb2luKCIsIikrIikiKX1lbHNlIHJldHVybiBqPD03P2NvbnNvbGUuZXJyb3IoIldLMSBpbnZhbGlkIG9wY29kZSAiK2oudG9TdHJpbmcoMTYpKTpqPD0yND9jb25zb2xlLmVycm9yKCJXSzEgdW5zdXBwb3J0ZWQgb3AgIitqLnRvU3RyaW5nKDE2KSk6ajw9MzA/Y29uc29sZS5lcnJvcigiV0sxIGludmFsaWQgb3Bjb2RlICIrai50b1N0cmluZygxNikpOmo8PTExNT9jb25zb2xlLmVycm9yKCJXSzEgdW5zdXBwb3J0ZWQgZnVuY3Rpb24gb3Bjb2RlICIrai50b1N0cmluZygxNikpOmNvbnNvbGUuZXJyb3IoIldLMSB1bnJlY29nbml6ZWQgb3Bjb2RlICIrai50b1N0cmluZygxNikpfX1SLmxlbmd0aD09MT9VWzFdLmY9IiIrUlswXTpjb25zb2xlLmVycm9yKCJXSzEgYmFkIGZvcm11bGEgcGFyc2UgfCIrUi5qb2luKCJ8IikrInwiKX1mdW5jdGlvbiBiKFMpe3ZhciBVPVt7YzowLHI6MH0se3Q6Im4iLHY6MH0sMF07cmV0dXJuIFVbMF0ucj1TLnJlYWRfc2hpZnQoMiksVVszXT1TW1MubCsrXSxVWzBdLmM9U1tTLmwrK10sVX1mdW5jdGlvbiBJKFMsVSl7dmFyIFI9YihTKTtyZXR1cm4gUlsxXS50PSJzIixSWzFdLnY9Uy5yZWFkX3NoaWZ0KFUtNCwiY3N0ciIpLFJ9ZnVuY3Rpb24gQShTLFUsUixPKXt2YXIgSz1iZSg2K08ubGVuZ3RoKTtLLndyaXRlX3NoaWZ0KDIsUyksSy53cml0ZV9zaGlmdCgxLFIpLEsud3JpdGVfc2hpZnQoMSxVKSxLLndyaXRlX3NoaWZ0KDEsMzkpO2Zvcih2YXIgZWU9MDtlZTxPLmxlbmd0aDsrK2VlKXt2YXIgbmU9Ty5jaGFyQ29kZUF0KGVlKTtLLndyaXRlX3NoaWZ0KDEsbmU+PTEyOD85NTpuZSl9cmV0dXJuIEsud3JpdGVfc2hpZnQoMSwwKSxLfWZ1bmN0aW9uIFYoUyxVKXt2YXIgUj1iKFMpO1JbMV0udj1TLnJlYWRfc2hpZnQoMik7dmFyIE89UlsxXS52Pj4xO2lmKFJbMV0udiYxKXN3aXRjaChPJjcpe2Nhc2UgMDpPPShPPj4zKSo1ZTM7YnJlYWs7Y2FzZSAxOk89KE8+PjMpKjUwMDticmVhaztjYXNlIDI6Tz0oTz4+MykvMjA7YnJlYWs7Y2FzZSAzOk89KE8+PjMpLzIwMDticmVhaztjYXNlIDQ6Tz0oTz4+MykvMmUzO2JyZWFrO2Nhc2UgNTpPPShPPj4zKS8yZTQ7YnJlYWs7Y2FzZSA2Ok89KE8+PjMpLzE2O2JyZWFrO2Nhc2UgNzpPPShPPj4zKS82NDticmVha31yZXR1cm4gUlsxXS52PU8sUn1mdW5jdGlvbiBEKFMsVSl7dmFyIFI9YihTKSxPPVMucmVhZF9zaGlmdCg0KSxLPVMucmVhZF9zaGlmdCg0KSxlZT1TLnJlYWRfc2hpZnQoMik7aWYoZWU9PTY1NTM1KXJldHVybiBPPT09MCYmSz09PTMyMjEyMjU0NzI/KFJbMV0udD0iZSIsUlsxXS52PTE1KTpPPT09MCYmSz09PTM0ODk2NjA5Mjg/KFJbMV0udD0iZSIsUlsxXS52PTQyKTpSWzFdLnY9MCxSO3ZhciBuZT1lZSYzMjc2ODtyZXR1cm4gZWU9KGVlJjMyNzY3KS0xNjQ0NixSWzFdLnY9KDEtbmUqMikqKEsqTWF0aC5wb3coMixlZSszMikrTypNYXRoLnBvdygyLGVlKSksUn1mdW5jdGlvbiB6KFMsVSxSLE8pe3ZhciBLPWJlKDE0KTtpZihLLndyaXRlX3NoaWZ0KDIsUyksSy53cml0ZV9zaGlmdCgxLFIpLEsud3JpdGVfc2hpZnQoMSxVKSxPPT0wKXJldHVybiBLLndyaXRlX3NoaWZ0KDQsMCksSy53cml0ZV9zaGlmdCg0LDApLEsud3JpdGVfc2hpZnQoMiw2NTUzNSksSzt2YXIgZWU9MCxuZT0wLHE9MCxqPTA7cmV0dXJuIE88MCYmKGVlPTEsTz0tTyksbmU9TWF0aC5sb2cyKE8pfDAsTy89TWF0aC5wb3coMixuZS0zMSksaj1PPj4+MCxqJjIxNDc0ODM2NDh8fChPLz0yLCsrbmUsaj1PPj4+MCksTy09aixqfD0yMTQ3NDgzNjQ4LGo+Pj49MCxPKj1NYXRoLnBvdygyLDMyKSxxPU8+Pj4wLEsud3JpdGVfc2hpZnQoNCxxKSxLLndyaXRlX3NoaWZ0KDQsaiksbmUrPTE2MzgzKyhlZT8zMjc2ODowKSxLLndyaXRlX3NoaWZ0KDIsbmUpLEt9ZnVuY3Rpb24gRyhTLFUpe3ZhciBSPUQoUyk7cmV0dXJuIFMubCs9VS0xNCxSfWZ1bmN0aW9uIFAoUyxVKXt2YXIgUj1iKFMpLE89Uy5yZWFkX3NoaWZ0KDQpO3JldHVybiBSWzFdLnY9Tz4+NixSfWZ1bmN0aW9uIEooUyxVKXt2YXIgUj1iKFMpLE89Uy5yZWFkX3NoaWZ0KDgsImYiKTtyZXR1cm4gUlsxXS52PU8sUn1mdW5jdGlvbiBmZShTLFUpe3ZhciBSPUooUyk7cmV0dXJuIFMubCs9VS0xMCxSfWZ1bmN0aW9uIHJlKFMsVSl7cmV0dXJuIFNbUy5sK1UtMV09PTA/Uy5yZWFkX3NoaWZ0KFUsImNzdHIiKToiIn1mdW5jdGlvbiBjZShTLFUpe3ZhciBSPVNbUy5sKytdO1I+VS0xJiYoUj1VLTEpO2Zvcih2YXIgTz0iIjtPLmxlbmd0aDxSOylPKz1TdHJpbmcuZnJvbUNoYXJDb2RlKFNbUy5sKytdKTtyZXR1cm4gT31mdW5jdGlvbiBpZShTLFUsUil7aWYoISghUi5xcHJvfHxVPDIxKSl7dmFyIE89Uy5yZWFkX3NoaWZ0KDEpO1MubCs9MTcsUy5sKz0xLFMubCs9Mjt2YXIgSz1TLnJlYWRfc2hpZnQoVS0yMSwiY3N0ciIpO3JldHVybltPLEtdfX1mdW5jdGlvbiBGZShTLFUpe2Zvcih2YXIgUj17fSxPPVMubCtVO1MubDxPOyl7dmFyIEs9Uy5yZWFkX3NoaWZ0KDIpO2lmKEs9PTE0ZTMpe2ZvcihSW0tdPVswLCIiXSxSW0tdWzBdPVMucmVhZF9zaGlmdCgyKTtTW1MubF07KVJbS11bMV0rPVN0cmluZy5mcm9tQ2hhckNvZGUoU1tTLmxdKSxTLmwrKztTLmwrK319cmV0dXJuIFJ9ZnVuY3Rpb24gVyhTLFUpe3ZhciBSPWJlKDUrUy5sZW5ndGgpO1Iud3JpdGVfc2hpZnQoMiwxNGUzKSxSLndyaXRlX3NoaWZ0KDIsVSk7Zm9yKHZhciBPPTA7TzxTLmxlbmd0aDsrK08pe3ZhciBLPVMuY2hhckNvZGVBdChPKTtSW1IubCsrXT1LPjEyNz85NTpLfXJldHVybiBSW1IubCsrXT0wLFJ9dmFyIGxlPXswOntuOiJCT0YiLGY6TWV9LDE6e246IkVPRiJ9LDI6e246IkNBTENNT0RFIn0sMzp7bjoiQ0FMQ09SREVSIn0sNDp7bjoiU1BMSVQifSw1OntuOiJTWU5DIn0sNjp7bjoiUkFOR0UiLGY6Y30sNzp7bjoiV0lORE9XMSJ9LDg6e246IkNPTFcxIn0sOTp7bjoiV0lOVFdPIn0sMTA6e246IkNPTFcyIn0sMTE6e246Ik5BTUUifSwxMjp7bjoiQkxBTksifSwxMzp7bjoiSU5URUdFUiIsZjp4fSwxNDp7bjoiTlVNQkVSIixmOnZ9LDE1OntuOiJMQUJFTCIsZjpsfSwxNjp7bjoiRk9STVVMQSIsZjpnfSwyNDp7bjoiVEFCTEUifSwyNTp7bjoiT1JBTkdFIn0sMjY6e246IlBSQU5HRSJ9LDI3OntuOiJTUkFOR0UifSwyODp7bjoiRlJBTkdFIn0sMjk6e246IktSQU5HRTEifSwzMjp7bjoiSFJBTkdFIn0sMzU6e246IktSQU5HRTIifSwzNjp7bjoiUFJPVEVDIn0sMzc6e246IkZPT1RFUiJ9LDM4OntuOiJIRUFERVIifSwzOTp7bjoiU0VUVVAifSw0MDp7bjoiTUFSR0lOUyJ9LDQxOntuOiJMQUJFTEZNVCJ9LDQyOntuOiJUSVRMRVMifSw0Mzp7bjoiU0hFRVRKUyJ9LDQ1OntuOiJHUkFQSCJ9LDQ2OntuOiJOR1JBUEgifSw0Nzp7bjoiQ0FMQ0NPVU5UIn0sNDg6e246IlVORk9STUFUVEVEIn0sNDk6e246IkNVUlNPUlcxMiJ9LDUwOntuOiJXSU5ET1cifSw1MTp7bjoiU1RSSU5HIixmOmx9LDU1OntuOiJQQVNTV09SRCJ9LDU2OntuOiJMT0NLRUQifSw2MDp7bjoiUVVFUlkifSw2MTp7bjoiUVVFUllOQU1FIn0sNjI6e246IlBSSU5UIn0sNjM6e246IlBSSU5UTkFNRSJ9LDY0OntuOiJHUkFQSDIifSw2NTp7bjoiR1JBUEhOQU1FIn0sNjY6e246IlpPT00ifSw2Nzp7bjoiU1lNU1BMSVQifSw2ODp7bjoiTlNST1dTIn0sNjk6e246Ik5TQ09MUyJ9LDcwOntuOiJSVUxFUiJ9LDcxOntuOiJOTkFNRSJ9LDcyOntuOiJBQ09NTSJ9LDczOntuOiJBTUFDUk8ifSw3NDp7bjoiUEFSU0UifSwxMDI6e246IlBSQU5HRVM/PyJ9LDEwMzp7bjoiUlJBTkdFUz8/In0sMTA0OntuOiJGTkFNRT8/In0sMTA1OntuOiJNUkFOR0VTPz8ifSwyMDQ6e246IlNIRUVUTkFNRUNTIixmOnJlfSwyMjI6e246IlNIRUVUTkFNRUxQIixmOmNlfSw2NTUzNTp7bjoiIn19LGhlPXswOntuOiJCT0YifSwxOntuOiJFT0YifSwyOntuOiJQQVNTV09SRCJ9LDM6e246IkNBTENTRVQifSw0OntuOiJXSU5ET1dTRVQifSw1OntuOiJTSEVFVENFTExQVFIifSw2OntuOiJTSEVFVExBWU9VVCJ9LDc6e246IkNPTFVNTldJRFRIIn0sODp7bjoiSElEREVOQ09MVU1OIn0sOTp7bjoiVVNFUlJBTkdFIn0sMTA6e246IlNZU1RFTVJBTkdFIn0sMTE6e246IlpFUk9GT1JDRSJ9LDEyOntuOiJTT1JUS0VZRElSIn0sMTM6e246IkZJTEVTRUFMIn0sMTQ6e246IkRBVEFGSUxMTlVNUyJ9LDE1OntuOiJQUklOVE1BSU4ifSwxNjp7bjoiUFJJTlRTVFJJTkcifSwxNzp7bjoiR1JBUEhNQUlOIn0sMTg6e246IkdSQVBIU1RSSU5HIn0sMTk6e246Ij8/In0sMjA6e246IkVSUkNFTEwifSwyMTp7bjoiTkFDRUxMIn0sMjI6e246IkxBQkVMMTYiLGY6SX0sMjM6e246Ik5VTUJFUjE3IixmOkR9LDI0OntuOiJOVU1CRVIxOCIsZjpWfSwyNTp7bjoiRk9STVVMQTE5IixmOkd9LDI2OntuOiJGT1JNVUxBMUEifSwyNzp7bjoiWEZPUk1BVCIsZjpGZX0sMjg6e246IkRUTEFCRUxNSVNDIn0sMjk6e246IkRUTEFCRUxDRUxMIn0sMzA6e246IkdSQVBIV0lORE9XIn0sMzE6e246IkNQQSJ9LDMyOntuOiJMUExBVVRPIn0sMzM6e246IlFVRVJZIn0sMzQ6e246IkhJRERFTlNIRUVUIn0sMzU6e246Ij8/In0sMzc6e246Ik5VTUJFUjI1IixmOlB9LDM4OntuOiI/PyJ9LDM5OntuOiJOVU1CRVIyNyIsZjpKfSw0MDp7bjoiRk9STVVMQTI4IixmOmZlfSwxNDI6e246Ij8/In0sMTQ3OntuOiI/PyJ9LDE1MDp7bjoiPz8ifSwxNTE6e246Ij8/In0sMTUyOntuOiI/PyJ9LDE1Mzp7bjoiPz8ifSwxNTQ6e246Ij8/In0sMTU1OntuOiI/PyJ9LDE1Njp7bjoiPz8ifSwxNjM6e246Ij8/In0sMTc0OntuOiI/PyJ9LDE3NTp7bjoiPz8ifSwxNzY6e246Ij8/In0sMTc3OntuOiI/PyJ9LDE4NDp7bjoiPz8ifSwxODU6e246Ij8/In0sMTg2OntuOiI/PyJ9LDE4Nzp7bjoiPz8ifSwxODg6e246Ij8/In0sMTk1OntuOiI/PyJ9LDIwMTp7bjoiPz8ifSwyMDQ6e246IlNIRUVUTkFNRUNTIixmOnJlfSwyMDU6e246Ij8/In0sMjA2OntuOiI/PyJ9LDIwNzp7bjoiPz8ifSwyMDg6e246Ij8/In0sMjU2OntuOiI/PyJ9LDI1OTp7bjoiPz8ifSwyNjA6e246Ij8/In0sMjYxOntuOiI/PyJ9LDI2Mjp7bjoiPz8ifSwyNjM6e246Ij8/In0sMjY1OntuOiI/PyJ9LDI2Njp7bjoiPz8ifSwyNjc6e246Ij8/In0sMjY4OntuOiI/PyJ9LDI3MDp7bjoiPz8ifSwyNzE6e246Ij8/In0sMzg0OntuOiI/PyJ9LDM4OTp7bjoiPz8ifSwzOTA6e246Ij8/In0sMzkzOntuOiI/PyJ9LDM5Njp7bjoiPz8ifSw1MTI6e246Ij8/In0sNTE0OntuOiI/PyJ9LDUxMzp7bjoiPz8ifSw1MTY6e246Ij8/In0sNTE3OntuOiI/PyJ9LDY0MDp7bjoiPz8ifSw2NDE6e246Ij8/In0sNjQyOntuOiI/PyJ9LDY0Mzp7bjoiPz8ifSw2NDQ6e246Ij8/In0sNjQ1OntuOiI/PyJ9LDY0Njp7bjoiPz8ifSw2NDc6e246Ij8/In0sNjQ4OntuOiI/PyJ9LDY1ODp7bjoiPz8ifSw2NTk6e246Ij8/In0sNjYwOntuOiI/PyJ9LDY2MTp7bjoiPz8ifSw2NjI6e246Ij8/In0sNjY1OntuOiI/PyJ9LDY2Njp7bjoiPz8ifSw3Njg6e246Ij8/In0sNzcyOntuOiI/PyJ9LDE1Mzc6e246IlNIRUVUSU5GT1FQIixmOmllfSwxNjAwOntuOiI/PyJ9LDE2MDI6e246Ij8/In0sMTc5Mzp7bjoiPz8ifSwxNzk0OntuOiI/PyJ9LDE3OTU6e246Ij8/In0sMTc5Njp7bjoiPz8ifSwxOTIwOntuOiI/PyJ9LDIwNDg6e246Ij8/In0sMjA0OTp7bjoiPz8ifSwyMDUyOntuOiI/PyJ9LDI2ODg6e246Ij8/In0sMTA5OTg6e246Ij8/In0sMTI4NDk6e246Ij8/In0sMjgyMzM6e246Ij8/In0sMjg0ODQ6e246Ij8/In0sNjU1MzU6e246IiJ9fTtyZXR1cm57c2hlZXRfdG9fd2sxOm4sYm9va190b193azM6dCx0b193b3JrYm9vazphfX0oKTtmdW5jdGlvbiBSbyhlKXt2YXIgYT17fSxyPWUubWF0Y2goS2UpLG49MCx0PSExO2lmKHIpZm9yKDtuIT1yLmxlbmd0aDsrK24pe3ZhciBzPW9lKHJbbl0pO3N3aXRjaChzWzBdLnJlcGxhY2UoL1x3KjovZywiIikpe2Nhc2UiPGNvbmRlbnNlIjpicmVhaztjYXNlIjxleHRlbmQiOmJyZWFrO2Nhc2UiPHNoYWRvdyI6aWYoIXMudmFsKWJyZWFrO2Nhc2UiPHNoYWRvdz4iOmNhc2UiPHNoYWRvdy8+IjphLnNoYWRvdz0xO2JyZWFrO2Nhc2UiPC9zaGFkb3c+IjpicmVhaztjYXNlIjxjaGFyc2V0IjppZihzLnZhbD09IjEiKWJyZWFrO2EuY3A9U3RbcGFyc2VJbnQocy52YWwsMTApXTticmVhaztjYXNlIjxvdXRsaW5lIjppZighcy52YWwpYnJlYWs7Y2FzZSI8b3V0bGluZT4iOmNhc2UiPG91dGxpbmUvPiI6YS5vdXRsaW5lPTE7YnJlYWs7Y2FzZSI8L291dGxpbmU+IjpicmVhaztjYXNlIjxyRm9udCI6YS5uYW1lPXMudmFsO2JyZWFrO2Nhc2UiPHN6IjphLnN6PXMudmFsO2JyZWFrO2Nhc2UiPHN0cmlrZSI6aWYoIXMudmFsKWJyZWFrO2Nhc2UiPHN0cmlrZT4iOmNhc2UiPHN0cmlrZS8+IjphLnN0cmlrZT0xO2JyZWFrO2Nhc2UiPC9zdHJpa2U+IjpicmVhaztjYXNlIjx1IjppZighcy52YWwpYnJlYWs7c3dpdGNoKHMudmFsKXtjYXNlImRvdWJsZSI6YS51dmFsPSJkb3VibGUiO2JyZWFrO2Nhc2Uic2luZ2xlQWNjb3VudGluZyI6YS51dmFsPSJzaW5nbGUtYWNjb3VudGluZyI7YnJlYWs7Y2FzZSJkb3VibGVBY2NvdW50aW5nIjphLnV2YWw9ImRvdWJsZS1hY2NvdW50aW5nIjticmVha31jYXNlIjx1PiI6Y2FzZSI8dS8+IjphLnU9MTticmVhaztjYXNlIjwvdT4iOmJyZWFrO2Nhc2UiPGIiOmlmKHMudmFsPT0iMCIpYnJlYWs7Y2FzZSI8Yj4iOmNhc2UiPGIvPiI6YS5iPTE7YnJlYWs7Y2FzZSI8L2I+IjpicmVhaztjYXNlIjxpIjppZihzLnZhbD09IjAiKWJyZWFrO2Nhc2UiPGk+IjpjYXNlIjxpLz4iOmEuaT0xO2JyZWFrO2Nhc2UiPC9pPiI6YnJlYWs7Y2FzZSI8Y29sb3IiOnMucmdiJiYoYS5jb2xvcj1zLnJnYi5zbGljZSgyLDgpKTticmVhaztjYXNlIjxjb2xvcj4iOmNhc2UiPGNvbG9yLz4iOmNhc2UiPC9jb2xvcj4iOmJyZWFrO2Nhc2UiPGZhbWlseSI6YS5mYW1pbHk9cy52YWw7YnJlYWs7Y2FzZSI8ZmFtaWx5PiI6Y2FzZSI8ZmFtaWx5Lz4iOmNhc2UiPC9mYW1pbHk+IjpicmVhaztjYXNlIjx2ZXJ0QWxpZ24iOmEudmFsaWduPXMudmFsO2JyZWFrO2Nhc2UiPHZlcnRBbGlnbj4iOmNhc2UiPHZlcnRBbGlnbi8+IjpjYXNlIjwvdmVydEFsaWduPiI6YnJlYWs7Y2FzZSI8c2NoZW1lIjpicmVhaztjYXNlIjxzY2hlbWU+IjpjYXNlIjxzY2hlbWUvPiI6Y2FzZSI8L3NjaGVtZT4iOmJyZWFrO2Nhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4dExzdD4iOmJyZWFrO2Nhc2UiPGV4dCI6dD0hMDticmVhaztjYXNlIjwvZXh0PiI6dD0hMTticmVhaztkZWZhdWx0OmlmKHNbMF0uY2hhckNvZGVBdCgxKSE9PTQ3JiYhdCl0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCByaWNoIGZvcm1hdCAiK3NbMF0pfX1yZXR1cm4gYX12YXIgSW89ZnVuY3Rpb24oKXt2YXIgZT15YSgidCIpLGE9eWEoInJQciIpO2Z1bmN0aW9uIHIocyl7dmFyIGk9cy5tYXRjaChlKTtpZighaSlyZXR1cm57dDoicyIsdjoiIn07dmFyIGM9e3Q6InMiLHY6RWUoaVsxXSl9LGY9cy5tYXRjaChhKTtyZXR1cm4gZiYmKGMucz1SbyhmWzFdKSksY312YXIgbj0vPCg/Olx3KzopP3I+L2csdD0vPFwvKD86XHcrOik/cj4vO3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4gaS5yZXBsYWNlKG4sIiIpLnNwbGl0KHQpLm1hcChyKS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuIGMudn0pfX0oKSxObz1mdW5jdGlvbigpe3ZhciBhPS8oXHJcbnxcbikvZztmdW5jdGlvbiByKHQscyxpKXt2YXIgYz1bXTt0LnUmJmMucHVzaCgidGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IiksdC51dmFsJiZjLnB1c2goInRleHQtdW5kZXJsaW5lLXN0eWxlOiIrdC51dmFsKyI7IiksdC5zeiYmYy5wdXNoKCJmb250LXNpemU6Iit0LnN6KyJwdDsiKSx0Lm91dGxpbmUmJmMucHVzaCgidGV4dC1lZmZlY3Q6IG91dGxpbmU7IiksdC5zaGFkb3cmJmMucHVzaCgidGV4dC1zaGFkb3c6IGF1dG87Iikscy5wdXNoKCc8c3BhbiBzdHlsZT0iJytjLmpvaW4oIiIpKyciPicpLHQuYiYmKHMucHVzaCgiPGI+IiksaS5wdXNoKCI8L2I+IikpLHQuaSYmKHMucHVzaCgiPGk+IiksaS5wdXNoKCI8L2k+IikpLHQuc3RyaWtlJiYocy5wdXNoKCI8cz4iKSxpLnB1c2goIjwvcz4iKSk7dmFyIGY9dC52YWxpZ258fCIiO3JldHVybiBmPT0ic3VwZXJzY3JpcHQifHxmPT0ic3VwZXIiP2Y9InN1cCI6Zj09InN1YnNjcmlwdCImJihmPSJzdWIiKSxmIT0iIiYmKHMucHVzaCgiPCIrZisiPiIpLGkucHVzaCgiPC8iK2YrIj4iKSksaS5wdXNoKCI8L3NwYW4+IiksdH1mdW5jdGlvbiBuKHQpe3ZhciBzPVtbXSx0LnYsW11dO3JldHVybiB0LnY/KHQucyYmcih0LnMsc1swXSxzWzJdKSxzWzBdLmpvaW4oIiIpK3NbMV0ucmVwbGFjZShhLCI8YnIvPiIpK3NbMl0uam9pbigiIikpOiIifXJldHVybiBmdW5jdGlvbihzKXtyZXR1cm4gcy5tYXAobikuam9pbigiIil9fSgpLFBvPS88KD86XHcrOik/dFtePl0qPihbXjxdKik8XC8oPzpcdys6KT90Pi9nLExvPS88KD86XHcrOik/cj4vLE1vPS88KD86XHcrOik/clBoLio/PihbXHNcU10qPyk8XC8oPzpcdys6KT9yUGg+L2c7ZnVuY3Rpb24gWnQoZSxhKXt2YXIgcj1hP2EuY2VsbEhUTUw6ITAsbj17fTtyZXR1cm4gZT8oZS5tYXRjaCgvXlxzKjwoPzpcdys6KT90W14+XSo+Lyk/KG4udD1FZShBZShlLnNsaWNlKGUuaW5kZXhPZigiPiIpKzEpLnNwbGl0KC88XC8oPzpcdys6KT90Pi8pWzBdfHwiIikpLG4ucj1BZShlKSxyJiYobi5oPVB0KG4udCkpKTplLm1hdGNoKExvKSYmKG4ucj1BZShlKSxuLnQ9RWUoQWUoKGUucmVwbGFjZShNbywiIikubWF0Y2goUG8pfHxbXSkuam9pbigiIikucmVwbGFjZShLZSwiIikpKSxyJiYobi5oPU5vKElvKG4ucikpKSksbik6e3Q6IiJ9fXZhciBCbz0vPCg/Olx3KzopP3NzdChbXj5dKik+KFtcc1xTXSopPFwvKD86XHcrOik/c3N0Pi8sYm89LzwoPzpcdys6KT8oPzpzaXxzc3RJdGVtKT4vZyxVbz0vPFwvKD86XHcrOik/KD86c2l8c3N0SXRlbSk+LztmdW5jdGlvbiBIbyhlLGEpe3ZhciByPVtdLG49IiI7aWYoIWUpcmV0dXJuIHI7dmFyIHQ9ZS5tYXRjaChCbyk7aWYodCl7bj10WzJdLnJlcGxhY2UoYm8sIiIpLnNwbGl0KFVvKTtmb3IodmFyIHM9MDtzIT1uLmxlbmd0aDsrK3Mpe3ZhciBpPVp0KG5bc10udHJpbSgpLGEpO2khPW51bGwmJihyW3IubGVuZ3RoXT1pKX10PW9lKHRbMV0pLHIuQ291bnQ9dC5jb3VudCxyLlVuaXF1ZT10LnVuaXF1ZUNvdW50fXJldHVybiByfWZ1bmN0aW9uIFZvKGUpe3JldHVybltlLnJlYWRfc2hpZnQoNCksZS5yZWFkX3NoaWZ0KDQpXX1mdW5jdGlvbiBXbyhlLGEpe3ZhciByPVtdLG49ITE7cmV0dXJuIFByKGUsZnVuY3Rpb24ocyxpLGMpe3N3aXRjaChjKXtjYXNlIDE1OTpyLkNvdW50PXNbMF0sci5VbmlxdWU9c1sxXTticmVhaztjYXNlIDE5OnIucHVzaChzKTticmVhaztjYXNlIDE2MDpyZXR1cm4hMDtjYXNlIDM1Om49ITA7YnJlYWs7Y2FzZSAzNjpuPSExO2JyZWFrO2RlZmF1bHQ6aWYoaS5ULCFufHxhLldURil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgcmVjb3JkIDB4IitjLnRvU3RyaW5nKDE2KSl9fSkscn1mdW5jdGlvbiB1cyhlKXtmb3IodmFyIGE9W10scj1lLnNwbGl0KCIiKSxuPTA7bjxyLmxlbmd0aDsrK24pYVtuXT1yW25dLmNoYXJDb2RlQXQoMCk7cmV0dXJuIGF9ZnVuY3Rpb24gTXIoZSxhKXt2YXIgcj17fTtyZXR1cm4gci5NYWpvcj1lLnJlYWRfc2hpZnQoMiksci5NaW5vcj1lLnJlYWRfc2hpZnQoMiksYT49NCYmKGUubCs9YS00KSxyfWZ1bmN0aW9uIEdvKGUpe3ZhciBhPXt9O3JldHVybiBhLmlkPWUucmVhZF9zaGlmdCgwLCJscHA0IiksYS5SPU1yKGUsNCksYS5VPU1yKGUsNCksYS5XPU1yKGUsNCksYX1mdW5jdGlvbiBYbyhlKXtmb3IodmFyIGE9ZS5yZWFkX3NoaWZ0KDQpLHI9ZS5sK2EtNCxuPXt9LHQ9ZS5yZWFkX3NoaWZ0KDQpLHM9W107dC0tID4wOylzLnB1c2goe3Q6ZS5yZWFkX3NoaWZ0KDQpLHY6ZS5yZWFkX3NoaWZ0KDAsImxwcDQiKX0pO2lmKG4ubmFtZT1lLnJlYWRfc2hpZnQoMCwibHBwNCIpLG4uY29tcHM9cyxlLmwhPXIpdGhyb3cgbmV3IEVycm9yKCJCYWQgRGF0YVNwYWNlTWFwRW50cnk6ICIrZS5sKyIgIT0gIityKTtyZXR1cm4gbn1mdW5jdGlvbiAkbyhlKXt2YXIgYT1bXTtlLmwrPTQ7Zm9yKHZhciByPWUucmVhZF9zaGlmdCg0KTtyLS0gPjA7KWEucHVzaChYbyhlKSk7cmV0dXJuIGF9ZnVuY3Rpb24gem8oZSl7dmFyIGE9W107ZS5sKz00O2Zvcih2YXIgcj1lLnJlYWRfc2hpZnQoNCk7ci0tID4wOylhLnB1c2goZS5yZWFkX3NoaWZ0KDAsImxwcDQiKSk7cmV0dXJuIGF9ZnVuY3Rpb24gS28oZSl7dmFyIGE9e307cmV0dXJuIGUucmVhZF9zaGlmdCg0KSxlLmwrPTQsYS5pZD1lLnJlYWRfc2hpZnQoMCwibHBwNCIpLGEubmFtZT1lLnJlYWRfc2hpZnQoMCwibHBwNCIpLGEuUj1NcihlLDQpLGEuVT1NcihlLDQpLGEuVz1NcihlLDQpLGF9ZnVuY3Rpb24gWW8oZSl7dmFyIGE9S28oZSk7aWYoYS5lbmFtZT1lLnJlYWRfc2hpZnQoMCwiOGxwcDQiKSxhLmJsa3N6PWUucmVhZF9zaGlmdCg0KSxhLmNtb2RlPWUucmVhZF9zaGlmdCg0KSxlLnJlYWRfc2hpZnQoNCkhPTQpdGhyb3cgbmV3IEVycm9yKCJCYWQgIVByaW1hcnkgcmVjb3JkIik7cmV0dXJuIGF9ZnVuY3Rpb24geHMoZSxhKXt2YXIgcj1lLmwrYSxuPXt9O24uRmxhZ3M9ZS5yZWFkX3NoaWZ0KDQpJjYzLGUubCs9NCxuLkFsZ0lEPWUucmVhZF9zaGlmdCg0KTt2YXIgdD0hMTtzd2l0Y2gobi5BbGdJRCl7Y2FzZSAyNjEyNjpjYXNlIDI2MTI3OmNhc2UgMjYxMjg6dD1uLkZsYWdzPT0zNjticmVhaztjYXNlIDI2NjI1OnQ9bi5GbGFncz09NDticmVhaztjYXNlIDA6dD1uLkZsYWdzPT0xNnx8bi5GbGFncz09NHx8bi5GbGFncz09MzY7YnJlYWs7ZGVmYXVsdDp0aHJvdyJVbnJlY29nbml6ZWQgZW5jcnlwdGlvbiBhbGdvcml0aG06ICIrbi5BbGdJRH1pZighdCl0aHJvdyBuZXcgRXJyb3IoIkVuY3J5cHRpb24gRmxhZ3MvQWxnSUQgbWlzbWF0Y2giKTtyZXR1cm4gbi5BbGdJREhhc2g9ZS5yZWFkX3NoaWZ0KDQpLG4uS2V5U2l6ZT1lLnJlYWRfc2hpZnQoNCksbi5Qcm92aWRlclR5cGU9ZS5yZWFkX3NoaWZ0KDQpLGUubCs9OCxuLkNTUE5hbWU9ZS5yZWFkX3NoaWZ0KHItZS5sPj4xLCJ1dGYxNmxlIiksZS5sPXIsbn1mdW5jdGlvbiBkcyhlLGEpe3ZhciByPXt9LG49ZS5sK2E7cmV0dXJuIGUubCs9NCxyLlNhbHQ9ZS5zbGljZShlLmwsZS5sKzE2KSxlLmwrPTE2LHIuVmVyaWZpZXI9ZS5zbGljZShlLmwsZS5sKzE2KSxlLmwrPTE2LGUucmVhZF9zaGlmdCg0KSxyLlZlcmlmaWVySGFzaD1lLnNsaWNlKGUubCxuKSxlLmw9bixyfWZ1bmN0aW9uIGpvKGUpe3ZhciBhPU1yKGUpO3N3aXRjaChhLk1pbm9yKXtjYXNlIDI6cmV0dXJuW2EuTWlub3IsSm8oZSldO2Nhc2UgMzpyZXR1cm5bYS5NaW5vcixabygpXTtjYXNlIDQ6cmV0dXJuW2EuTWlub3IscW8oZSldfXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUgdW5yZWNvZ25pemVkIFZlcnNpb246ICIrYS5NaW5vcil9ZnVuY3Rpb24gSm8oZSl7dmFyIGE9ZS5yZWFkX3NoaWZ0KDQpO2lmKChhJjYzKSE9MzYpdGhyb3cgbmV3IEVycm9yKCJFbmNyeXB0aW9uSW5mbyBtaXNtYXRjaCIpO3ZhciByPWUucmVhZF9zaGlmdCg0KSxuPXhzKGUsciksdD1kcyhlLGUubGVuZ3RoLWUubCk7cmV0dXJue3Q6IlN0ZCIsaDpuLHY6dH19ZnVuY3Rpb24gWm8oKXt0aHJvdyBuZXcgRXJyb3IoIkZpbGUgaXMgcGFzc3dvcmQtcHJvdGVjdGVkOiBFQ01BLTM3NiBFeHRlbnNpYmxlIil9ZnVuY3Rpb24gcW8oZSl7dmFyIGE9WyJzYWx0U2l6ZSIsImJsb2NrU2l6ZSIsImtleUJpdHMiLCJoYXNoU2l6ZSIsImNpcGhlckFsZ29yaXRobSIsImNpcGhlckNoYWluaW5nIiwiaGFzaEFsZ29yaXRobSIsInNhbHRWYWx1ZSJdO2UubCs9NDt2YXIgcj1lLnJlYWRfc2hpZnQoZS5sZW5ndGgtZS5sLCJ1dGY4Iiksbj17fTtyZXR1cm4gci5yZXBsYWNlKEtlLGZ1bmN0aW9uKHMpe3ZhciBpPW9lKHMpO3N3aXRjaChDcihpWzBdKSl7Y2FzZSI8P3htbCI6YnJlYWs7Y2FzZSI8ZW5jcnlwdGlvbiI6Y2FzZSI8L2VuY3J5cHRpb24+IjpicmVhaztjYXNlIjxrZXlEYXRhIjphLmZvckVhY2goZnVuY3Rpb24oYyl7bltjXT1pW2NdfSk7YnJlYWs7Y2FzZSI8ZGF0YUludGVncml0eSI6bi5lbmNyeXB0ZWRIbWFjS2V5PWkuZW5jcnlwdGVkSG1hY0tleSxuLmVuY3J5cHRlZEhtYWNWYWx1ZT1pLmVuY3J5cHRlZEhtYWNWYWx1ZTticmVhaztjYXNlIjxrZXlFbmNyeXB0b3JzPiI6Y2FzZSI8a2V5RW5jcnlwdG9ycyI6bi5lbmNzPVtdO2JyZWFrO2Nhc2UiPC9rZXlFbmNyeXB0b3JzPiI6YnJlYWs7Y2FzZSI8a2V5RW5jcnlwdG9yIjpuLnVyaT1pLnVyaTticmVhaztjYXNlIjwva2V5RW5jcnlwdG9yPiI6YnJlYWs7Y2FzZSI8ZW5jcnlwdGVkS2V5IjpuLmVuY3MucHVzaChpKTticmVhaztkZWZhdWx0OnRocm93IGlbMF19fSksbn1mdW5jdGlvbiBRbyhlLGEpe3ZhciByPXt9LG49ci5FbmNyeXB0aW9uVmVyc2lvbkluZm89TXIoZSw0KTtpZihhLT00LG4uTWlub3IhPTIpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgbWlub3IgdmVyc2lvbiBjb2RlOiAiK24uTWlub3IpO2lmKG4uTWFqb3I+NHx8bi5NYWpvcjwyKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkIG1ham9yIHZlcnNpb24gY29kZTogIituLk1ham9yKTtyLkZsYWdzPWUucmVhZF9zaGlmdCg0KSxhLT00O3ZhciB0PWUucmVhZF9zaGlmdCg0KTtyZXR1cm4gYS09NCxyLkVuY3J5cHRpb25IZWFkZXI9eHMoZSx0KSxhLT10LHIuRW5jcnlwdGlvblZlcmlmaWVyPWRzKGUsYSkscn1mdW5jdGlvbiBlbChlKXt2YXIgYT17fSxyPWEuRW5jcnlwdGlvblZlcnNpb25JbmZvPU1yKGUsNCk7aWYoci5NYWpvciE9MXx8ci5NaW5vciE9MSl0aHJvdyJ1bnJlY29nbml6ZWQgdmVyc2lvbiBjb2RlICIrci5NYWpvcisiIDogIityLk1pbm9yO3JldHVybiBhLlNhbHQ9ZS5yZWFkX3NoaWZ0KDE2KSxhLkVuY3J5cHRlZFZlcmlmaWVyPWUucmVhZF9zaGlmdCgxNiksYS5FbmNyeXB0ZWRWZXJpZmllckhhc2g9ZS5yZWFkX3NoaWZ0KDE2KSxhfWZ1bmN0aW9uIHJsKGUpe3ZhciBhPTAscixuPXVzKGUpLHQ9bi5sZW5ndGgrMSxzLGksYyxmLG87Zm9yKHI9VnIodCksclswXT1uLmxlbmd0aCxzPTE7cyE9dDsrK3MpcltzXT1uW3MtMV07Zm9yKHM9dC0xO3M+PTA7LS1zKWk9cltzXSxjPWEmMTYzODQ/MTowLGY9YTw8MSYzMjc2NyxvPWN8ZixhPW9eaTtyZXR1cm4gYV41MjgxMX12YXIgdnM9ZnVuY3Rpb24oKXt2YXIgZT1bMTg3LDI1NSwyNTUsMTg2LDI1NSwyNTUsMTg1LDEyOCwwLDE5MCwxNSwwLDE5MSwxNSwwXSxhPVs1Nzg0MCw3NDM5LDUyMzgwLDMzOTg0LDQzNjQsMzYwMCw2MTkwMiwxMjYwNiw2MjU4LDU3NjU3LDU0Mjg3LDM0MDQxLDEwMjUyLDQzMzcwLDIwMTYzXSxyPVs0NDc5NiwxOTkyOSwzOTg1OCwxMDA1MywyMDEwNiw0MDIxMiwxMDc2MSwzMTU4NSw2MzE3MCw2NDkzMyw2MDI2Nyw1MDkzNSw0MDM5OSwxMTE5OSwxNzc2MywzNTUyNiwxNDUzLDI5MDYsNTgxMiwxMTYyNCwyMzI0OCw4ODUsMTc3MCwzNTQwLDcwODAsMTQxNjAsMjgzMjAsNTY2NDAsNTUzNjksNDExMzksMjA4MDcsNDE2MTQsMjE4MjEsNDM2NDIsMTc2MjEsMjg0ODUsNTY5NzAsNDQzNDEsMTkwMTksMzgwMzgsMTQ2MDUsMjkyMTAsNjAxOTUsNTA3OTEsNDAxNzUsMTA3NTEsMjE1MDIsNDMwMDQsMjQ1MzcsMTgzODcsMzY3NzQsMzk0OSw3ODk4LDE1Nzk2LDMxNTkyLDYzMTg0LDQ3MjAxLDI0ODAzLDQ5NjA2LDM3ODA1LDE0MjAzLDI4NDA2LDU2ODEyLDE3ODI0LDM1NjQ4LDE2OTcsMzM5NCw2Nzg4LDEzNTc2LDI3MTUyLDQzNjAxLDE3NTM5LDM1MDc4LDU1NywxMTE0LDIyMjgsNDQ1NiwzMDM4OCw2MDc3Niw1MTk1MywzNDI0Myw3MDc5LDE0MTU4LDI4MzE2LDE0MTI4LDI4MjU2LDU2NTEyLDQzNDI1LDE3MjUxLDM0NTAyLDc1OTcsMTMxMDUsMjYyMTAsNTI0MjAsMzUyNDEsODgzLDE3NjYsMzUzMiw0MTI5LDgyNTgsMTY1MTYsMzMwMzIsNDY1Nyw5MzE0LDE4NjI4XSxuPWZ1bmN0aW9uKGkpe3JldHVybihpLzJ8aSoxMjgpJjI1NX0sdD1mdW5jdGlvbihpLGMpe3JldHVybiBuKGleYyl9LHM9ZnVuY3Rpb24oaSl7Zm9yKHZhciBjPWFbaS5sZW5ndGgtMV0sZj0xMDQsbz1pLmxlbmd0aC0xO28+PTA7LS1vKWZvcih2YXIgbD1pW29dLGg9MDtoIT03OysraClsJjY0JiYoY149cltmXSksbCo9MiwtLWY7cmV0dXJuIGN9O3JldHVybiBmdW5jdGlvbihpKXtmb3IodmFyIGM9dXMoaSksZj1zKGMpLG89Yy5sZW5ndGgsbD1WcigxNiksaD0wO2ghPTE2OysraClsW2hdPTA7dmFyIHgsZCx2O2ZvcigobyYxKT09PTEmJih4PWY+PjgsbFtvXT10KGVbMF0seCksLS1vLHg9ZiYyNTUsZD1jW2MubGVuZ3RoLTFdLGxbb109dChkLHgpKTtvPjA7KS0tbyx4PWY+PjgsbFtvXT10KGNbb10seCksLS1vLHg9ZiYyNTUsbFtvXT10KGNbb10seCk7Zm9yKG89MTUsdj0xNS1jLmxlbmd0aDt2PjA7KXg9Zj4+OCxsW29dPXQoZVt2XSx4KSwtLW8sLS12LHg9ZiYyNTUsbFtvXT10KGNbb10seCksLS1vLC0tdjtyZXR1cm4gbH19KCksYWw9ZnVuY3Rpb24oZSxhLHIsbix0KXt0fHwodD1hKSxufHwobj12cyhlKSk7dmFyIHMsaTtmb3Iocz0wO3MhPWEubGVuZ3RoOysrcylpPWFbc10saV49bltyXSxpPShpPj41fGk8PDMpJjI1NSx0W3NdPWksKytyO3JldHVyblt0LHIsbl19LHRsPWZ1bmN0aW9uKGUpe3ZhciBhPTAscj12cyhlKTtyZXR1cm4gZnVuY3Rpb24obil7dmFyIHQ9YWwoIiIsbixhLHIpO3JldHVybiBhPXRbMV0sdFswXX19O2Z1bmN0aW9uIG5sKGUsYSxyLG4pe3ZhciB0PXtrZXk6TWUoZSksdmVyaWZpY2F0aW9uQnl0ZXM6TWUoZSl9O3JldHVybiByLnBhc3N3b3JkJiYodC52ZXJpZmllcj1ybChyLnBhc3N3b3JkKSksbi52YWxpZD10LnZlcmlmaWNhdGlvbkJ5dGVzPT09dC52ZXJpZmllcixuLnZhbGlkJiYobi5pbnNpdHU9dGwoci5wYXNzd29yZCkpLHR9ZnVuY3Rpb24gc2woZSxhLHIpe3ZhciBuPXJ8fHt9O3JldHVybiBuLkluZm89ZS5yZWFkX3NoaWZ0KDIpLGUubC09MixuLkluZm89PT0xP24uRGF0YT1lbChlKTpuLkRhdGE9UW8oZSxhKSxufWZ1bmN0aW9uIGlsKGUsYSxyKXt2YXIgbj17VHlwZTpyLmJpZmY+PTg/ZS5yZWFkX3NoaWZ0KDIpOjB9O3JldHVybiBuLlR5cGU/c2woZSxhLTIsbik6bmwoZSxyLmJpZmY+PTg/YTphLTIscixuKSxufXZhciBjbD1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxzKXtzd2l0Y2gocy50eXBlKXtjYXNlImJhc2U2NCI6cmV0dXJuIGEoZnIodCkscyk7Y2FzZSJiaW5hcnkiOnJldHVybiBhKHQscyk7Y2FzZSJidWZmZXIiOnJldHVybiBhKGdlJiZCdWZmZXIuaXNCdWZmZXIodCk/dC50b1N0cmluZygiYmluYXJ5Iik6WnIodCkscyk7Y2FzZSJhcnJheSI6cmV0dXJuIGEocmEodCkscyl9dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiK3MudHlwZSl9ZnVuY3Rpb24gYSh0LHMpe3ZhciBpPXN8fHt9LGM9aS5kZW5zZT9bXTp7fSxmPXQubWF0Y2goL1xcdHJvd2QuKj9cXHJvd1xiL2cpO2lmKCFmLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIlJURiBtaXNzaW5nIHRhYmxlIik7dmFyIG89e3M6e2M6MCxyOjB9LGU6e2M6MCxyOmYubGVuZ3RoLTF9fTtyZXR1cm4gZi5mb3JFYWNoKGZ1bmN0aW9uKGwsaCl7QXJyYXkuaXNBcnJheShjKSYmKGNbaF09W10pO2Zvcih2YXIgeD0vXFxcdytcYi9nLGQ9MCx2LHU9LTE7dj14LmV4ZWMobCk7KXtzd2l0Y2godlswXSl7Y2FzZSJcXGNlbGwiOnZhciBnPWwuc2xpY2UoZCx4Lmxhc3RJbmRleC12WzBdLmxlbmd0aCk7aWYoZ1swXT09IiAiJiYoZz1nLnNsaWNlKDEpKSwrK3UsZy5sZW5ndGgpe3ZhciBGPXt2OmcsdDoicyJ9O0FycmF5LmlzQXJyYXkoYyk/Y1toXVt1XT1GOmNbdWUoe3I6aCxjOnV9KV09Rn1icmVha31kPXgubGFzdEluZGV4fXU+by5lLmMmJihvLmUuYz11KX0pLGNbIiFyZWYiXT1fZShvKSxjfWZ1bmN0aW9uIHIodCxzKXtyZXR1cm4gWHIoZSh0LHMpLHMpfWZ1bmN0aW9uIG4odCl7Zm9yKHZhciBzPVsie1xccnRmMVxcYW5zaSJdLGk9T2UodFsiIXJlZiJdKSxjLGY9QXJyYXkuaXNBcnJheSh0KSxvPWkucy5yO288PWkuZS5yOysrbyl7cy5wdXNoKCJcXHRyb3dkXFx0cmF1dG9maXQxIik7Zm9yKHZhciBsPWkucy5jO2w8PWkuZS5jOysrbClzLnB1c2goIlxcY2VsbHgiKyhsKzEpKTtmb3Iocy5wdXNoKCJcXHBhcmRcXGludGJsIiksbD1pLnMuYztsPD1pLmUuYzsrK2wpe3ZhciBoPXVlKHtyOm8sYzpsfSk7Yz1mPyh0W29dfHxbXSlbbF06dFtoXSwhKCFjfHxjLnY9PW51bGwmJighYy5mfHxjLkYpKSYmKHMucHVzaCgiICIrKGMud3x8KExyKGMpLGMudykpKSxzLnB1c2goIlxcY2VsbCIpKX1zLnB1c2goIlxccGFyZFxcaW50YmxcXHJvdyIpfXJldHVybiBzLmpvaW4oIiIpKyJ9In1yZXR1cm57dG9fd29ya2Jvb2s6cix0b19zaGVldDplLGZyb21fc2hlZXQ6bn19KCk7ZnVuY3Rpb24gZmwoZSl7dmFyIGE9ZS5zbGljZShlWzBdPT09IiMiPzE6MCkuc2xpY2UoMCw2KTtyZXR1cm5bcGFyc2VJbnQoYS5zbGljZSgwLDIpLDE2KSxwYXJzZUludChhLnNsaWNlKDIsNCksMTYpLHBhcnNlSW50KGEuc2xpY2UoNCw2KSwxNildfWZ1bmN0aW9uIEhhKGUpe2Zvcih2YXIgYT0wLHI9MTthIT0zOysrYSlyPXIqMjU2KyhlW2FdPjI1NT8yNTU6ZVthXTwwPzA6ZVthXSk7cmV0dXJuIHIudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkuc2xpY2UoMSl9ZnVuY3Rpb24gb2woZSl7dmFyIGE9ZVswXS8yNTUscj1lWzFdLzI1NSxuPWVbMl0vMjU1LHQ9TWF0aC5tYXgoYSxyLG4pLHM9TWF0aC5taW4oYSxyLG4pLGk9dC1zO2lmKGk9PT0wKXJldHVyblswLDAsYV07dmFyIGM9MCxmPTAsbz10K3M7c3dpdGNoKGY9aS8obz4xPzItbzpvKSx0KXtjYXNlIGE6Yz0oKHItbikvaSs2KSU2O2JyZWFrO2Nhc2UgcjpjPShuLWEpL2krMjticmVhaztjYXNlIG46Yz0oYS1yKS9pKzQ7YnJlYWt9cmV0dXJuW2MvNixmLG8vMl19ZnVuY3Rpb24gbGwoZSl7dmFyIGE9ZVswXSxyPWVbMV0sbj1lWzJdLHQ9cioyKihuPC41P246MS1uKSxzPW4tdC8yLGk9W3MscyxzXSxjPTYqYSxmO2lmKHIhPT0wKXN3aXRjaChjfDApe2Nhc2UgMDpjYXNlIDY6Zj10KmMsaVswXSs9dCxpWzFdKz1mO2JyZWFrO2Nhc2UgMTpmPXQqKDItYyksaVswXSs9ZixpWzFdKz10O2JyZWFrO2Nhc2UgMjpmPXQqKGMtMiksaVsxXSs9dCxpWzJdKz1mO2JyZWFrO2Nhc2UgMzpmPXQqKDQtYyksaVsxXSs9ZixpWzJdKz10O2JyZWFrO2Nhc2UgNDpmPXQqKGMtNCksaVsyXSs9dCxpWzBdKz1mO2JyZWFrO2Nhc2UgNTpmPXQqKDYtYyksaVsyXSs9ZixpWzBdKz10O2JyZWFrfWZvcih2YXIgbz0wO28hPTM7KytvKWlbb109TWF0aC5yb3VuZChpW29dKjI1NSk7cmV0dXJuIGl9ZnVuY3Rpb24gcHQoZSxhKXtpZihhPT09MClyZXR1cm4gZTt2YXIgcj1vbChmbChlKSk7cmV0dXJuIGE8MD9yWzJdPXJbMl0qKDErYSk6clsyXT0xLSgxLXJbMl0pKigxLWEpLEhhKGxsKHIpKX12YXIgcHM9NixobD0xNSx1bD0xLHNyPXBzO2Z1bmN0aW9uIGd0KGUpe3JldHVybiBNYXRoLmZsb29yKChlK01hdGgucm91bmQoMTI4L3NyKS8yNTYpKnNyKX1mdW5jdGlvbiBtdChlKXtyZXR1cm4gTWF0aC5mbG9vcigoZS01KS9zcioxMDArLjUpLzEwMH1mdW5jdGlvbiBxdChlKXtyZXR1cm4gTWF0aC5yb3VuZCgoZSpzcis1KS9zcioyNTYpLzI1Nn1mdW5jdGlvbiBRdChlKXtyZXR1cm4gcXQobXQoZ3QoZSkpKX1mdW5jdGlvbiBlMChlKXt2YXIgYT1NYXRoLmFicyhlLVF0KGUpKSxyPXNyO2lmKGE+LjAwNSlmb3Ioc3I9dWw7c3I8aGw7KytzcilNYXRoLmFicyhlLVF0KGUpKTw9YSYmKGE9TWF0aC5hYnMoZS1RdChlKSkscj1zcik7c3I9cn1mdW5jdGlvbiBfYShlKXtlLndpZHRoPyhlLndweD1ndChlLndpZHRoKSxlLndjaD1tdChlLndweCksZS5NRFc9c3IpOmUud3B4PyhlLndjaD1tdChlLndweCksZS53aWR0aD1xdChlLndjaCksZS5NRFc9c3IpOnR5cGVvZiBlLndjaD09Im51bWJlciImJihlLndpZHRoPXF0KGUud2NoKSxlLndweD1ndChlLndpZHRoKSxlLk1EVz1zciksZS5jdXN0b21XaWR0aCYmZGVsZXRlIGUuY3VzdG9tV2lkdGh9dmFyIHhsPTk2LGdzPXhsO2Z1bmN0aW9uIG1zKGUpe3JldHVybiBlKjk2L2dzfWZ1bmN0aW9uIFZhKGUpe3JldHVybiBlKmdzLzk2fXZhciBkbD17Tm9uZToibm9uZSIsU29saWQ6InNvbGlkIixHcmF5NTA6Im1lZGl1bUdyYXkiLEdyYXk3NToiZGFya0dyYXkiLEdyYXkyNToibGlnaHRHcmF5IixIb3J6U3RyaXBlOiJkYXJrSG9yaXpvbnRhbCIsVmVydFN0cmlwZToiZGFya1ZlcnRpY2FsIixSZXZlcnNlRGlhZ1N0cmlwZToiZGFya0Rvd24iLERpYWdTdHJpcGU6ImRhcmtVcCIsRGlhZ0Nyb3NzOiJkYXJrR3JpZCIsVGhpY2tEaWFnQ3Jvc3M6ImRhcmtUcmVsbGlzIixUaGluSG9yelN0cmlwZToibGlnaHRIb3Jpem9udGFsIixUaGluVmVydFN0cmlwZToibGlnaHRWZXJ0aWNhbCIsVGhpblJldmVyc2VEaWFnU3RyaXBlOiJsaWdodERvd24iLFRoaW5Ib3J6Q3Jvc3M6ImxpZ2h0R3JpZCJ9O2Z1bmN0aW9uIHZsKGUsYSxyLG4pe2EuQm9yZGVycz1bXTt2YXIgdD17fSxzPSExOyhlWzBdLm1hdGNoKEtlKXx8W10pLmZvckVhY2goZnVuY3Rpb24oaSl7dmFyIGM9b2UoaSk7c3dpdGNoKENyKGNbMF0pKXtjYXNlIjxib3JkZXJzIjpjYXNlIjxib3JkZXJzPiI6Y2FzZSI8L2JvcmRlcnM+IjpicmVhaztjYXNlIjxib3JkZXIiOmNhc2UiPGJvcmRlcj4iOmNhc2UiPGJvcmRlci8+Ijp0PXt9LGMuZGlhZ29uYWxVcCYmKHQuZGlhZ29uYWxVcD1TZShjLmRpYWdvbmFsVXApKSxjLmRpYWdvbmFsRG93biYmKHQuZGlhZ29uYWxEb3duPVNlKGMuZGlhZ29uYWxEb3duKSksYS5Cb3JkZXJzLnB1c2godCk7YnJlYWs7Y2FzZSI8L2JvcmRlcj4iOmJyZWFrO2Nhc2UiPGxlZnQvPiI6YnJlYWs7Y2FzZSI8bGVmdCI6Y2FzZSI8bGVmdD4iOmJyZWFrO2Nhc2UiPC9sZWZ0PiI6YnJlYWs7Y2FzZSI8cmlnaHQvPiI6YnJlYWs7Y2FzZSI8cmlnaHQiOmNhc2UiPHJpZ2h0PiI6YnJlYWs7Y2FzZSI8L3JpZ2h0PiI6YnJlYWs7Y2FzZSI8dG9wLz4iOmJyZWFrO2Nhc2UiPHRvcCI6Y2FzZSI8dG9wPiI6YnJlYWs7Y2FzZSI8L3RvcD4iOmJyZWFrO2Nhc2UiPGJvdHRvbS8+IjpicmVhaztjYXNlIjxib3R0b20iOmNhc2UiPGJvdHRvbT4iOmJyZWFrO2Nhc2UiPC9ib3R0b20+IjpicmVhaztjYXNlIjxkaWFnb25hbCI6Y2FzZSI8ZGlhZ29uYWw+IjpjYXNlIjxkaWFnb25hbC8+IjpicmVhaztjYXNlIjwvZGlhZ29uYWw+IjpicmVhaztjYXNlIjxob3Jpem9udGFsIjpjYXNlIjxob3Jpem9udGFsPiI6Y2FzZSI8aG9yaXpvbnRhbC8+IjpicmVhaztjYXNlIjwvaG9yaXpvbnRhbD4iOmJyZWFrO2Nhc2UiPHZlcnRpY2FsIjpjYXNlIjx2ZXJ0aWNhbD4iOmNhc2UiPHZlcnRpY2FsLz4iOmJyZWFrO2Nhc2UiPC92ZXJ0aWNhbD4iOmJyZWFrO2Nhc2UiPHN0YXJ0IjpjYXNlIjxzdGFydD4iOmNhc2UiPHN0YXJ0Lz4iOmJyZWFrO2Nhc2UiPC9zdGFydD4iOmJyZWFrO2Nhc2UiPGVuZCI6Y2FzZSI8ZW5kPiI6Y2FzZSI8ZW5kLz4iOmJyZWFrO2Nhc2UiPC9lbmQ+IjpicmVhaztjYXNlIjxjb2xvciI6Y2FzZSI8Y29sb3I+IjpicmVhaztjYXNlIjxjb2xvci8+IjpjYXNlIjwvY29sb3I+IjpicmVhaztjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRMc3Q+IjpicmVhaztjYXNlIjxleHQiOnM9ITA7YnJlYWs7Y2FzZSI8L2V4dD4iOnM9ITE7YnJlYWs7ZGVmYXVsdDppZihuJiZuLldURiYmIXMpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitjWzBdKyIgaW4gYm9yZGVycyIpfX0pfWZ1bmN0aW9uIHBsKGUsYSxyLG4pe2EuRmlsbHM9W107dmFyIHQ9e30scz0hMTsoZVswXS5tYXRjaChLZSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3ZhciBjPW9lKGkpO3N3aXRjaChDcihjWzBdKSl7Y2FzZSI8ZmlsbHMiOmNhc2UiPGZpbGxzPiI6Y2FzZSI8L2ZpbGxzPiI6YnJlYWs7Y2FzZSI8ZmlsbD4iOmNhc2UiPGZpbGwiOmNhc2UiPGZpbGwvPiI6dD17fSxhLkZpbGxzLnB1c2godCk7YnJlYWs7Y2FzZSI8L2ZpbGw+IjpicmVhaztjYXNlIjxncmFkaWVudEZpbGw+IjpicmVhaztjYXNlIjxncmFkaWVudEZpbGwiOmNhc2UiPC9ncmFkaWVudEZpbGw+IjphLkZpbGxzLnB1c2godCksdD17fTticmVhaztjYXNlIjxwYXR0ZXJuRmlsbCI6Y2FzZSI8cGF0dGVybkZpbGw+IjpjLnBhdHRlcm5UeXBlJiYodC5wYXR0ZXJuVHlwZT1jLnBhdHRlcm5UeXBlKTticmVhaztjYXNlIjxwYXR0ZXJuRmlsbC8+IjpjYXNlIjwvcGF0dGVybkZpbGw+IjpicmVhaztjYXNlIjxiZ0NvbG9yIjp0LmJnQ29sb3J8fCh0LmJnQ29sb3I9e30pLGMuaW5kZXhlZCYmKHQuYmdDb2xvci5pbmRleGVkPXBhcnNlSW50KGMuaW5kZXhlZCwxMCkpLGMudGhlbWUmJih0LmJnQ29sb3IudGhlbWU9cGFyc2VJbnQoYy50aGVtZSwxMCkpLGMudGludCYmKHQuYmdDb2xvci50aW50PXBhcnNlRmxvYXQoYy50aW50KSksYy5yZ2ImJih0LmJnQ29sb3IucmdiPWMucmdiLnNsaWNlKC02KSk7YnJlYWs7Y2FzZSI8YmdDb2xvci8+IjpjYXNlIjwvYmdDb2xvcj4iOmJyZWFrO2Nhc2UiPGZnQ29sb3IiOnQuZmdDb2xvcnx8KHQuZmdDb2xvcj17fSksYy50aGVtZSYmKHQuZmdDb2xvci50aGVtZT1wYXJzZUludChjLnRoZW1lLDEwKSksYy50aW50JiYodC5mZ0NvbG9yLnRpbnQ9cGFyc2VGbG9hdChjLnRpbnQpKSxjLnJnYiE9bnVsbCYmKHQuZmdDb2xvci5yZ2I9Yy5yZ2Iuc2xpY2UoLTYpKTticmVhaztjYXNlIjxmZ0NvbG9yLz4iOmNhc2UiPC9mZ0NvbG9yPiI6YnJlYWs7Y2FzZSI8c3RvcCI6Y2FzZSI8c3RvcC8+IjpicmVhaztjYXNlIjwvc3RvcD4iOmJyZWFrO2Nhc2UiPGNvbG9yIjpjYXNlIjxjb2xvci8+IjpicmVhaztjYXNlIjwvY29sb3I+IjpicmVhaztjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRMc3Q+IjpicmVhaztjYXNlIjxleHQiOnM9ITA7YnJlYWs7Y2FzZSI8L2V4dD4iOnM9ITE7YnJlYWs7ZGVmYXVsdDppZihuJiZuLldURiYmIXMpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitjWzBdKyIgaW4gZmlsbHMiKX19KX1mdW5jdGlvbiBnbChlLGEscixuKXthLkZvbnRzPVtdO3ZhciB0PXt9LHM9ITE7KGVbMF0ubWF0Y2goS2UpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihpKXt2YXIgYz1vZShpKTtzd2l0Y2goQ3IoY1swXSkpe2Nhc2UiPGZvbnRzIjpjYXNlIjxmb250cz4iOmNhc2UiPC9mb250cz4iOmJyZWFrO2Nhc2UiPGZvbnQiOmNhc2UiPGZvbnQ+IjpicmVhaztjYXNlIjwvZm9udD4iOmNhc2UiPGZvbnQvPiI6YS5Gb250cy5wdXNoKHQpLHQ9e307YnJlYWs7Y2FzZSI8bmFtZSI6Yy52YWwmJih0Lm5hbWU9QWUoYy52YWwpKTticmVhaztjYXNlIjxuYW1lLz4iOmNhc2UiPC9uYW1lPiI6YnJlYWs7Y2FzZSI8YiI6dC5ib2xkPWMudmFsP1NlKGMudmFsKToxO2JyZWFrO2Nhc2UiPGIvPiI6dC5ib2xkPTE7YnJlYWs7Y2FzZSI8aSI6dC5pdGFsaWM9Yy52YWw/U2UoYy52YWwpOjE7YnJlYWs7Y2FzZSI8aS8+Ijp0Lml0YWxpYz0xO2JyZWFrO2Nhc2UiPHUiOnN3aXRjaChjLnZhbCl7Y2FzZSJub25lIjp0LnVuZGVybGluZT0wO2JyZWFrO2Nhc2Uic2luZ2xlIjp0LnVuZGVybGluZT0xO2JyZWFrO2Nhc2UiZG91YmxlIjp0LnVuZGVybGluZT0yO2JyZWFrO2Nhc2Uic2luZ2xlQWNjb3VudGluZyI6dC51bmRlcmxpbmU9MzM7YnJlYWs7Y2FzZSJkb3VibGVBY2NvdW50aW5nIjp0LnVuZGVybGluZT0zNDticmVha31icmVhaztjYXNlIjx1Lz4iOnQudW5kZXJsaW5lPTE7YnJlYWs7Y2FzZSI8c3RyaWtlIjp0LnN0cmlrZT1jLnZhbD9TZShjLnZhbCk6MTticmVhaztjYXNlIjxzdHJpa2UvPiI6dC5zdHJpa2U9MTticmVhaztjYXNlIjxvdXRsaW5lIjp0Lm91dGxpbmU9Yy52YWw/U2UoYy52YWwpOjE7YnJlYWs7Y2FzZSI8b3V0bGluZS8+Ijp0Lm91dGxpbmU9MTticmVhaztjYXNlIjxzaGFkb3ciOnQuc2hhZG93PWMudmFsP1NlKGMudmFsKToxO2JyZWFrO2Nhc2UiPHNoYWRvdy8+Ijp0LnNoYWRvdz0xO2JyZWFrO2Nhc2UiPGNvbmRlbnNlIjp0LmNvbmRlbnNlPWMudmFsP1NlKGMudmFsKToxO2JyZWFrO2Nhc2UiPGNvbmRlbnNlLz4iOnQuY29uZGVuc2U9MTticmVhaztjYXNlIjxleHRlbmQiOnQuZXh0ZW5kPWMudmFsP1NlKGMudmFsKToxO2JyZWFrO2Nhc2UiPGV4dGVuZC8+Ijp0LmV4dGVuZD0xO2JyZWFrO2Nhc2UiPHN6IjpjLnZhbCYmKHQuc3o9K2MudmFsKTticmVhaztjYXNlIjxzei8+IjpjYXNlIjwvc3o+IjpicmVhaztjYXNlIjx2ZXJ0QWxpZ24iOmMudmFsJiYodC52ZXJ0QWxpZ249Yy52YWwpO2JyZWFrO2Nhc2UiPHZlcnRBbGlnbi8+IjpjYXNlIjwvdmVydEFsaWduPiI6YnJlYWs7Y2FzZSI8ZmFtaWx5IjpjLnZhbCYmKHQuZmFtaWx5PXBhcnNlSW50KGMudmFsLDEwKSk7YnJlYWs7Y2FzZSI8ZmFtaWx5Lz4iOmNhc2UiPC9mYW1pbHk+IjpicmVhaztjYXNlIjxzY2hlbWUiOmMudmFsJiYodC5zY2hlbWU9Yy52YWwpO2JyZWFrO2Nhc2UiPHNjaGVtZS8+IjpjYXNlIjwvc2NoZW1lPiI6YnJlYWs7Y2FzZSI8Y2hhcnNldCI6aWYoYy52YWw9PSIxIilicmVhaztjLmNvZGVwYWdlPVN0W3BhcnNlSW50KGMudmFsLDEwKV07YnJlYWs7Y2FzZSI8Y29sb3IiOmlmKHQuY29sb3J8fCh0LmNvbG9yPXt9KSxjLmF1dG8mJih0LmNvbG9yLmF1dG89U2UoYy5hdXRvKSksYy5yZ2IpdC5jb2xvci5yZ2I9Yy5yZ2Iuc2xpY2UoLTYpO2Vsc2UgaWYoYy5pbmRleGVkKXt0LmNvbG9yLmluZGV4PXBhcnNlSW50KGMuaW5kZXhlZCwxMCk7dmFyIGY9c2FbdC5jb2xvci5pbmRleF07dC5jb2xvci5pbmRleD09ODEmJihmPXNhWzFdKSxmfHwoZj1zYVsxXSksdC5jb2xvci5yZ2I9ZlswXS50b1N0cmluZygxNikrZlsxXS50b1N0cmluZygxNikrZlsyXS50b1N0cmluZygxNil9ZWxzZSBjLnRoZW1lJiYodC5jb2xvci50aGVtZT1wYXJzZUludChjLnRoZW1lLDEwKSxjLnRpbnQmJih0LmNvbG9yLnRpbnQ9cGFyc2VGbG9hdChjLnRpbnQpKSxjLnRoZW1lJiZyLnRoZW1lRWxlbWVudHMmJnIudGhlbWVFbGVtZW50cy5jbHJTY2hlbWUmJih0LmNvbG9yLnJnYj1wdChyLnRoZW1lRWxlbWVudHMuY2xyU2NoZW1lW3QuY29sb3IudGhlbWVdLnJnYix0LmNvbG9yLnRpbnR8fDApKSk7YnJlYWs7Y2FzZSI8Y29sb3IvPiI6Y2FzZSI8L2NvbG9yPiI6YnJlYWs7Y2FzZSI8QWx0ZXJuYXRlQ29udGVudCI6cz0hMDticmVhaztjYXNlIjwvQWx0ZXJuYXRlQ29udGVudD4iOnM9ITE7YnJlYWs7Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6YnJlYWs7Y2FzZSI8ZXh0IjpzPSEwO2JyZWFrO2Nhc2UiPC9leHQ+IjpzPSExO2JyZWFrO2RlZmF1bHQ6aWYobiYmbi5XVEYmJiFzKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIrY1swXSsiIGluIGZvbnRzIil9fSl9ZnVuY3Rpb24gbWwoZSxhLHIpe2EuTnVtYmVyRm10PVtdO2Zvcih2YXIgbj1TcihkZSksdD0wO3Q8bi5sZW5ndGg7Kyt0KWEuTnVtYmVyRm10W25bdF1dPWRlW25bdF1dO3ZhciBzPWVbMF0ubWF0Y2goS2UpO2lmKHMpZm9yKHQ9MDt0PHMubGVuZ3RoOysrdCl7dmFyIGk9b2Uoc1t0XSk7c3dpdGNoKENyKGlbMF0pKXtjYXNlIjxudW1GbXRzIjpjYXNlIjwvbnVtRm10cz4iOmNhc2UiPG51bUZtdHMvPiI6Y2FzZSI8bnVtRm10cz4iOmJyZWFrO2Nhc2UiPG51bUZtdCI6e3ZhciBjPUVlKEFlKGkuZm9ybWF0Q29kZSkpLGY9cGFyc2VJbnQoaS5udW1GbXRJZCwxMCk7aWYoYS5OdW1iZXJGbXRbZl09YyxmPjApe2lmKGY+MzkyKXtmb3IoZj0zOTI7Zj42MCYmYS5OdW1iZXJGbXRbZl0hPW51bGw7LS1mKTthLk51bWJlckZtdFtmXT1jfWVhKGMsZil9fWJyZWFrO2Nhc2UiPC9udW1GbXQ+IjpicmVhaztkZWZhdWx0OmlmKHIuV1RGKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIraVswXSsiIGluIG51bUZtdHMiKX19fXZhciBfdD1bIm51bUZtdElkIiwiZmlsbElkIiwiZm9udElkIiwiYm9yZGVySWQiLCJ4ZklkIl0sRXQ9WyJhcHBseUFsaWdubWVudCIsImFwcGx5Qm9yZGVyIiwiYXBwbHlGaWxsIiwiYXBwbHlGb250IiwiYXBwbHlOdW1iZXJGb3JtYXQiLCJhcHBseVByb3RlY3Rpb24iLCJwaXZvdEJ1dHRvbiIsInF1b3RlUHJlZml4Il07ZnVuY3Rpb24gX2woZSxhLHIpe2EuQ2VsbFhmPVtdO3ZhciBuLHQ9ITE7KGVbMF0ubWF0Y2goS2UpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihzKXt2YXIgaT1vZShzKSxjPTA7c3dpdGNoKENyKGlbMF0pKXtjYXNlIjxjZWxsWGZzIjpjYXNlIjxjZWxsWGZzPiI6Y2FzZSI8Y2VsbFhmcy8+IjpjYXNlIjwvY2VsbFhmcz4iOmJyZWFrO2Nhc2UiPHhmIjpjYXNlIjx4Zi8+Ijpmb3Iobj1pLGRlbGV0ZSBuWzBdLGM9MDtjPF90Lmxlbmd0aDsrK2MpbltfdFtjXV0mJihuW190W2NdXT1wYXJzZUludChuW190W2NdXSwxMCkpO2ZvcihjPTA7YzxFdC5sZW5ndGg7KytjKW5bRXRbY11dJiYobltFdFtjXV09U2UobltFdFtjXV0pKTtpZihhLk51bWJlckZtdCYmbi5udW1GbXRJZD4zOTIpe2ZvcihjPTM5MjtjPjYwOy0tYylpZihhLk51bWJlckZtdFtuLm51bUZtdElkXT09YS5OdW1iZXJGbXRbY10pe24ubnVtRm10SWQ9YzticmVha319YS5DZWxsWGYucHVzaChuKTticmVhaztjYXNlIjwveGY+IjpicmVhaztjYXNlIjxhbGlnbm1lbnQiOmNhc2UiPGFsaWdubWVudC8+Ijp2YXIgZj17fTtpLnZlcnRpY2FsJiYoZi52ZXJ0aWNhbD1pLnZlcnRpY2FsKSxpLmhvcml6b250YWwmJihmLmhvcml6b250YWw9aS5ob3Jpem9udGFsKSxpLnRleHRSb3RhdGlvbiE9bnVsbCYmKGYudGV4dFJvdGF0aW9uPWkudGV4dFJvdGF0aW9uKSxpLmluZGVudCYmKGYuaW5kZW50PWkuaW5kZW50KSxpLndyYXBUZXh0JiYoZi53cmFwVGV4dD1TZShpLndyYXBUZXh0KSksbi5hbGlnbm1lbnQ9ZjticmVhaztjYXNlIjwvYWxpZ25tZW50PiI6YnJlYWs7Y2FzZSI8cHJvdGVjdGlvbiI6YnJlYWs7Y2FzZSI8L3Byb3RlY3Rpb24+IjpjYXNlIjxwcm90ZWN0aW9uLz4iOmJyZWFrO2Nhc2UiPEFsdGVybmF0ZUNvbnRlbnQiOnQ9ITA7YnJlYWs7Y2FzZSI8L0FsdGVybmF0ZUNvbnRlbnQ+Ijp0PSExO2JyZWFrO2Nhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4dExzdD4iOmJyZWFrO2Nhc2UiPGV4dCI6dD0hMDticmVhaztjYXNlIjwvZXh0PiI6dD0hMTticmVhaztkZWZhdWx0OmlmKHImJnIuV1RGJiYhdCl0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK2lbMF0rIiBpbiBjZWxsWGZzIil9fSl9dmFyIEVsPWZ1bmN0aW9uKCl7dmFyIGE9LzwoPzpcdys6KT9udW1GbXRzKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP251bUZtdHM+LyxyPS88KD86XHcrOik/Y2VsbFhmcyhbXj5dKik+W1xTXHNdKj88XC8oPzpcdys6KT9jZWxsWGZzPi8sbj0vPCg/Olx3KzopP2ZpbGxzKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP2ZpbGxzPi8sdD0vPCg/Olx3KzopP2ZvbnRzKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP2ZvbnRzPi8scz0vPCg/Olx3KzopP2JvcmRlcnMoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/Ym9yZGVycz4vO3JldHVybiBmdW5jdGlvbihjLGYsbyl7dmFyIGw9e307aWYoIWMpcmV0dXJuIGw7Yz1jLnJlcGxhY2UoLzwhLS0oW1xzXFNdKj8pLS0+L21nLCIiKS5yZXBsYWNlKC88IURPQ1RZUEVbXlxbXSpcW1teXF1dKlxdPi9nbSwiIik7dmFyIGg7cmV0dXJuKGg9Yy5tYXRjaChhKSkmJm1sKGgsbCxvKSwoaD1jLm1hdGNoKHQpKSYmZ2woaCxsLGYsbyksKGg9Yy5tYXRjaChuKSkmJnBsKGgsbCxmLG8pLChoPWMubWF0Y2gocykpJiZ2bChoLGwsZixvKSwoaD1jLm1hdGNoKHIpKSYmX2woaCxsLG8pLGx9fSgpO2Z1bmN0aW9uIFRsKGUsYSl7dmFyIHI9ZS5yZWFkX3NoaWZ0KDIpLG49amUoZSk7cmV0dXJuW3Isbl19ZnVuY3Rpb24ga2woZSxhLHIpe3ZhciBuPXt9O24uc3o9ZS5yZWFkX3NoaWZ0KDIpLzIwO3ZhciB0PU9jKGUpO3QuZkl0YWxpYyYmKG4uaXRhbGljPTEpLHQuZkNvbmRlbnNlJiYobi5jb25kZW5zZT0xKSx0LmZFeHRlbmQmJihuLmV4dGVuZD0xKSx0LmZTaGFkb3cmJihuLnNoYWRvdz0xKSx0LmZPdXRsaW5lJiYobi5vdXRsaW5lPTEpLHQuZlN0cmlrZW91dCYmKG4uc3RyaWtlPTEpO3ZhciBzPWUucmVhZF9zaGlmdCgyKTtzd2l0Y2gocz09PTcwMCYmKG4uYm9sZD0xKSxlLnJlYWRfc2hpZnQoMikpe2Nhc2UgMTpuLnZlcnRBbGlnbj0ic3VwZXJzY3JpcHQiO2JyZWFrO2Nhc2UgMjpuLnZlcnRBbGlnbj0ic3Vic2NyaXB0IjticmVha312YXIgaT1lLnJlYWRfc2hpZnQoMSk7aSE9MCYmKG4udW5kZXJsaW5lPWkpO3ZhciBjPWUucmVhZF9zaGlmdCgxKTtjPjAmJihuLmZhbWlseT1jKTt2YXIgZj1lLnJlYWRfc2hpZnQoMSk7c3dpdGNoKGY+MCYmKG4uY2hhcnNldD1mKSxlLmwrKyxuLmNvbG9yPURjKGUpLGUucmVhZF9zaGlmdCgxKSl7Y2FzZSAxOm4uc2NoZW1lPSJtYWpvciI7YnJlYWs7Y2FzZSAyOm4uc2NoZW1lPSJtaW5vciI7YnJlYWt9cmV0dXJuIG4ubmFtZT1qZShlKSxufXZhciB3bD1ZZTtmdW5jdGlvbiBBbChlLGEpe3ZhciByPWUubCthLG49ZS5yZWFkX3NoaWZ0KDIpLHQ9ZS5yZWFkX3NoaWZ0KDIpO3JldHVybiBlLmw9cix7aXhmZTpuLG51bUZtdElkOnR9fXZhciBGbD1ZZTtmdW5jdGlvbiBTbChlLGEscil7dmFyIG49e307bi5OdW1iZXJGbXQ9W107Zm9yKHZhciB0IGluIGRlKW4uTnVtYmVyRm10W3RdPWRlW3RdO24uQ2VsbFhmPVtdLG4uRm9udHM9W107dmFyIHM9W10saT0hMTtyZXR1cm4gUHIoZSxmdW5jdGlvbihmLG8sbCl7c3dpdGNoKGwpe2Nhc2UgNDQ6bi5OdW1iZXJGbXRbZlswXV09ZlsxXSxlYShmWzFdLGZbMF0pO2JyZWFrO2Nhc2UgNDM6bi5Gb250cy5wdXNoKGYpLGYuY29sb3IudGhlbWUhPW51bGwmJmEmJmEudGhlbWVFbGVtZW50cyYmYS50aGVtZUVsZW1lbnRzLmNsclNjaGVtZSYmKGYuY29sb3IucmdiPXB0KGEudGhlbWVFbGVtZW50cy5jbHJTY2hlbWVbZi5jb2xvci50aGVtZV0ucmdiLGYuY29sb3IudGludHx8MCkpO2JyZWFrO2Nhc2UgMTAyNTpicmVhaztjYXNlIDQ1OmJyZWFrO2Nhc2UgNDY6YnJlYWs7Y2FzZSA0NzpzW3MubGVuZ3RoLTFdPT02MTcmJm4uQ2VsbFhmLnB1c2goZik7YnJlYWs7Y2FzZSA0ODpjYXNlIDUwNzpjYXNlIDU3MjpjYXNlIDQ3NTpicmVhaztjYXNlIDExNzE6Y2FzZSAyMTAyOmNhc2UgMTEzMDpjYXNlIDUxMjpjYXNlIDIwOTU6Y2FzZSAzMDcyOmJyZWFrO2Nhc2UgMzU6aT0hMDticmVhaztjYXNlIDM2Omk9ITE7YnJlYWs7Y2FzZSAzNzpzLnB1c2gobCksaT0hMDticmVhaztjYXNlIDM4OnMucG9wKCksaT0hMTticmVhaztkZWZhdWx0OmlmKG8uVD4wKXMucHVzaChsKTtlbHNlIGlmKG8uVDwwKXMucG9wKCk7ZWxzZSBpZighaXx8ci5XVEYmJnNbcy5sZW5ndGgtMV0hPTM3KXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCByZWNvcmQgMHgiK2wudG9TdHJpbmcoMTYpKX19KSxufXZhciBDbD1bIjwvYTpsdDE+IiwiPC9hOmRrMT4iLCI8L2E6bHQyPiIsIjwvYTpkazI+IiwiPC9hOmFjY2VudDE+IiwiPC9hOmFjY2VudDI+IiwiPC9hOmFjY2VudDM+IiwiPC9hOmFjY2VudDQ+IiwiPC9hOmFjY2VudDU+IiwiPC9hOmFjY2VudDY+IiwiPC9hOmhsaW5rPiIsIjwvYTpmb2xIbGluaz4iXTtmdW5jdGlvbiB5bChlLGEscil7YS50aGVtZUVsZW1lbnRzLmNsclNjaGVtZT1bXTt2YXIgbj17fTsoZVswXS5tYXRjaChLZSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBzPW9lKHQpO3N3aXRjaChzWzBdKXtjYXNlIjxhOmNsclNjaGVtZSI6Y2FzZSI8L2E6Y2xyU2NoZW1lPiI6YnJlYWs7Y2FzZSI8YTpzcmdiQ2xyIjpuLnJnYj1zLnZhbDticmVhaztjYXNlIjxhOnN5c0NsciI6bi5yZ2I9cy5sYXN0Q2xyO2JyZWFrO2Nhc2UiPGE6ZGsxPiI6Y2FzZSI8L2E6ZGsxPiI6Y2FzZSI8YTpsdDE+IjpjYXNlIjwvYTpsdDE+IjpjYXNlIjxhOmRrMj4iOmNhc2UiPC9hOmRrMj4iOmNhc2UiPGE6bHQyPiI6Y2FzZSI8L2E6bHQyPiI6Y2FzZSI8YTphY2NlbnQxPiI6Y2FzZSI8L2E6YWNjZW50MT4iOmNhc2UiPGE6YWNjZW50Mj4iOmNhc2UiPC9hOmFjY2VudDI+IjpjYXNlIjxhOmFjY2VudDM+IjpjYXNlIjwvYTphY2NlbnQzPiI6Y2FzZSI8YTphY2NlbnQ0PiI6Y2FzZSI8L2E6YWNjZW50ND4iOmNhc2UiPGE6YWNjZW50NT4iOmNhc2UiPC9hOmFjY2VudDU+IjpjYXNlIjxhOmFjY2VudDY+IjpjYXNlIjwvYTphY2NlbnQ2PiI6Y2FzZSI8YTpobGluaz4iOmNhc2UiPC9hOmhsaW5rPiI6Y2FzZSI8YTpmb2xIbGluaz4iOmNhc2UiPC9hOmZvbEhsaW5rPiI6c1swXS5jaGFyQXQoMSk9PT0iLyI/KGEudGhlbWVFbGVtZW50cy5jbHJTY2hlbWVbQ2wuaW5kZXhPZihzWzBdKV09bixuPXt9KTpuLm5hbWU9c1swXS5zbGljZSgzLHNbMF0ubGVuZ3RoLTEpO2JyZWFrO2RlZmF1bHQ6aWYociYmci5XVEYpdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgIitzWzBdKyIgaW4gY2xyU2NoZW1lIil9fSl9ZnVuY3Rpb24gRGwoKXt9ZnVuY3Rpb24gT2woKXt9dmFyIFJsPS88YTpjbHJTY2hlbWUoW14+XSopPltcc1xTXSo8XC9hOmNsclNjaGVtZT4vLElsPS88YTpmb250U2NoZW1lKFtePl0qKT5bXHNcU10qPFwvYTpmb250U2NoZW1lPi8sTmw9LzxhOmZtdFNjaGVtZShbXj5dKik+W1xzXFNdKjxcL2E6Zm10U2NoZW1lPi87ZnVuY3Rpb24gUGwoZSxhLHIpe2EudGhlbWVFbGVtZW50cz17fTt2YXIgbjtbWyJjbHJTY2hlbWUiLFJsLHlsXSxbImZvbnRTY2hlbWUiLElsLERsXSxbImZtdFNjaGVtZSIsTmwsT2xdXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKCEobj1lLm1hdGNoKHRbMV0pKSl0aHJvdyBuZXcgRXJyb3IodFswXSsiIG5vdCBmb3VuZCBpbiB0aGVtZUVsZW1lbnRzIik7dFsyXShuLGEscil9KX12YXIgTGw9LzxhOnRoZW1lRWxlbWVudHMoW14+XSopPltcc1xTXSo8XC9hOnRoZW1lRWxlbWVudHM+LztmdW5jdGlvbiBfcyhlLGEpeyghZXx8ZS5sZW5ndGg9PT0wKSYmKGU9TWwoKSk7dmFyIHIsbj17fTtpZighKHI9ZS5tYXRjaChMbCkpKXRocm93IG5ldyBFcnJvcigidGhlbWVFbGVtZW50cyBub3QgZm91bmQgaW4gdGhlbWUiKTtyZXR1cm4gUGwoclswXSxuLGEpLG4ucmF3PWUsbn1mdW5jdGlvbiBNbChlLGEpe3ZhciByPVt0bl07cmV0dXJuIHJbci5sZW5ndGhdPSc8YTp0aGVtZSB4bWxuczphPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvZHJhd2luZ21sLzIwMDYvbWFpbiIgbmFtZT0iT2ZmaWNlIFRoZW1lIj4nLHJbci5sZW5ndGhdPSI8YTp0aGVtZUVsZW1lbnRzPiIscltyLmxlbmd0aF09JzxhOmNsclNjaGVtZSBuYW1lPSJPZmZpY2UiPicscltyLmxlbmd0aF09JzxhOmRrMT48YTpzeXNDbHIgdmFsPSJ3aW5kb3dUZXh0IiBsYXN0Q2xyPSIwMDAwMDAiLz48L2E6ZGsxPicscltyLmxlbmd0aF09JzxhOmx0MT48YTpzeXNDbHIgdmFsPSJ3aW5kb3ciIGxhc3RDbHI9IkZGRkZGRiIvPjwvYTpsdDE+JyxyW3IubGVuZ3RoXT0nPGE6ZGsyPjxhOnNyZ2JDbHIgdmFsPSIxRjQ5N0QiLz48L2E6ZGsyPicscltyLmxlbmd0aF09JzxhOmx0Mj48YTpzcmdiQ2xyIHZhbD0iRUVFQ0UxIi8+PC9hOmx0Mj4nLHJbci5sZW5ndGhdPSc8YTphY2NlbnQxPjxhOnNyZ2JDbHIgdmFsPSI0RjgxQkQiLz48L2E6YWNjZW50MT4nLHJbci5sZW5ndGhdPSc8YTphY2NlbnQyPjxhOnNyZ2JDbHIgdmFsPSJDMDUwNEQiLz48L2E6YWNjZW50Mj4nLHJbci5sZW5ndGhdPSc8YTphY2NlbnQzPjxhOnNyZ2JDbHIgdmFsPSI5QkJCNTkiLz48L2E6YWNjZW50Mz4nLHJbci5sZW5ndGhdPSc8YTphY2NlbnQ0PjxhOnNyZ2JDbHIgdmFsPSI4MDY0QTIiLz48L2E6YWNjZW50ND4nLHJbci5sZW5ndGhdPSc8YTphY2NlbnQ1PjxhOnNyZ2JDbHIgdmFsPSI0QkFDQzYiLz48L2E6YWNjZW50NT4nLHJbci5sZW5ndGhdPSc8YTphY2NlbnQ2PjxhOnNyZ2JDbHIgdmFsPSJGNzk2NDYiLz48L2E6YWNjZW50Nj4nLHJbci5sZW5ndGhdPSc8YTpobGluaz48YTpzcmdiQ2xyIHZhbD0iMDAwMEZGIi8+PC9hOmhsaW5rPicscltyLmxlbmd0aF09JzxhOmZvbEhsaW5rPjxhOnNyZ2JDbHIgdmFsPSI4MDAwODAiLz48L2E6Zm9sSGxpbms+JyxyW3IubGVuZ3RoXT0iPC9hOmNsclNjaGVtZT4iLHJbci5sZW5ndGhdPSc8YTpmb250U2NoZW1lIG5hbWU9Ik9mZmljZSI+JyxyW3IubGVuZ3RoXT0iPGE6bWFqb3JGb250PiIscltyLmxlbmd0aF09JzxhOmxhdGluIHR5cGVmYWNlPSJDYW1icmlhIi8+JyxyW3IubGVuZ3RoXT0nPGE6ZWEgdHlwZWZhY2U9IiIvPicscltyLmxlbmd0aF09JzxhOmNzIHR5cGVmYWNlPSIiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSnBhbiIgdHlwZWZhY2U9Iu+8re+8syDvvLDjgrTjgrfjg4Pjgq8iLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSGFuZyIgdHlwZWZhY2U9IuunkeydgCDqs6DrlJUiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSGFucyIgdHlwZWZhY2U9IuWui+S9kyIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJIYW50IiB0eXBlZmFjZT0i5paw57Sw5piO6auUIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkFyYWIiIHR5cGVmYWNlPSJUaW1lcyBOZXcgUm9tYW4iLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSGViciIgdHlwZWZhY2U9IlRpbWVzIE5ldyBSb21hbiIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUaGFpIiB0eXBlZmFjZT0iVGFob21hIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkV0aGkiIHR5cGVmYWNlPSJOeWFsYSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJCZW5nIiB0eXBlZmFjZT0iVnJpbmRhIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ikd1anIiIHR5cGVmYWNlPSJTaHJ1dGkiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iS2htciIgdHlwZWZhY2U9Ik1vb2xCb3JhbiIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJLbmRhIiB0eXBlZmFjZT0iVHVuZ2EiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iR3VydSIgdHlwZWZhY2U9IlJhYXZpIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkNhbnMiIHR5cGVmYWNlPSJFdXBoZW1pYSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJDaGVyIiB0eXBlZmFjZT0iUGxhbnRhZ2VuZXQgQ2hlcm9rZWUiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iWWlpaSIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBZaSBCYWl0aSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUaWJ0IiB0eXBlZmFjZT0iTWljcm9zb2Z0IEhpbWFsYXlhIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlRoYWEiIHR5cGVmYWNlPSJNViBCb2xpIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkRldmEiIHR5cGVmYWNlPSJNYW5nYWwiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGVsdSIgdHlwZWZhY2U9IkdhdXRhbWkiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGFtbCIgdHlwZWZhY2U9IkxhdGhhIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlN5cmMiIHR5cGVmYWNlPSJFc3RyYW5nZWxvIEVkZXNzYSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJPcnlhIiB0eXBlZmFjZT0iS2FsaW5nYSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJNbHltIiB0eXBlZmFjZT0iS2FydGlrYSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJMYW9vIiB0eXBlZmFjZT0iRG9rQ2hhbXBhIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlNpbmgiIHR5cGVmYWNlPSJJc2tvb2xhIFBvdGEiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iTW9uZyIgdHlwZWZhY2U9Ik1vbmdvbGlhbiBCYWl0aSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJWaWV0IiB0eXBlZmFjZT0iVGltZXMgTmV3IFJvbWFuIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlVpZ2giIHR5cGVmYWNlPSJNaWNyb3NvZnQgVWlnaHVyIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ikdlb3IiIHR5cGVmYWNlPSJTeWxmYWVuIi8+JyxyW3IubGVuZ3RoXT0iPC9hOm1ham9yRm9udD4iLHJbci5sZW5ndGhdPSI8YTptaW5vckZvbnQ+IixyW3IubGVuZ3RoXT0nPGE6bGF0aW4gdHlwZWZhY2U9IkNhbGlicmkiLz4nLHJbci5sZW5ndGhdPSc8YTplYSB0eXBlZmFjZT0iIi8+JyxyW3IubGVuZ3RoXT0nPGE6Y3MgdHlwZWZhY2U9IiIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJKcGFuIiB0eXBlZmFjZT0i77yt77yzIO+8sOOCtOOCt+ODg+OCryIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJIYW5nIiB0eXBlZmFjZT0i66eR7J2AIOqzoOuUlSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJIYW5zIiB0eXBlZmFjZT0i5a6L5L2TIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkhhbnQiIHR5cGVmYWNlPSLmlrDntLDmmI7pq5QiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iQXJhYiIgdHlwZWZhY2U9IkFyaWFsIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkhlYnIiIHR5cGVmYWNlPSJBcmlhbCIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUaGFpIiB0eXBlZmFjZT0iVGFob21hIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkV0aGkiIHR5cGVmYWNlPSJOeWFsYSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJCZW5nIiB0eXBlZmFjZT0iVnJpbmRhIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ikd1anIiIHR5cGVmYWNlPSJTaHJ1dGkiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iS2htciIgdHlwZWZhY2U9IkRhdW5QZW5oIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IktuZGEiIHR5cGVmYWNlPSJUdW5nYSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJHdXJ1IiB0eXBlZmFjZT0iUmFhdmkiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iQ2FucyIgdHlwZWZhY2U9IkV1cGhlbWlhIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkNoZXIiIHR5cGVmYWNlPSJQbGFudGFnZW5ldCBDaGVyb2tlZSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJZaWlpIiB0eXBlZmFjZT0iTWljcm9zb2Z0IFlpIEJhaXRpIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlRpYnQiIHR5cGVmYWNlPSJNaWNyb3NvZnQgSGltYWxheWEiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGhhYSIgdHlwZWZhY2U9Ik1WIEJvbGkiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iRGV2YSIgdHlwZWZhY2U9Ik1hbmdhbCIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUZWx1IiB0eXBlZmFjZT0iR2F1dGFtaSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUYW1sIiB0eXBlZmFjZT0iTGF0aGEiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iU3lyYyIgdHlwZWZhY2U9IkVzdHJhbmdlbG8gRWRlc3NhIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ik9yeWEiIHR5cGVmYWNlPSJLYWxpbmdhIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ik1seW0iIHR5cGVmYWNlPSJLYXJ0aWthIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ikxhb28iIHR5cGVmYWNlPSJEb2tDaGFtcGEiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iU2luaCIgdHlwZWZhY2U9Iklza29vbGEgUG90YSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJNb25nIiB0eXBlZmFjZT0iTW9uZ29saWFuIEJhaXRpIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlZpZXQiIHR5cGVmYWNlPSJBcmlhbCIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJVaWdoIiB0eXBlZmFjZT0iTWljcm9zb2Z0IFVpZ2h1ciIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJHZW9yIiB0eXBlZmFjZT0iU3lsZmFlbiIvPicscltyLmxlbmd0aF09IjwvYTptaW5vckZvbnQ+IixyW3IubGVuZ3RoXT0iPC9hOmZvbnRTY2hlbWU+IixyW3IubGVuZ3RoXT0nPGE6Zm10U2NoZW1lIG5hbWU9Ik9mZmljZSI+JyxyW3IubGVuZ3RoXT0iPGE6ZmlsbFN0eWxlTHN0PiIscltyLmxlbmd0aF09JzxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPSJwaENsciIvPjwvYTpzb2xpZEZpbGw+JyxyW3IubGVuZ3RoXT0nPGE6Z3JhZEZpbGwgcm90V2l0aFNoYXBlPSIxIj4nLHJbci5sZW5ndGhdPSI8YTpnc0xzdD4iLHJbci5sZW5ndGhdPSc8YTpncyBwb3M9IjAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTp0aW50IHZhbD0iNTAwMDAiLz48YTpzYXRNb2QgdmFsPSIzMDAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLHJbci5sZW5ndGhdPSc8YTpncyBwb3M9IjM1MDAwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9IjM3MDAwIi8+PGE6c2F0TW9kIHZhbD0iMzAwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+JyxyW3IubGVuZ3RoXT0nPGE6Z3MgcG9zPSIxMDAwMDAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTp0aW50IHZhbD0iMTUwMDAiLz48YTpzYXRNb2QgdmFsPSIzNTAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLHJbci5sZW5ndGhdPSI8L2E6Z3NMc3Q+IixyW3IubGVuZ3RoXT0nPGE6bGluIGFuZz0iMTYyMDAwMDAiIHNjYWxlZD0iMSIvPicscltyLmxlbmd0aF09IjwvYTpncmFkRmlsbD4iLHJbci5sZW5ndGhdPSc8YTpncmFkRmlsbCByb3RXaXRoU2hhcGU9IjEiPicscltyLmxlbmd0aF09IjxhOmdzTHN0PiIscltyLmxlbmd0aF09JzxhOmdzIHBvcz0iMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSIxMDAwMDAiLz48YTpzaGFkZSB2YWw9IjEwMDAwMCIvPjxhOnNhdE1vZCB2YWw9IjEzMDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPicscltyLmxlbmd0aF09JzxhOmdzIHBvcz0iMTAwMDAwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9IjUwMDAwIi8+PGE6c2hhZGUgdmFsPSIxMDAwMDAiLz48YTpzYXRNb2QgdmFsPSIzNTAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLHJbci5sZW5ndGhdPSI8L2E6Z3NMc3Q+IixyW3IubGVuZ3RoXT0nPGE6bGluIGFuZz0iMTYyMDAwMDAiIHNjYWxlZD0iMCIvPicscltyLmxlbmd0aF09IjwvYTpncmFkRmlsbD4iLHJbci5sZW5ndGhdPSI8L2E6ZmlsbFN0eWxlTHN0PiIscltyLmxlbmd0aF09IjxhOmxuU3R5bGVMc3Q+IixyW3IubGVuZ3RoXT0nPGE6bG4gdz0iOTUyNSIgY2FwPSJmbGF0IiBjbXBkPSJzbmciIGFsZ249ImN0ciI+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTpzaGFkZSB2YWw9Ijk1MDAwIi8+PGE6c2F0TW9kIHZhbD0iMTA1MDAwIi8+PC9hOnNjaGVtZUNscj48L2E6c29saWRGaWxsPjxhOnByc3REYXNoIHZhbD0ic29saWQiLz48L2E6bG4+JyxyW3IubGVuZ3RoXT0nPGE6bG4gdz0iMjU0MDAiIGNhcD0iZmxhdCIgY21wZD0ic25nIiBhbGduPSJjdHIiPjxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPSJwaENsciIvPjwvYTpzb2xpZEZpbGw+PGE6cHJzdERhc2ggdmFsPSJzb2xpZCIvPjwvYTpsbj4nLHJbci5sZW5ndGhdPSc8YTpsbiB3PSIzODEwMCIgY2FwPSJmbGF0IiBjbXBkPSJzbmciIGFsZ249ImN0ciI+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIi8+PC9hOnNvbGlkRmlsbD48YTpwcnN0RGFzaCB2YWw9InNvbGlkIi8+PC9hOmxuPicscltyLmxlbmd0aF09IjwvYTpsblN0eWxlTHN0PiIscltyLmxlbmd0aF09IjxhOmVmZmVjdFN0eWxlTHN0PiIscltyLmxlbmd0aF09IjxhOmVmZmVjdFN0eWxlPiIscltyLmxlbmd0aF09IjxhOmVmZmVjdExzdD4iLHJbci5sZW5ndGhdPSc8YTpvdXRlclNoZHcgYmx1clJhZD0iNDAwMDAiIGRpc3Q9IjIwMDAwIiBkaXI9IjU0MDAwMDAiIHJvdFdpdGhTaGFwZT0iMCI+PGE6c3JnYkNsciB2YWw9IjAwMDAwMCI+PGE6YWxwaGEgdmFsPSIzODAwMCIvPjwvYTpzcmdiQ2xyPjwvYTpvdXRlclNoZHc+JyxyW3IubGVuZ3RoXT0iPC9hOmVmZmVjdExzdD4iLHJbci5sZW5ndGhdPSI8L2E6ZWZmZWN0U3R5bGU+IixyW3IubGVuZ3RoXT0iPGE6ZWZmZWN0U3R5bGU+IixyW3IubGVuZ3RoXT0iPGE6ZWZmZWN0THN0PiIscltyLmxlbmd0aF09JzxhOm91dGVyU2hkdyBibHVyUmFkPSI0MDAwMCIgZGlzdD0iMjMwMDAiIGRpcj0iNTQwMDAwMCIgcm90V2l0aFNoYXBlPSIwIj48YTpzcmdiQ2xyIHZhbD0iMDAwMDAwIj48YTphbHBoYSB2YWw9IjM1MDAwIi8+PC9hOnNyZ2JDbHI+PC9hOm91dGVyU2hkdz4nLHJbci5sZW5ndGhdPSI8L2E6ZWZmZWN0THN0PiIscltyLmxlbmd0aF09IjwvYTplZmZlY3RTdHlsZT4iLHJbci5sZW5ndGhdPSI8YTplZmZlY3RTdHlsZT4iLHJbci5sZW5ndGhdPSI8YTplZmZlY3RMc3Q+IixyW3IubGVuZ3RoXT0nPGE6b3V0ZXJTaGR3IGJsdXJSYWQ9IjQwMDAwIiBkaXN0PSIyMzAwMCIgZGlyPSI1NDAwMDAwIiByb3RXaXRoU2hhcGU9IjAiPjxhOnNyZ2JDbHIgdmFsPSIwMDAwMDAiPjxhOmFscGhhIHZhbD0iMzUwMDAiLz48L2E6c3JnYkNscj48L2E6b3V0ZXJTaGR3PicscltyLmxlbmd0aF09IjwvYTplZmZlY3RMc3Q+IixyW3IubGVuZ3RoXT0nPGE6c2NlbmUzZD48YTpjYW1lcmEgcHJzdD0ib3J0aG9ncmFwaGljRnJvbnQiPjxhOnJvdCBsYXQ9IjAiIGxvbj0iMCIgcmV2PSIwIi8+PC9hOmNhbWVyYT48YTpsaWdodFJpZyByaWc9InRocmVlUHQiIGRpcj0idCI+PGE6cm90IGxhdD0iMCIgbG9uPSIwIiByZXY9IjEyMDAwMDAiLz48L2E6bGlnaHRSaWc+PC9hOnNjZW5lM2Q+JyxyW3IubGVuZ3RoXT0nPGE6c3AzZD48YTpiZXZlbFQgdz0iNjM1MDAiIGg9IjI1NDAwIi8+PC9hOnNwM2Q+JyxyW3IubGVuZ3RoXT0iPC9hOmVmZmVjdFN0eWxlPiIscltyLmxlbmd0aF09IjwvYTplZmZlY3RTdHlsZUxzdD4iLHJbci5sZW5ndGhdPSI8YTpiZ0ZpbGxTdHlsZUxzdD4iLHJbci5sZW5ndGhdPSc8YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiLz48L2E6c29saWRGaWxsPicscltyLmxlbmd0aF09JzxhOmdyYWRGaWxsIHJvdFdpdGhTaGFwZT0iMSI+JyxyW3IubGVuZ3RoXT0iPGE6Z3NMc3Q+IixyW3IubGVuZ3RoXT0nPGE6Z3MgcG9zPSIwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9IjQwMDAwIi8+PGE6c2F0TW9kIHZhbD0iMzUwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+JyxyW3IubGVuZ3RoXT0nPGE6Z3MgcG9zPSI0MDAwMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSI0NTAwMCIvPjxhOnNoYWRlIHZhbD0iOTkwMDAiLz48YTpzYXRNb2QgdmFsPSIzNTAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLHJbci5sZW5ndGhdPSc8YTpncyBwb3M9IjEwMDAwMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnNoYWRlIHZhbD0iMjAwMDAiLz48YTpzYXRNb2QgdmFsPSIyNTUwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLHJbci5sZW5ndGhdPSI8L2E6Z3NMc3Q+IixyW3IubGVuZ3RoXT0nPGE6cGF0aCBwYXRoPSJjaXJjbGUiPjxhOmZpbGxUb1JlY3QgbD0iNTAwMDAiIHQ9Ii04MDAwMCIgcj0iNTAwMDAiIGI9IjE4MDAwMCIvPjwvYTpwYXRoPicscltyLmxlbmd0aF09IjwvYTpncmFkRmlsbD4iLHJbci5sZW5ndGhdPSc8YTpncmFkRmlsbCByb3RXaXRoU2hhcGU9IjEiPicscltyLmxlbmd0aF09IjxhOmdzTHN0PiIscltyLmxlbmd0aF09JzxhOmdzIHBvcz0iMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSI4MDAwMCIvPjxhOnNhdE1vZCB2YWw9IjMwMDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPicscltyLmxlbmd0aF09JzxhOmdzIHBvcz0iMTAwMDAwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6c2hhZGUgdmFsPSIzMDAwMCIvPjxhOnNhdE1vZCB2YWw9IjIwMDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPicscltyLmxlbmd0aF09IjwvYTpnc0xzdD4iLHJbci5sZW5ndGhdPSc8YTpwYXRoIHBhdGg9ImNpcmNsZSI+PGE6ZmlsbFRvUmVjdCBsPSI1MDAwMCIgdD0iNTAwMDAiIHI9IjUwMDAwIiBiPSI1MDAwMCIvPjwvYTpwYXRoPicscltyLmxlbmd0aF09IjwvYTpncmFkRmlsbD4iLHJbci5sZW5ndGhdPSI8L2E6YmdGaWxsU3R5bGVMc3Q+IixyW3IubGVuZ3RoXT0iPC9hOmZtdFNjaGVtZT4iLHJbci5sZW5ndGhdPSI8L2E6dGhlbWVFbGVtZW50cz4iLHJbci5sZW5ndGhdPSI8YTpvYmplY3REZWZhdWx0cz4iLHJbci5sZW5ndGhdPSI8YTpzcERlZj4iLHJbci5sZW5ndGhdPSc8YTpzcFByLz48YTpib2R5UHIvPjxhOmxzdFN0eWxlLz48YTpzdHlsZT48YTpsblJlZiBpZHg9IjEiPjxhOnNjaGVtZUNsciB2YWw9ImFjY2VudDEiLz48L2E6bG5SZWY+PGE6ZmlsbFJlZiBpZHg9IjMiPjxhOnNjaGVtZUNsciB2YWw9ImFjY2VudDEiLz48L2E6ZmlsbFJlZj48YTplZmZlY3RSZWYgaWR4PSIyIj48YTpzY2hlbWVDbHIgdmFsPSJhY2NlbnQxIi8+PC9hOmVmZmVjdFJlZj48YTpmb250UmVmIGlkeD0ibWlub3IiPjxhOnNjaGVtZUNsciB2YWw9Imx0MSIvPjwvYTpmb250UmVmPjwvYTpzdHlsZT4nLHJbci5sZW5ndGhdPSI8L2E6c3BEZWY+IixyW3IubGVuZ3RoXT0iPGE6bG5EZWY+IixyW3IubGVuZ3RoXT0nPGE6c3BQci8+PGE6Ym9keVByLz48YTpsc3RTdHlsZS8+PGE6c3R5bGU+PGE6bG5SZWYgaWR4PSIyIj48YTpzY2hlbWVDbHIgdmFsPSJhY2NlbnQxIi8+PC9hOmxuUmVmPjxhOmZpbGxSZWYgaWR4PSIwIj48YTpzY2hlbWVDbHIgdmFsPSJhY2NlbnQxIi8+PC9hOmZpbGxSZWY+PGE6ZWZmZWN0UmVmIGlkeD0iMSI+PGE6c2NoZW1lQ2xyIHZhbD0iYWNjZW50MSIvPjwvYTplZmZlY3RSZWY+PGE6Zm9udFJlZiBpZHg9Im1pbm9yIj48YTpzY2hlbWVDbHIgdmFsPSJ0eDEiLz48L2E6Zm9udFJlZj48L2E6c3R5bGU+JyxyW3IubGVuZ3RoXT0iPC9hOmxuRGVmPiIscltyLmxlbmd0aF09IjwvYTpvYmplY3REZWZhdWx0cz4iLHJbci5sZW5ndGhdPSI8YTpleHRyYUNsclNjaGVtZUxzdC8+IixyW3IubGVuZ3RoXT0iPC9hOnRoZW1lPiIsci5qb2luKCIiKX1mdW5jdGlvbiBCbChlLGEscil7dmFyIG49ZS5sK2EsdD1lLnJlYWRfc2hpZnQoNCk7aWYodCE9PTEyNDIyNil7aWYoIXIuY2VsbFN0eWxlcyl7ZS5sPW47cmV0dXJufXZhciBzPWUuc2xpY2UoZS5sKTtlLmw9bjt2YXIgaTt0cnl7aT1hbihzLHt0eXBlOiJhcnJheSJ9KX1jYXRjaHtyZXR1cm59dmFyIGM9b3IoaSwidGhlbWUvdGhlbWUvdGhlbWUxLnhtbCIsITApO2lmKGMpcmV0dXJuIF9zKGMscil9fWZ1bmN0aW9uIGJsKGUpe3JldHVybiBlLnJlYWRfc2hpZnQoNCl9ZnVuY3Rpb24gVWwoZSl7dmFyIGE9e307c3dpdGNoKGEueGNsclR5cGU9ZS5yZWFkX3NoaWZ0KDIpLGEublRpbnRTaGFkZT1lLnJlYWRfc2hpZnQoMiksYS54Y2xyVHlwZSl7Y2FzZSAwOmUubCs9NDticmVhaztjYXNlIDE6YS54Y2xyVmFsdWU9SGwoZSw0KTticmVhaztjYXNlIDI6YS54Y2xyVmFsdWU9Wm4oZSk7YnJlYWs7Y2FzZSAzOmEueGNsclZhbHVlPWJsKGUpO2JyZWFrO2Nhc2UgNDplLmwrPTQ7YnJlYWt9cmV0dXJuIGUubCs9OCxhfWZ1bmN0aW9uIEhsKGUsYSl7cmV0dXJuIFllKGUsYSl9ZnVuY3Rpb24gVmwoZSxhKXtyZXR1cm4gWWUoZSxhKX1mdW5jdGlvbiBXbChlKXt2YXIgYT1lLnJlYWRfc2hpZnQoMikscj1lLnJlYWRfc2hpZnQoMiktNCxuPVthXTtzd2l0Y2goYSl7Y2FzZSA0OmNhc2UgNTpjYXNlIDc6Y2FzZSA4OmNhc2UgOTpjYXNlIDEwOmNhc2UgMTE6Y2FzZSAxMzpuWzFdPVVsKGUpO2JyZWFrO2Nhc2UgNjpuWzFdPVZsKGUscik7YnJlYWs7Y2FzZSAxNDpjYXNlIDE1Om5bMV09ZS5yZWFkX3NoaWZ0KHI9PT0xPzE6Mik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBFeHRQcm9wIHR5cGU6ICIrYSsiICIrcil9cmV0dXJuIG59ZnVuY3Rpb24gR2woZSxhKXt2YXIgcj1lLmwrYTtlLmwrPTI7dmFyIG49ZS5yZWFkX3NoaWZ0KDIpO2UubCs9Mjtmb3IodmFyIHQ9ZS5yZWFkX3NoaWZ0KDIpLHM9W107dC0tID4wOylzLnB1c2goV2woZSxyLWUubCkpO3JldHVybntpeGZlOm4sZXh0OnN9fWZ1bmN0aW9uIFhsKGUsYSl7YS5mb3JFYWNoKGZ1bmN0aW9uKHIpe3N3aXRjaChyWzBdKXt9fSl9ZnVuY3Rpb24gJGwoZSxhKXtyZXR1cm57ZmxhZ3M6ZS5yZWFkX3NoaWZ0KDQpLHZlcnNpb246ZS5yZWFkX3NoaWZ0KDQpLG5hbWU6amUoZSl9fWZ1bmN0aW9uIHpsKGUpe2Zvcih2YXIgYT1bXSxyPWUucmVhZF9zaGlmdCg0KTtyLS0gPjA7KWEucHVzaChbZS5yZWFkX3NoaWZ0KDQpLGUucmVhZF9zaGlmdCg0KV0pO3JldHVybiBhfWZ1bmN0aW9uIEtsKGUpe3JldHVybiBlLmwrPTQsZS5yZWFkX3NoaWZ0KDQpIT0wfWZ1bmN0aW9uIFlsKGUsYSxyKXt2YXIgbj17VHlwZXM6W10sQ2VsbDpbXSxWYWx1ZTpbXX0sdD1yfHx7fSxzPVtdLGk9ITEsYz0yO3JldHVybiBQcihlLGZ1bmN0aW9uKGYsbyxsKXtzd2l0Y2gobCl7Y2FzZSAzMzU6bi5UeXBlcy5wdXNoKHtuYW1lOmYubmFtZX0pO2JyZWFrO2Nhc2UgNTE6Zi5mb3JFYWNoKGZ1bmN0aW9uKGgpe2M9PTE/bi5DZWxsLnB1c2goe3R5cGU6bi5UeXBlc1toWzBdLTFdLm5hbWUsaW5kZXg6aFsxXX0pOmM9PTAmJm4uVmFsdWUucHVzaCh7dHlwZTpuLlR5cGVzW2hbMF0tMV0ubmFtZSxpbmRleDpoWzFdfSl9KTticmVhaztjYXNlIDMzNzpjPWY/MTowO2JyZWFrO2Nhc2UgMzM4OmM9MjticmVhaztjYXNlIDM1OnMucHVzaChsKSxpPSEwO2JyZWFrO2Nhc2UgMzY6cy5wb3AoKSxpPSExO2JyZWFrO2RlZmF1bHQ6aWYoIW8uVCl7aWYoIWl8fHQuV1RGJiZzW3MubGVuZ3RoLTFdIT0zNSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgcmVjb3JkIDB4IitsLnRvU3RyaW5nKDE2KSl9fX0pLG59ZnVuY3Rpb24gamwoZSxhLHIpe3ZhciBuPXtUeXBlczpbXSxDZWxsOltdLFZhbHVlOltdfTtpZighZSlyZXR1cm4gbjt2YXIgdD0hMSxzPTIsaTtyZXR1cm4gZS5yZXBsYWNlKEtlLGZ1bmN0aW9uKGMpe3ZhciBmPW9lKGMpO3N3aXRjaChDcihmWzBdKSl7Y2FzZSI8P3htbCI6YnJlYWs7Y2FzZSI8bWV0YWRhdGEiOmNhc2UiPC9tZXRhZGF0YT4iOmJyZWFrO2Nhc2UiPG1ldGFkYXRhVHlwZXMiOmNhc2UiPC9tZXRhZGF0YVR5cGVzPiI6YnJlYWs7Y2FzZSI8bWV0YWRhdGFUeXBlIjpuLlR5cGVzLnB1c2goe25hbWU6Zi5uYW1lfSk7YnJlYWs7Y2FzZSI8L21ldGFkYXRhVHlwZT4iOmJyZWFrO2Nhc2UiPGZ1dHVyZU1ldGFkYXRhIjpmb3IodmFyIG89MDtvPG4uVHlwZXMubGVuZ3RoOysrbyluLlR5cGVzW29dLm5hbWU9PWYubmFtZSYmKGk9bi5UeXBlc1tvXSk7YnJlYWs7Y2FzZSI8L2Z1dHVyZU1ldGFkYXRhPiI6YnJlYWs7Y2FzZSI8Yms+IjpicmVhaztjYXNlIjwvYms+IjpicmVhaztjYXNlIjxyYyI6cz09MT9uLkNlbGwucHVzaCh7dHlwZTpuLlR5cGVzW2YudC0xXS5uYW1lLGluZGV4OitmLnZ9KTpzPT0wJiZuLlZhbHVlLnB1c2goe3R5cGU6bi5UeXBlc1tmLnQtMV0ubmFtZSxpbmRleDorZi52fSk7YnJlYWs7Y2FzZSI8L3JjPiI6YnJlYWs7Y2FzZSI8Y2VsbE1ldGFkYXRhIjpzPTE7YnJlYWs7Y2FzZSI8L2NlbGxNZXRhZGF0YT4iOnM9MjticmVhaztjYXNlIjx2YWx1ZU1ldGFkYXRhIjpzPTA7YnJlYWs7Y2FzZSI8L3ZhbHVlTWV0YWRhdGE+IjpzPTI7YnJlYWs7Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6Y2FzZSI8ZXh0THN0Lz4iOmJyZWFrO2Nhc2UiPGV4dCI6dD0hMDticmVhaztjYXNlIjwvZXh0PiI6dD0hMTticmVhaztjYXNlIjxydmIiOmlmKCFpKWJyZWFrO2kub2Zmc2V0c3x8KGkub2Zmc2V0cz1bXSksaS5vZmZzZXRzLnB1c2goK2YuaSk7YnJlYWs7ZGVmYXVsdDppZighdCYmci5XVEYpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitmWzBdKyIgaW4gbWV0YWRhdGEiKX1yZXR1cm4gY30pLG59ZnVuY3Rpb24gSmwoZSl7dmFyIGE9W107aWYoIWUpcmV0dXJuIGE7dmFyIHI9MTtyZXR1cm4oZS5tYXRjaChLZSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciB0PW9lKG4pO3N3aXRjaCh0WzBdKXtjYXNlIjw/eG1sIjpicmVhaztjYXNlIjxjYWxjQ2hhaW4iOmNhc2UiPGNhbGNDaGFpbj4iOmNhc2UiPC9jYWxjQ2hhaW4+IjpicmVhaztjYXNlIjxjIjpkZWxldGUgdFswXSx0Lmk/cj10Lmk6dC5pPXIsYS5wdXNoKHQpO2JyZWFrfX0pLGF9ZnVuY3Rpb24gWmwoZSl7dmFyIGE9e307YS5pPWUucmVhZF9zaGlmdCg0KTt2YXIgcj17fTtyLnI9ZS5yZWFkX3NoaWZ0KDQpLHIuYz1lLnJlYWRfc2hpZnQoNCksYS5yPXVlKHIpO3ZhciBuPWUucmVhZF9zaGlmdCgxKTtyZXR1cm4gbiYyJiYoYS5sPSIxIiksbiY4JiYoYS5hPSIxIiksYX1mdW5jdGlvbiBxbChlLGEscil7dmFyIG49W107cmV0dXJuIFByKGUsZnVuY3Rpb24ocyxpLGMpe3N3aXRjaChjKXtjYXNlIDYzOm4ucHVzaChzKTticmVhaztkZWZhdWx0OmlmKCFpLlQpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHJlY29yZCAweCIrYy50b1N0cmluZygxNikpfX0pLG59ZnVuY3Rpb24gT2QoKXt9ZnVuY3Rpb24gUWwoZSxhLHIsbil7aWYoIWUpcmV0dXJuIGU7dmFyIHQ9bnx8e30scz0hMTtQcihlLGZ1bmN0aW9uKGMsZixvKXtzd2l0Y2gobyl7Y2FzZSAzNTk6Y2FzZSAzNjM6Y2FzZSAzNjQ6Y2FzZSAzNjY6Y2FzZSAzNjc6Y2FzZSAzNjg6Y2FzZSAzNjk6Y2FzZSAzNzA6Y2FzZSAzNzE6Y2FzZSA0NzI6Y2FzZSA1Nzc6Y2FzZSA1Nzg6Y2FzZSA1Nzk6Y2FzZSA1ODA6Y2FzZSA1ODE6Y2FzZSA1ODI6Y2FzZSA1ODM6Y2FzZSA1ODQ6Y2FzZSA1ODU6Y2FzZSA1ODY6Y2FzZSA1ODc6YnJlYWs7Y2FzZSAzNTpzPSEwO2JyZWFrO2Nhc2UgMzY6cz0hMTticmVhaztkZWZhdWx0OmlmKCFmLlQpe2lmKCFzfHx0LldURil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgcmVjb3JkIDB4IitvLnRvU3RyaW5nKDE2KSl9fX0sdCl9ZnVuY3Rpb24gZTEoZSxhKXtpZighZSlyZXR1cm4iPz8iO3ZhciByPShlLm1hdGNoKC88YzpjaGFydCBbXj5dKnI6aWQ9IihbXiJdKikiLyl8fFsiIiwiIl0pWzFdO3JldHVybiBhWyIhaWQiXVtyXS5UYXJnZXR9ZnVuY3Rpb24gRXMoZSxhLHIsbil7dmFyIHQ9QXJyYXkuaXNBcnJheShlKSxzO2EuZm9yRWFjaChmdW5jdGlvbihpKXt2YXIgYz1ucihpLnJlZik7aWYodD8oZVtjLnJdfHwoZVtjLnJdPVtdKSxzPWVbYy5yXVtjLmNdKTpzPWVbaS5yZWZdLCFzKXtzPXt0OiJ6In0sdD9lW2Mucl1bYy5jXT1zOmVbaS5yZWZdPXM7dmFyIGY9T2UoZVsiIXJlZiJdfHwiQkRXR08xMDAwMDAxOkExIik7Zi5zLnI+Yy5yJiYoZi5zLnI9Yy5yKSxmLmUucjxjLnImJihmLmUucj1jLnIpLGYucy5jPmMuYyYmKGYucy5jPWMuYyksZi5lLmM8Yy5jJiYoZi5lLmM9Yy5jKTt2YXIgbz1fZShmKTtvIT09ZVsiIXJlZiJdJiYoZVsiIXJlZiJdPW8pfXMuY3x8KHMuYz1bXSk7dmFyIGw9e2E6aS5hdXRob3IsdDppLnQscjppLnIsVDpyfTtpLmgmJihsLmg9aS5oKTtmb3IodmFyIGg9cy5jLmxlbmd0aC0xO2g+PTA7LS1oKXtpZighciYmcy5jW2hdLlQpcmV0dXJuO3ImJiFzLmNbaF0uVCYmcy5jLnNwbGljZShoLDEpfWlmKHImJm4pe2ZvcihoPTA7aDxuLmxlbmd0aDsrK2gpaWYobC5hPT1uW2hdLmlkKXtsLmE9bltoXS5uYW1lfHxsLmE7YnJlYWt9fXMuYy5wdXNoKGwpfSl9ZnVuY3Rpb24gcjEoZSxhKXtpZihlLm1hdGNoKC88KD86XHcrOik/Y29tbWVudHMgKlwvPi8pKXJldHVybltdO3ZhciByPVtdLG49W10sdD1lLm1hdGNoKC88KD86XHcrOik/YXV0aG9ycz4oW1xzXFNdKik8XC8oPzpcdys6KT9hdXRob3JzPi8pO3QmJnRbMV0mJnRbMV0uc3BsaXQoLzxcL1x3Kjo/YXV0aG9yPi8pLmZvckVhY2goZnVuY3Rpb24oaSl7aWYoIShpPT09IiJ8fGkudHJpbSgpPT09IiIpKXt2YXIgYz1pLm1hdGNoKC88KD86XHcrOik/YXV0aG9yW14+XSo+KC4qKS8pO2MmJnIucHVzaChjWzFdKX19KTt2YXIgcz1lLm1hdGNoKC88KD86XHcrOik/Y29tbWVudExpc3Q+KFtcc1xTXSopPFwvKD86XHcrOik/Y29tbWVudExpc3Q+Lyk7cmV0dXJuIHMmJnNbMV0mJnNbMV0uc3BsaXQoLzxcL1x3Kjo/Y29tbWVudD4vKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe2lmKCEoaT09PSIifHxpLnRyaW0oKT09PSIiKSl7dmFyIGM9aS5tYXRjaCgvPCg/Olx3KzopP2NvbW1lbnRbXj5dKj4vKTtpZihjKXt2YXIgZj1vZShjWzBdKSxvPXthdXRob3I6Zi5hdXRob3JJZCYmcltmLmF1dGhvcklkXXx8InNoZWV0anNnaG9zdCIscmVmOmYucmVmLGd1aWQ6Zi5ndWlkfSxsPW5yKGYucmVmKTtpZighKGEuc2hlZXRSb3dzJiZhLnNoZWV0Um93czw9bC5yKSl7dmFyIGg9aS5tYXRjaCgvPCg/Olx3KzopP3RleHQ+KFtcc1xTXSopPFwvKD86XHcrOik/dGV4dD4vKSx4PSEhaCYmISFoWzFdJiZadChoWzFdKXx8e3I6IiIsdDoiIixoOiIifTtvLnI9eC5yLHgucj09Ijx0PjwvdD4iJiYoeC50PXguaD0iIiksby50PSh4LnR8fCIiKS5yZXBsYWNlKC9cclxuL2csYApgKS5yZXBsYWNlKC9cci9nLGAKYCksYS5jZWxsSFRNTCYmKG8uaD14LmgpLG4ucHVzaChvKX19fX0pLG59ZnVuY3Rpb24gYTEoZSxhKXt2YXIgcj1bXSxuPSExLHQ9e30scz0wO3JldHVybiBlLnJlcGxhY2UoS2UsZnVuY3Rpb24oYyxmKXt2YXIgbz1vZShjKTtzd2l0Y2goQ3Iob1swXSkpe2Nhc2UiPD94bWwiOmJyZWFrO2Nhc2UiPFRocmVhZGVkQ29tbWVudHMiOmJyZWFrO2Nhc2UiPC9UaHJlYWRlZENvbW1lbnRzPiI6YnJlYWs7Y2FzZSI8dGhyZWFkZWRDb21tZW50Ijp0PXthdXRob3I6by5wZXJzb25JZCxndWlkOm8uaWQscmVmOm8ucmVmLFQ6MX07YnJlYWs7Y2FzZSI8L3RocmVhZGVkQ29tbWVudD4iOnQudCE9bnVsbCYmci5wdXNoKHQpO2JyZWFrO2Nhc2UiPHRleHQ+IjpjYXNlIjx0ZXh0IjpzPWYrYy5sZW5ndGg7YnJlYWs7Y2FzZSI8L3RleHQ+Ijp0LnQ9ZS5zbGljZShzLGYpLnJlcGxhY2UoL1xyXG4vZyxgCmApLnJlcGxhY2UoL1xyL2csYApgKTticmVhaztjYXNlIjxtZW50aW9ucyI6Y2FzZSI8bWVudGlvbnM+IjpuPSEwO2JyZWFrO2Nhc2UiPC9tZW50aW9ucz4iOm49ITE7YnJlYWs7Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6Y2FzZSI8ZXh0THN0Lz4iOmJyZWFrO2Nhc2UiPGV4dCI6bj0hMDticmVhaztjYXNlIjwvZXh0PiI6bj0hMTticmVhaztkZWZhdWx0OmlmKCFuJiZhLldURil0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK29bMF0rIiBpbiB0aHJlYWRlZCBjb21tZW50cyIpfXJldHVybiBjfSkscn1mdW5jdGlvbiB0MShlLGEpe3ZhciByPVtdLG49ITE7cmV0dXJuIGUucmVwbGFjZShLZSxmdW5jdGlvbihzKXt2YXIgaT1vZShzKTtzd2l0Y2goQ3IoaVswXSkpe2Nhc2UiPD94bWwiOmJyZWFrO2Nhc2UiPHBlcnNvbkxpc3QiOmJyZWFrO2Nhc2UiPC9wZXJzb25MaXN0PiI6YnJlYWs7Y2FzZSI8cGVyc29uIjpyLnB1c2goe25hbWU6aS5kaXNwbGF5bmFtZSxpZDppLmlkfSk7YnJlYWs7Y2FzZSI8L3BlcnNvbj4iOmJyZWFrO2Nhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4dExzdD4iOmNhc2UiPGV4dExzdC8+IjpicmVhaztjYXNlIjxleHQiOm49ITA7YnJlYWs7Y2FzZSI8L2V4dD4iOm49ITE7YnJlYWs7ZGVmYXVsdDppZighbiYmYS5XVEYpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitpWzBdKyIgaW4gdGhyZWFkZWQgY29tbWVudHMiKX1yZXR1cm4gc30pLHJ9ZnVuY3Rpb24gbjEoZSl7dmFyIGE9e307YS5pYXV0aG9yPWUucmVhZF9zaGlmdCg0KTt2YXIgcj1uYShlKTtyZXR1cm4gYS5yZng9ci5zLGEucmVmPXVlKHIucyksZS5sKz0xNixhfXZhciBzMT1qZTtmdW5jdGlvbiBpMShlLGEpe3ZhciByPVtdLG49W10sdD17fSxzPSExO3JldHVybiBQcihlLGZ1bmN0aW9uKGMsZixvKXtzd2l0Y2gobyl7Y2FzZSA2MzI6bi5wdXNoKGMpO2JyZWFrO2Nhc2UgNjM1OnQ9YzticmVhaztjYXNlIDYzNzp0LnQ9Yy50LHQuaD1jLmgsdC5yPWMucjticmVhaztjYXNlIDYzNjppZih0LmF1dGhvcj1uW3QuaWF1dGhvcl0sZGVsZXRlIHQuaWF1dGhvcixhLnNoZWV0Um93cyYmdC5yZngmJmEuc2hlZXRSb3dzPD10LnJmeC5yKWJyZWFrO3QudHx8KHQudD0iIiksZGVsZXRlIHQucmZ4LHIucHVzaCh0KTticmVhaztjYXNlIDMwNzI6YnJlYWs7Y2FzZSAzNTpzPSEwO2JyZWFrO2Nhc2UgMzY6cz0hMTticmVhaztjYXNlIDM3OmJyZWFrO2Nhc2UgMzg6YnJlYWs7ZGVmYXVsdDppZighZi5UKXtpZighc3x8YS5XVEYpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHJlY29yZCAweCIrby50b1N0cmluZygxNikpfX19KSxyfXZhciBjMT0iYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS52YmFQcm9qZWN0IjtmdW5jdGlvbiBmMShlKXt2YXIgYT1tZS51dGlscy5jZmJfbmV3KHtyb290OiJSIn0pO3JldHVybiBlLkZ1bGxQYXRocy5mb3JFYWNoKGZ1bmN0aW9uKHIsbil7aWYoIShyLnNsaWNlKC0xKT09PSIvInx8IXIubWF0Y2goL19WQkFfUFJPSkVDVF9DVVIvKSkpe3ZhciB0PXIucmVwbGFjZSgvXlteXC9dKi8sIlIiKS5yZXBsYWNlKC9cL19WQkFfUFJPSkVDVF9DVVJcdTAwMDAqLywiIik7bWUudXRpbHMuY2ZiX2FkZChhLHQsZS5GaWxlSW5kZXhbbl0uY29udGVudCl9fSksbWUud3JpdGUoYSl9ZnVuY3Rpb24gbzEoKXtyZXR1cm57IiF0eXBlIjoiZGlhbG9nIn19ZnVuY3Rpb24gbDEoKXtyZXR1cm57IiF0eXBlIjoiZGlhbG9nIn19ZnVuY3Rpb24gaDEoKXtyZXR1cm57IiF0eXBlIjoibWFjcm8ifX1mdW5jdGlvbiB1MSgpe3JldHVybnsiIXR5cGUiOiJtYWNybyJ9fXZhciBFYT1mdW5jdGlvbigpe3ZhciBlPS8oXnxbXkEtWmEtel9dKVIoXFs/LT9cZCtcXXxbMS05XVxkKnwpQyhcWz8tP1xkK1xdfFsxLTldXGQqfCkoPyFbQS1aYS16MC05X10pL2csYT17cjowLGM6MH07ZnVuY3Rpb24gcihuLHQscyxpKXt2YXIgYz0hMSxmPSExO3MubGVuZ3RoPT0wP2Y9ITA6cy5jaGFyQXQoMCk9PSJbIiYmKGY9ITAscz1zLnNsaWNlKDEsLTEpKSxpLmxlbmd0aD09MD9jPSEwOmkuY2hhckF0KDApPT0iWyImJihjPSEwLGk9aS5zbGljZSgxLC0xKSk7dmFyIG89cy5sZW5ndGg+MD9wYXJzZUludChzLDEwKXwwOjAsbD1pLmxlbmd0aD4wP3BhcnNlSW50KGksMTApfDA6MDtyZXR1cm4gYz9sKz1hLmM6LS1sLGY/bys9YS5yOi0tbyx0KyhjPyIiOiIkIikrVWUobCkrKGY/IiI6IiQiKSt6ZShvKX1yZXR1cm4gZnVuY3Rpb24odCxzKXtyZXR1cm4gYT1zLHQucmVwbGFjZShlLHIpfX0oKSxUcz0vKF58W14uX0EtWjAtOV0pKFskXT8pKFtBLVpdezEsMn18W0EtV11bQS1aXXsyfXxYW0EtRV1bQS1aXXxYRltBLURdKShbJF0/KSgxMFswLTNdXGR7NH18MTA0WzAtN11cZHszfXwxMDQ4WzAtNF1cZHsyfXwxMDQ4NVswLTZdXGR8MTA0ODU3WzAtNl18WzEtOV1cZHswLDV9KSg/IVtfLlwoQS1aYS16MC05XSkvZyx4MT1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihhLHIpe3JldHVybiBhLnJlcGxhY2UoVHMsZnVuY3Rpb24obix0LHMsaSxjLGYpe3ZhciBvPVZ0KGkpLShzPzA6ci5jKSxsPUh0KGYpLShjPzA6ci5yKSxoPWw9PTA/IiI6Yz9sKzE6IlsiK2wrIl0iLHg9bz09MD8iIjpzP28rMToiWyIrbysiXSI7cmV0dXJuIHQrIlIiK2grIkMiK3h9KX19KCk7ZnVuY3Rpb24ga3MoZSxhKXtyZXR1cm4gZS5yZXBsYWNlKFRzLGZ1bmN0aW9uKHIsbix0LHMsaSxjKXtyZXR1cm4gbisodD09IiQiP3QrczpVZShWdChzKSthLmMpKSsoaT09IiQiP2krYzp6ZShIdChjKSthLnIpKX0pfWZ1bmN0aW9uIGQxKGUsYSxyKXt2YXIgbj1wYShhKSx0PW4ucyxzPW5yKHIpLGk9e3I6cy5yLXQucixjOnMuYy10LmN9O3JldHVybiBrcyhlLGkpfWZ1bmN0aW9uIHYxKGUpe3JldHVybiBlLmxlbmd0aCE9MX1mdW5jdGlvbiB3cyhlKXtyZXR1cm4gZS5yZXBsYWNlKC9feGxmblwuL2csIiIpfWZ1bmN0aW9uIEJlKGUpe2UubCs9MX1mdW5jdGlvbiB6cihlLGEpe3ZhciByPWUucmVhZF9zaGlmdCgyKTtyZXR1cm5bciYxNjM4MyxyPj4xNCYxLHI+PjE1JjFdfWZ1bmN0aW9uIEFzKGUsYSxyKXt2YXIgbj0yO2lmKHIpe2lmKHIuYmlmZj49MiYmci5iaWZmPD01KXJldHVybiBGcyhlKTtyLmJpZmY9PTEyJiYobj00KX12YXIgdD1lLnJlYWRfc2hpZnQobikscz1lLnJlYWRfc2hpZnQobiksaT16cihlKSxjPXpyKGUpO3JldHVybntzOntyOnQsYzppWzBdLGNSZWw6aVsxXSxyUmVsOmlbMl19LGU6e3I6cyxjOmNbMF0sY1JlbDpjWzFdLHJSZWw6Y1syXX19fWZ1bmN0aW9uIEZzKGUpe3ZhciBhPXpyKGUpLHI9enIoZSksbj1lLnJlYWRfc2hpZnQoMSksdD1lLnJlYWRfc2hpZnQoMSk7cmV0dXJue3M6e3I6YVswXSxjOm4sY1JlbDphWzFdLHJSZWw6YVsyXX0sZTp7cjpyWzBdLGM6dCxjUmVsOnJbMV0sclJlbDpyWzJdfX19ZnVuY3Rpb24gcDEoZSxhLHIpe2lmKHIuYmlmZjw4KXJldHVybiBGcyhlKTt2YXIgbj1lLnJlYWRfc2hpZnQoci5iaWZmPT0xMj80OjIpLHQ9ZS5yZWFkX3NoaWZ0KHIuYmlmZj09MTI/NDoyKSxzPXpyKGUpLGk9enIoZSk7cmV0dXJue3M6e3I6bixjOnNbMF0sY1JlbDpzWzFdLHJSZWw6c1syXX0sZTp7cjp0LGM6aVswXSxjUmVsOmlbMV0sclJlbDppWzJdfX19ZnVuY3Rpb24gU3MoZSxhLHIpe2lmKHImJnIuYmlmZj49MiYmci5iaWZmPD01KXJldHVybiBnMShlKTt2YXIgbj1lLnJlYWRfc2hpZnQociYmci5iaWZmPT0xMj80OjIpLHQ9enIoZSk7cmV0dXJue3I6bixjOnRbMF0sY1JlbDp0WzFdLHJSZWw6dFsyXX19ZnVuY3Rpb24gZzEoZSl7dmFyIGE9enIoZSkscj1lLnJlYWRfc2hpZnQoMSk7cmV0dXJue3I6YVswXSxjOnIsY1JlbDphWzFdLHJSZWw6YVsyXX19ZnVuY3Rpb24gbTEoZSl7dmFyIGE9ZS5yZWFkX3NoaWZ0KDIpLHI9ZS5yZWFkX3NoaWZ0KDIpO3JldHVybntyOmEsYzpyJjI1NSxmUXVvdGVkOiEhKHImMTYzODQpLGNSZWw6cj4+MTUsclJlbDpyPj4xNX19ZnVuY3Rpb24gXzEoZSxhLHIpe3ZhciBuPXImJnIuYmlmZj9yLmJpZmY6ODtpZihuPj0yJiZuPD01KXJldHVybiBFMShlKTt2YXIgdD1lLnJlYWRfc2hpZnQobj49MTI/NDoyKSxzPWUucmVhZF9zaGlmdCgyKSxpPShzJjE2Mzg0KT4+MTQsYz0ocyYzMjc2OCk+PjE1O2lmKHMmPTE2MzgzLGM9PTEpZm9yKDt0PjUyNDI4NzspdC09MTA0ODU3NjtpZihpPT0xKWZvcig7cz44MTkxOylzPXMtMTYzODQ7cmV0dXJue3I6dCxjOnMsY1JlbDppLHJSZWw6Y319ZnVuY3Rpb24gRTEoZSl7dmFyIGE9ZS5yZWFkX3NoaWZ0KDIpLHI9ZS5yZWFkX3NoaWZ0KDEpLG49KGEmMzI3NjgpPj4xNSx0PShhJjE2Mzg0KT4+MTQ7cmV0dXJuIGEmPTE2MzgzLG49PTEmJmE+PTgxOTImJihhPWEtMTYzODQpLHQ9PTEmJnI+PTEyOCYmKHI9ci0yNTYpLHtyOmEsYzpyLGNSZWw6dCxyUmVsOm59fWZ1bmN0aW9uIFQxKGUsYSxyKXt2YXIgbj0oZVtlLmwrK10mOTYpPj41LHQ9QXMoZSxyLmJpZmY+PTImJnIuYmlmZjw9NT82Ojgscik7cmV0dXJuW24sdF19ZnVuY3Rpb24gazEoZSxhLHIpe3ZhciBuPShlW2UubCsrXSY5Nik+PjUsdD1lLnJlYWRfc2hpZnQoMiwiaSIpLHM9ODtpZihyKXN3aXRjaChyLmJpZmYpe2Nhc2UgNTplLmwrPTEyLHM9NjticmVhaztjYXNlIDEyOnM9MTI7YnJlYWt9dmFyIGk9QXMoZSxzLHIpO3JldHVybltuLHQsaV19ZnVuY3Rpb24gdzEoZSxhLHIpe3ZhciBuPShlW2UubCsrXSY5Nik+PjU7cmV0dXJuIGUubCs9ciYmci5iaWZmPjg/MTI6ci5iaWZmPDg/Njo4LFtuXX1mdW5jdGlvbiBBMShlLGEscil7dmFyIG49KGVbZS5sKytdJjk2KT4+NSx0PWUucmVhZF9zaGlmdCgyKSxzPTg7aWYocilzd2l0Y2goci5iaWZmKXtjYXNlIDU6ZS5sKz0xMixzPTY7YnJlYWs7Y2FzZSAxMjpzPTEyO2JyZWFrfXJldHVybiBlLmwrPXMsW24sdF19ZnVuY3Rpb24gRjEoZSxhLHIpe3ZhciBuPShlW2UubCsrXSY5Nik+PjUsdD1wMShlLGEtMSxyKTtyZXR1cm5bbix0XX1mdW5jdGlvbiBTMShlLGEscil7dmFyIG49KGVbZS5sKytdJjk2KT4+NTtyZXR1cm4gZS5sKz1yLmJpZmY9PTI/NjpyLmJpZmY9PTEyPzE0OjcsW25dfWZ1bmN0aW9uIENzKGUpe3ZhciBhPWVbZS5sKzFdJjEscj0xO3JldHVybiBlLmwrPTQsW2Escl19ZnVuY3Rpb24gQzEoZSxhLHIpe2UubCs9Mjtmb3IodmFyIG49ZS5yZWFkX3NoaWZ0KHImJnIuYmlmZj09Mj8xOjIpLHQ9W10scz0wO3M8PW47KytzKXQucHVzaChlLnJlYWRfc2hpZnQociYmci5iaWZmPT0yPzE6MikpO3JldHVybiB0fWZ1bmN0aW9uIHkxKGUsYSxyKXt2YXIgbj1lW2UubCsxXSYyNTU/MTowO3JldHVybiBlLmwrPTIsW24sZS5yZWFkX3NoaWZ0KHImJnIuYmlmZj09Mj8xOjIpXX1mdW5jdGlvbiBEMShlLGEscil7dmFyIG49ZVtlLmwrMV0mMjU1PzE6MDtyZXR1cm4gZS5sKz0yLFtuLGUucmVhZF9zaGlmdChyJiZyLmJpZmY9PTI/MToyKV19ZnVuY3Rpb24gTzEoZSl7dmFyIGE9ZVtlLmwrMV0mMjU1PzE6MDtyZXR1cm4gZS5sKz0yLFthLGUucmVhZF9zaGlmdCgyKV19ZnVuY3Rpb24gUjEoZSxhLHIpe3ZhciBuPWVbZS5sKzFdJjI1NT8xOjA7cmV0dXJuIGUubCs9ciYmci5iaWZmPT0yPzM6NCxbbl19ZnVuY3Rpb24geXMoZSl7dmFyIGE9ZS5yZWFkX3NoaWZ0KDEpLHI9ZS5yZWFkX3NoaWZ0KDEpO3JldHVyblthLHJdfWZ1bmN0aW9uIEkxKGUpe3JldHVybiBlLnJlYWRfc2hpZnQoMikseXMoZSl9ZnVuY3Rpb24gTjEoZSl7cmV0dXJuIGUucmVhZF9zaGlmdCgyKSx5cyhlKX1mdW5jdGlvbiBQMShlLGEscil7dmFyIG49KGVbZS5sXSY5Nik+PjU7ZS5sKz0xO3ZhciB0PVNzKGUsMCxyKTtyZXR1cm5bbix0XX1mdW5jdGlvbiBMMShlLGEscil7dmFyIG49KGVbZS5sXSY5Nik+PjU7ZS5sKz0xO3ZhciB0PV8xKGUsMCxyKTtyZXR1cm5bbix0XX1mdW5jdGlvbiBNMShlLGEscil7dmFyIG49KGVbZS5sXSY5Nik+PjU7ZS5sKz0xO3ZhciB0PWUucmVhZF9zaGlmdCgyKTtyJiZyLmJpZmY9PTUmJihlLmwrPTEyKTt2YXIgcz1TcyhlLDAscik7cmV0dXJuW24sdCxzXX1mdW5jdGlvbiBCMShlLGEscil7dmFyIG49KGVbZS5sXSY5Nik+PjU7ZS5sKz0xO3ZhciB0PWUucmVhZF9zaGlmdChyJiZyLmJpZmY8PTM/MToyKTtyZXR1cm5bYmhbdF0sTnNbdF0sbl19ZnVuY3Rpb24gYjEoZSxhLHIpe3ZhciBuPWVbZS5sKytdLHQ9ZS5yZWFkX3NoaWZ0KDEpLHM9ciYmci5iaWZmPD0zP1tuPT04OD8tMTowLGUucmVhZF9zaGlmdCgxKV06VTEoZSk7cmV0dXJuW3QsKHNbMF09PT0wP05zOkJoKVtzWzFdXV19ZnVuY3Rpb24gVTEoZSl7cmV0dXJuW2VbZS5sKzFdPj43LGUucmVhZF9zaGlmdCgyKSYzMjc2N119ZnVuY3Rpb24gSDEoZSxhLHIpe2UubCs9ciYmci5iaWZmPT0yPzM6NH1mdW5jdGlvbiBWMShlLGEscil7aWYoZS5sKyssciYmci5iaWZmPT0xMilyZXR1cm5bZS5yZWFkX3NoaWZ0KDQsImkiKSwwXTt2YXIgbj1lLnJlYWRfc2hpZnQoMiksdD1lLnJlYWRfc2hpZnQociYmci5iaWZmPT0yPzE6Mik7cmV0dXJuW24sdF19ZnVuY3Rpb24gVzEoZSl7cmV0dXJuIGUubCsrLGlhW2UucmVhZF9zaGlmdCgxKV19ZnVuY3Rpb24gRzEoZSl7cmV0dXJuIGUubCsrLGUucmVhZF9zaGlmdCgyKX1mdW5jdGlvbiBYMShlKXtyZXR1cm4gZS5sKyssZS5yZWFkX3NoaWZ0KDEpIT09MH1mdW5jdGlvbiAkMShlKXtyZXR1cm4gZS5sKyssSmUoZSl9ZnVuY3Rpb24gejEoZSxhLHIpe3JldHVybiBlLmwrKyxNYShlLGEtMSxyKX1mdW5jdGlvbiBLMShlLGEpe3ZhciByPVtlLnJlYWRfc2hpZnQoMSldO2lmKGE9PTEyKXN3aXRjaChyWzBdKXtjYXNlIDI6clswXT00O2JyZWFrO2Nhc2UgNDpyWzBdPTE2O2JyZWFrO2Nhc2UgMDpyWzBdPTE7YnJlYWs7Y2FzZSAxOnJbMF09MjticmVha31zd2l0Y2goclswXSl7Y2FzZSA0OnJbMV09UmUoZSwxKT8iVFJVRSI6IkZBTFNFIixhIT0xMiYmKGUubCs9Nyk7YnJlYWs7Y2FzZSAzNzpjYXNlIDE2OnJbMV09aWFbZVtlLmxdXSxlLmwrPWE9PTEyPzQ6ODticmVhaztjYXNlIDA6ZS5sKz04O2JyZWFrO2Nhc2UgMTpyWzFdPUplKGUpO2JyZWFrO2Nhc2UgMjpyWzFdPWZhKGUsMCx7YmlmZjphPjAmJmE8OD8yOmF9KTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiQmFkIFNlckFyOiAiK3JbMF0pfXJldHVybiByfWZ1bmN0aW9uIFkxKGUsYSxyKXtmb3IodmFyIG49ZS5yZWFkX3NoaWZ0KHIuYmlmZj09MTI/NDoyKSx0PVtdLHM9MDtzIT1uOysrcyl0LnB1c2goKHIuYmlmZj09MTI/bmE6ZHQpKGUpKTtyZXR1cm4gdH1mdW5jdGlvbiBqMShlLGEscil7dmFyIG49MCx0PTA7ci5iaWZmPT0xMj8obj1lLnJlYWRfc2hpZnQoNCksdD1lLnJlYWRfc2hpZnQoNCkpOih0PTErZS5yZWFkX3NoaWZ0KDEpLG49MStlLnJlYWRfc2hpZnQoMikpLHIuYmlmZj49MiYmci5iaWZmPDgmJigtLW4sLS10PT0wJiYodD0yNTYpKTtmb3IodmFyIHM9MCxpPVtdO3MhPW4mJihpW3NdPVtdKTsrK3MpZm9yKHZhciBjPTA7YyE9dDsrK2MpaVtzXVtjXT1LMShlLHIuYmlmZik7cmV0dXJuIGl9ZnVuY3Rpb24gSjEoZSxhLHIpe3ZhciBuPWUucmVhZF9zaGlmdCgxKT4+PjUmMyx0PSFyfHxyLmJpZmY+PTg/NDoyLHM9ZS5yZWFkX3NoaWZ0KHQpO3N3aXRjaChyLmJpZmYpe2Nhc2UgMjplLmwrPTU7YnJlYWs7Y2FzZSAzOmNhc2UgNDplLmwrPTg7YnJlYWs7Y2FzZSA1OmUubCs9MTI7YnJlYWt9cmV0dXJuW24sMCxzXX1mdW5jdGlvbiBaMShlLGEscil7aWYoci5iaWZmPT01KXJldHVybiBxMShlKTt2YXIgbj1lLnJlYWRfc2hpZnQoMSk+Pj41JjMsdD1lLnJlYWRfc2hpZnQoMikscz1lLnJlYWRfc2hpZnQoNCk7cmV0dXJuW24sdCxzXX1mdW5jdGlvbiBxMShlKXt2YXIgYT1lLnJlYWRfc2hpZnQoMSk+Pj41JjMscj1lLnJlYWRfc2hpZnQoMiwiaSIpO2UubCs9ODt2YXIgbj1lLnJlYWRfc2hpZnQoMik7cmV0dXJuIGUubCs9MTIsW2EscixuXX1mdW5jdGlvbiBRMShlLGEscil7dmFyIG49ZS5yZWFkX3NoaWZ0KDEpPj4+NSYzO2UubCs9ciYmci5iaWZmPT0yPzM6NDt2YXIgdD1lLnJlYWRfc2hpZnQociYmci5iaWZmPT0yPzE6Mik7cmV0dXJuW24sdF19ZnVuY3Rpb24gZWgoZSxhLHIpe3ZhciBuPWUucmVhZF9zaGlmdCgxKT4+PjUmMyx0PWUucmVhZF9zaGlmdChyJiZyLmJpZmY9PTI/MToyKTtyZXR1cm5bbix0XX1mdW5jdGlvbiByaChlLGEscil7dmFyIG49ZS5yZWFkX3NoaWZ0KDEpPj4+NSYzO3JldHVybiBlLmwrPTQsci5iaWZmPDgmJmUubC0tLHIuYmlmZj09MTImJihlLmwrPTIpLFtuXX1mdW5jdGlvbiBhaChlLGEscil7dmFyIG49KGVbZS5sKytdJjk2KT4+NSx0PWUucmVhZF9zaGlmdCgyKSxzPTQ7aWYocilzd2l0Y2goci5iaWZmKXtjYXNlIDU6cz0xNTticmVhaztjYXNlIDEyOnM9NjticmVha31yZXR1cm4gZS5sKz1zLFtuLHRdfXZhciB0aD1ZZSxuaD1ZZSxzaD1ZZTtmdW5jdGlvbiBXYShlLGEscil7cmV0dXJuIGUubCs9MixbbTEoZSldfWZ1bmN0aW9uIHIwKGUpe3JldHVybiBlLmwrPTYsW119dmFyIGloPVdhLGNoPXIwLGZoPXIwLG9oPVdhO2Z1bmN0aW9uIERzKGUpe3JldHVybiBlLmwrPTIsW01lKGUpLGUucmVhZF9zaGlmdCgyKSYxXX12YXIgbGg9V2EsaGg9RHMsdWg9cjAseGg9V2EsZGg9V2Esdmg9WyJEYXRhIiwiQWxsIiwiSGVhZGVycyIsIj8/IiwiP0RhdGEyIiwiPz8iLCI/RGF0YUhlYWRlcnMiLCI/PyIsIlRvdGFscyIsIj8/IiwiPz8iLCI/PyIsIj9EYXRhVG90YWxzIiwiPz8iLCI/PyIsIj8/IiwiP0N1cnJlbnQiXTtmdW5jdGlvbiBwaChlKXtlLmwrPTI7dmFyIGE9ZS5yZWFkX3NoaWZ0KDIpLHI9ZS5yZWFkX3NoaWZ0KDIpLG49ZS5yZWFkX3NoaWZ0KDQpLHQ9ZS5yZWFkX3NoaWZ0KDIpLHM9ZS5yZWFkX3NoaWZ0KDIpLGk9dmhbcj4+MiYzMV07cmV0dXJue2l4dGk6YSxjb2x0eXBlOnImMyxydDppLGlkeDpuLGM6dCxDOnN9fWZ1bmN0aW9uIGdoKGUpe3JldHVybiBlLmwrPTIsW2UucmVhZF9zaGlmdCg0KV19ZnVuY3Rpb24gbWgoZSxhLHIpe3JldHVybiBlLmwrPTUsZS5sKz0yLGUubCs9ci5iaWZmPT0yPzE6NCxbIlBUR1NIRUVUIl19ZnVuY3Rpb24gX2goZSxhLHIpe3JldHVybiBlLmwrPXIuYmlmZj09Mj80OjUsWyJQVEdFTkRTSEVFVCJdfWZ1bmN0aW9uIEVoKGUpe3ZhciBhPWUucmVhZF9zaGlmdCgxKT4+PjUmMyxyPWUucmVhZF9zaGlmdCgyKTtyZXR1cm5bYSxyXX1mdW5jdGlvbiBUaChlKXt2YXIgYT1lLnJlYWRfc2hpZnQoMSk+Pj41JjMscj1lLnJlYWRfc2hpZnQoMik7cmV0dXJuW2Escl19ZnVuY3Rpb24ga2goZSl7cmV0dXJuIGUubCs9NCxbMCwwXX12YXIgT3M9ezE6e246IlB0Z0V4cCIsZjpWMX0sMjp7bjoiUHRnVGJsIixmOnNofSwzOntuOiJQdGdBZGQiLGY6QmV9LDQ6e246IlB0Z1N1YiIsZjpCZX0sNTp7bjoiUHRnTXVsIixmOkJlfSw2OntuOiJQdGdEaXYiLGY6QmV9LDc6e246IlB0Z1Bvd2VyIixmOkJlfSw4OntuOiJQdGdDb25jYXQiLGY6QmV9LDk6e246IlB0Z0x0IixmOkJlfSwxMDp7bjoiUHRnTGUiLGY6QmV9LDExOntuOiJQdGdFcSIsZjpCZX0sMTI6e246IlB0Z0dlIixmOkJlfSwxMzp7bjoiUHRnR3QiLGY6QmV9LDE0OntuOiJQdGdOZSIsZjpCZX0sMTU6e246IlB0Z0lzZWN0IixmOkJlfSwxNjp7bjoiUHRnVW5pb24iLGY6QmV9LDE3OntuOiJQdGdSYW5nZSIsZjpCZX0sMTg6e246IlB0Z1VwbHVzIixmOkJlfSwxOTp7bjoiUHRnVW1pbnVzIixmOkJlfSwyMDp7bjoiUHRnUGVyY2VudCIsZjpCZX0sMjE6e246IlB0Z1BhcmVuIixmOkJlfSwyMjp7bjoiUHRnTWlzc0FyZyIsZjpCZX0sMjM6e246IlB0Z1N0ciIsZjp6MX0sMjY6e246IlB0Z1NoZWV0IixmOm1ofSwyNzp7bjoiUHRnRW5kU2hlZXQiLGY6X2h9LDI4OntuOiJQdGdFcnIiLGY6VzF9LDI5OntuOiJQdGdCb29sIixmOlgxfSwzMDp7bjoiUHRnSW50IixmOkcxfSwzMTp7bjoiUHRnTnVtIixmOiQxfSwzMjp7bjoiUHRnQXJyYXkiLGY6UzF9LDMzOntuOiJQdGdGdW5jIixmOkIxfSwzNDp7bjoiUHRnRnVuY1ZhciIsZjpiMX0sMzU6e246IlB0Z05hbWUiLGY6SjF9LDM2OntuOiJQdGdSZWYiLGY6UDF9LDM3OntuOiJQdGdBcmVhIixmOlQxfSwzODp7bjoiUHRnTWVtQXJlYSIsZjpRMX0sMzk6e246IlB0Z01lbUVyciIsZjp0aH0sNDA6e246IlB0Z01lbU5vTWVtIixmOm5ofSw0MTp7bjoiUHRnTWVtRnVuYyIsZjplaH0sNDI6e246IlB0Z1JlZkVyciIsZjpyaH0sNDM6e246IlB0Z0FyZWFFcnIiLGY6dzF9LDQ0OntuOiJQdGdSZWZOIixmOkwxfSw0NTp7bjoiUHRnQXJlYU4iLGY6RjF9LDQ2OntuOiJQdGdNZW1BcmVhTiIsZjpFaH0sNDc6e246IlB0Z01lbU5vTWVtTiIsZjpUaH0sNTc6e246IlB0Z05hbWVYIixmOloxfSw1ODp7bjoiUHRnUmVmM2QiLGY6TTF9LDU5OntuOiJQdGdBcmVhM2QiLGY6azF9LDYwOntuOiJQdGdSZWZFcnIzZCIsZjphaH0sNjE6e246IlB0Z0FyZWFFcnIzZCIsZjpBMX0sMjU1Ont9fSx3aD17NjQ6MzIsOTY6MzIsNjU6MzMsOTc6MzMsNjY6MzQsOTg6MzQsNjc6MzUsOTk6MzUsNjg6MzYsMTAwOjM2LDY5OjM3LDEwMTozNyw3MDozOCwxMDI6MzgsNzE6MzksMTAzOjM5LDcyOjQwLDEwNDo0MCw3Mzo0MSwxMDU6NDEsNzQ6NDIsMTA2OjQyLDc1OjQzLDEwNzo0Myw3Njo0NCwxMDg6NDQsNzc6NDUsMTA5OjQ1LDc4OjQ2LDExMDo0Niw3OTo0NywxMTE6NDcsODg6MzQsMTIwOjM0LDg5OjU3LDEyMTo1Nyw5MDo1OCwxMjI6NTgsOTE6NTksMTIzOjU5LDkyOjYwLDEyNDo2MCw5Mzo2MSwxMjU6NjF9LEFoPXsxOntuOiJQdGdFbGZMZWwiLGY6RHN9LDI6e246IlB0Z0VsZlJ3IixmOnhofSwzOntuOiJQdGdFbGZDb2wiLGY6aWh9LDY6e246IlB0Z0VsZlJ3ViIsZjpkaH0sNzp7bjoiUHRnRWxmQ29sViIsZjpvaH0sMTA6e246IlB0Z0VsZlJhZGljYWwiLGY6bGh9LDExOntuOiJQdGdFbGZSYWRpY2FsUyIsZjp1aH0sMTM6e246IlB0Z0VsZkNvbFMiLGY6Y2h9LDE1OntuOiJQdGdFbGZDb2xTViIsZjpmaH0sMTY6e246IlB0Z0VsZlJhZGljYWxMZWwiLGY6aGh9LDI1OntuOiJQdGdMaXN0IixmOnBofSwyOTp7bjoiUHRnU3hOYW1lIixmOmdofSwyNTU6e319LEZoPXswOntuOiJQdGdBdHRyTm9vcCIsZjpraH0sMTp7bjoiUHRnQXR0clNlbWkiLGY6UjF9LDI6e246IlB0Z0F0dHJJZiIsZjpEMX0sNDp7bjoiUHRnQXR0ckNob29zZSIsZjpDMX0sODp7bjoiUHRnQXR0ckdvdG8iLGY6eTF9LDE2OntuOiJQdGdBdHRyU3VtIixmOkgxfSwzMjp7bjoiUHRnQXR0ckJheGNlbCIsZjpDc30sMzM6e246IlB0Z0F0dHJCYXhjZWwiLGY6Q3N9LDY0OntuOiJQdGdBdHRyU3BhY2UiLGY6STF9LDY1OntuOiJQdGdBdHRyU3BhY2VTZW1pIixmOk4xfSwxMjg6e246IlB0Z0F0dHJJZkVycm9yIixmOk8xfSwyNTU6e319O2Z1bmN0aW9uIEdhKGUsYSxyLG4pe2lmKG4uYmlmZjw4KXJldHVybiBZZShlLGEpO2Zvcih2YXIgdD1lLmwrYSxzPVtdLGk9MDtpIT09ci5sZW5ndGg7KytpKXN3aXRjaChyW2ldWzBdKXtjYXNlIlB0Z0FycmF5IjpyW2ldWzFdPWoxKGUsMCxuKSxzLnB1c2gocltpXVsxXSk7YnJlYWs7Y2FzZSJQdGdNZW1BcmVhIjpyW2ldWzJdPVkxKGUscltpXVsxXSxuKSxzLnB1c2gocltpXVsyXSk7YnJlYWs7Y2FzZSJQdGdFeHAiOm4mJm4uYmlmZj09MTImJihyW2ldWzFdWzFdPWUucmVhZF9zaGlmdCg0KSxzLnB1c2gocltpXVsxXSkpO2JyZWFrO2Nhc2UiUHRnTGlzdCI6Y2FzZSJQdGdFbGZSYWRpY2FsUyI6Y2FzZSJQdGdFbGZDb2xTIjpjYXNlIlB0Z0VsZkNvbFNWIjp0aHJvdyJVbnN1cHBvcnRlZCAiK3JbaV1bMF19cmV0dXJuIGE9dC1lLmwsYSE9PTAmJnMucHVzaChZZShlLGEpKSxzfWZ1bmN0aW9uIFhhKGUsYSxyKXtmb3IodmFyIG49ZS5sK2EsdCxzLGk9W107biE9ZS5sOylhPW4tZS5sLHM9ZVtlLmxdLHQ9T3Nbc118fE9zW3doW3NdXSwocz09PTI0fHxzPT09MjUpJiYodD0ocz09PTI0P0FoOkZoKVtlW2UubCsxXV0pLCF0fHwhdC5mP1llKGUsYSk6aS5wdXNoKFt0Lm4sdC5mKGUsYSxyKV0pO3JldHVybiBpfWZ1bmN0aW9uIFNoKGUpe2Zvcih2YXIgYT1bXSxyPTA7cjxlLmxlbmd0aDsrK3Ipe2Zvcih2YXIgbj1lW3JdLHQ9W10scz0wO3M8bi5sZW5ndGg7KytzKXt2YXIgaT1uW3NdO2lmKGkpc3dpdGNoKGlbMF0pe2Nhc2UgMjp0LnB1c2goJyInK2lbMV0ucmVwbGFjZSgvIi9nLCciIicpKyciJyk7YnJlYWs7ZGVmYXVsdDp0LnB1c2goaVsxXSl9ZWxzZSB0LnB1c2goIiIpfWEucHVzaCh0LmpvaW4oIiwiKSl9cmV0dXJuIGEuam9pbigiOyIpfXZhciBDaD17UHRnQWRkOiIrIixQdGdDb25jYXQ6IiYiLFB0Z0RpdjoiLyIsUHRnRXE6Ij0iLFB0Z0dlOiI+PSIsUHRnR3Q6Ij4iLFB0Z0xlOiI8PSIsUHRnTHQ6IjwiLFB0Z011bDoiKiIsUHRnTmU6Ijw+IixQdGdQb3dlcjoiXiIsUHRnU3ViOiItIn07ZnVuY3Rpb24geWgoZSxhKXtpZighZSYmIShhJiZhLmJpZmY8PTUmJmEuYmlmZj49MikpdGhyb3cgbmV3IEVycm9yKCJlbXB0eSBzaGVldCBuYW1lIik7cmV0dXJuL1teXHdcdTRFMDAtXHU5RkZGXHUzMDQwLVx1MzBGRl0vLnRlc3QoZSk/IiciK2UrIiciOmV9ZnVuY3Rpb24gUnMoZSxhLHIpe2lmKCFlKXJldHVybiJTSDMzVEpTRVJSMCI7aWYoci5iaWZmPjgmJighZS5YVEl8fCFlLlhUSVthXSkpcmV0dXJuIGUuU2hlZXROYW1lc1thXTtpZighZS5YVEkpcmV0dXJuIlNIMzNUSlNFUlI2Ijt2YXIgbj1lLlhUSVthXTtpZihyLmJpZmY8OClyZXR1cm4gYT4xZTQmJihhLT02NTUzNiksYTwwJiYoYT0tYSksYT09MD8iIjplLlhUSVthLTFdO2lmKCFuKXJldHVybiJTSDMzVEpTRVJSMSI7dmFyIHQ9IiI7aWYoci5iaWZmPjgpc3dpdGNoKGVbblswXV1bMF0pe2Nhc2UgMzU3OnJldHVybiB0PW5bMV09PS0xPyIjUkVGIjplLlNoZWV0TmFtZXNbblsxXV0sblsxXT09blsyXT90OnQrIjoiK2UuU2hlZXROYW1lc1tuWzJdXTtjYXNlIDM1ODpyZXR1cm4gci5TSUQhPW51bGw/ZS5TaGVldE5hbWVzW3IuU0lEXToiU0gzM1RKU1NBTUUiK2VbblswXV1bMF07Y2FzZSAzNTU6ZGVmYXVsdDpyZXR1cm4iU0gzM1RKU1NSQyIrZVtuWzBdXVswXX1zd2l0Y2goZVtuWzBdXVswXVswXSl7Y2FzZSAxMDI1OnJldHVybiB0PW5bMV09PS0xPyIjUkVGIjplLlNoZWV0TmFtZXNbblsxXV18fCJTSDMzVEpTRVJSMyIsblsxXT09blsyXT90OnQrIjoiK2UuU2hlZXROYW1lc1tuWzJdXTtjYXNlIDE0ODQ5OnJldHVybiBlW25bMF1dLnNsaWNlKDEpLm1hcChmdW5jdGlvbihzKXtyZXR1cm4gcy5OYW1lfSkuam9pbigiOzsiKTtkZWZhdWx0OnJldHVybiBlW25bMF1dWzBdWzNdPyh0PW5bMV09PS0xPyIjUkVGIjplW25bMF1dWzBdWzNdW25bMV1dfHwiU0gzM1RKU0VSUjQiLG5bMV09PW5bMl0/dDp0KyI6IitlW25bMF1dWzBdWzNdW25bMl1dKToiU0gzM1RKU0VSUjIifX1mdW5jdGlvbiBJcyhlLGEscil7dmFyIG49UnMoZSxhLHIpO3JldHVybiBuPT0iI1JFRiI/bjp5aChuLHIpfWZ1bmN0aW9uIHFlKGUsYSxyLG4sdCl7dmFyIHM9dCYmdC5iaWZmfHw4LGk9e3M6e2M6MCxyOjB9fSxjPVtdLGYsbyxsLGg9MCx4PTAsZCx2PSIiO2lmKCFlWzBdfHwhZVswXVswXSlyZXR1cm4iIjtmb3IodmFyIHU9LTEsZz0iIixGPTAseT1lWzBdLmxlbmd0aDtGPHk7KytGKXt2YXIgXz1lWzBdW0ZdO3N3aXRjaChfWzBdKXtjYXNlIlB0Z1VtaW51cyI6Yy5wdXNoKCItIitjLnBvcCgpKTticmVhaztjYXNlIlB0Z1VwbHVzIjpjLnB1c2goIisiK2MucG9wKCkpO2JyZWFrO2Nhc2UiUHRnUGVyY2VudCI6Yy5wdXNoKGMucG9wKCkrIiUiKTticmVhaztjYXNlIlB0Z0FkZCI6Y2FzZSJQdGdDb25jYXQiOmNhc2UiUHRnRGl2IjpjYXNlIlB0Z0VxIjpjYXNlIlB0Z0dlIjpjYXNlIlB0Z0d0IjpjYXNlIlB0Z0xlIjpjYXNlIlB0Z0x0IjpjYXNlIlB0Z011bCI6Y2FzZSJQdGdOZSI6Y2FzZSJQdGdQb3dlciI6Y2FzZSJQdGdTdWIiOmlmKGY9Yy5wb3AoKSxvPWMucG9wKCksdT49MCl7c3dpdGNoKGVbMF1bdV1bMV1bMF0pe2Nhc2UgMDpnPURlKCIgIixlWzBdW3VdWzFdWzFdKTticmVhaztjYXNlIDE6Zz1EZSgiXHIiLGVbMF1bdV1bMV1bMV0pO2JyZWFrO2RlZmF1bHQ6aWYoZz0iIix0LldURil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgUHRnQXR0clNwYWNlVHlwZSAiK2VbMF1bdV1bMV1bMF0pfW89bytnLHU9LTF9Yy5wdXNoKG8rQ2hbX1swXV0rZik7YnJlYWs7Y2FzZSJQdGdJc2VjdCI6Zj1jLnBvcCgpLG89Yy5wb3AoKSxjLnB1c2gobysiICIrZik7YnJlYWs7Y2FzZSJQdGdVbmlvbiI6Zj1jLnBvcCgpLG89Yy5wb3AoKSxjLnB1c2gobysiLCIrZik7YnJlYWs7Y2FzZSJQdGdSYW5nZSI6Zj1jLnBvcCgpLG89Yy5wb3AoKSxjLnB1c2gobysiOiIrZik7YnJlYWs7Y2FzZSJQdGdBdHRyQ2hvb3NlIjpicmVhaztjYXNlIlB0Z0F0dHJHb3RvIjpicmVhaztjYXNlIlB0Z0F0dHJJZiI6YnJlYWs7Y2FzZSJQdGdBdHRySWZFcnJvciI6YnJlYWs7Y2FzZSJQdGdSZWYiOmw9SWEoX1sxXVsxXSxpLHQpLGMucHVzaChOYShsLHMpKTticmVhaztjYXNlIlB0Z1JlZk4iOmw9cj9JYShfWzFdWzFdLHIsdCk6X1sxXVsxXSxjLnB1c2goTmEobCxzKSk7YnJlYWs7Y2FzZSJQdGdSZWYzZCI6aD1fWzFdWzFdLGw9SWEoX1sxXVsyXSxpLHQpLHY9SXMobixoLHQpLGMucHVzaCh2KyIhIitOYShsLHMpKTticmVhaztjYXNlIlB0Z0Z1bmMiOmNhc2UiUHRnRnVuY1ZhciI6dmFyIE49X1sxXVswXSxiPV9bMV1bMV07Tnx8KE49MCksTiY9MTI3O3ZhciBJPU49PTA/W106Yy5zbGljZSgtTik7Yy5sZW5ndGgtPU4sYj09PSJVc2VyIiYmKGI9SS5zaGlmdCgpKSxjLnB1c2goYisiKCIrSS5qb2luKCIsIikrIikiKTticmVhaztjYXNlIlB0Z0Jvb2wiOmMucHVzaChfWzFdPyJUUlVFIjoiRkFMU0UiKTticmVhaztjYXNlIlB0Z0ludCI6Yy5wdXNoKF9bMV0pO2JyZWFrO2Nhc2UiUHRnTnVtIjpjLnB1c2goU3RyaW5nKF9bMV0pKTticmVhaztjYXNlIlB0Z1N0ciI6Yy5wdXNoKCciJytfWzFdLnJlcGxhY2UoLyIvZywnIiInKSsnIicpO2JyZWFrO2Nhc2UiUHRnRXJyIjpjLnB1c2goX1sxXSk7YnJlYWs7Y2FzZSJQdGdBcmVhTiI6ZD1SbihfWzFdWzFdLHI/e3M6cn06aSx0KSxjLnB1c2goVXQoZCx0KSk7YnJlYWs7Y2FzZSJQdGdBcmVhIjpkPVJuKF9bMV1bMV0saSx0KSxjLnB1c2goVXQoZCx0KSk7YnJlYWs7Y2FzZSJQdGdBcmVhM2QiOmg9X1sxXVsxXSxkPV9bMV1bMl0sdj1JcyhuLGgsdCksYy5wdXNoKHYrIiEiK1V0KGQsdCkpO2JyZWFrO2Nhc2UiUHRnQXR0clN1bSI6Yy5wdXNoKCJTVU0oIitjLnBvcCgpKyIpIik7YnJlYWs7Y2FzZSJQdGdBdHRyQmF4Y2VsIjpjYXNlIlB0Z0F0dHJTZW1pIjpicmVhaztjYXNlIlB0Z05hbWUiOng9X1sxXVsyXTt2YXIgQT0obi5uYW1lc3x8W10pW3gtMV18fChuWzBdfHxbXSlbeF0sVj1BP0EuTmFtZToiU0gzM1RKU05BTUUiK1N0cmluZyh4KTtWJiZWLnNsaWNlKDAsNik9PSJfeGxmbi4iJiYhdC54bGZuJiYoVj1WLnNsaWNlKDYpKSxjLnB1c2goVik7YnJlYWs7Y2FzZSJQdGdOYW1lWCI6dmFyIEQ9X1sxXVsxXTt4PV9bMV1bMl07dmFyIHo7aWYodC5iaWZmPD01KUQ8MCYmKEQ9LUQpLG5bRF0mJih6PW5bRF1beF0pO2Vsc2V7dmFyIEc9IiI7aWYoKChuW0RdfHxbXSlbMF18fFtdKVswXT09MTQ4NDl8fCgoKG5bRF18fFtdKVswXXx8W10pWzBdPT0xMDI1P25bRF1beF0mJm5bRF1beF0uaXRhYj4wJiYoRz1uLlNoZWV0TmFtZXNbbltEXVt4XS5pdGFiLTFdKyIhIik6Rz1uLlNoZWV0TmFtZXNbeC0xXSsiISIpLG5bRF0mJm5bRF1beF0pRys9bltEXVt4XS5OYW1lO2Vsc2UgaWYoblswXSYmblswXVt4XSlHKz1uWzBdW3hdLk5hbWU7ZWxzZXt2YXIgUD0oUnMobixELHQpfHwiIikuc3BsaXQoIjs7Iik7UFt4LTFdP0c9UFt4LTFdOkcrPSJTSDMzVEpTRVJSWCJ9Yy5wdXNoKEcpO2JyZWFrfXp8fCh6PXtOYW1lOiJTSDMzVEpTRVJSWSJ9KSxjLnB1c2goei5OYW1lKTticmVhaztjYXNlIlB0Z1BhcmVuIjp2YXIgSj0iKCIsZmU9IikiO2lmKHU+PTApe3N3aXRjaChnPSIiLGVbMF1bdV1bMV1bMF0pe2Nhc2UgMjpKPURlKCIgIixlWzBdW3VdWzFdWzFdKStKO2JyZWFrO2Nhc2UgMzpKPURlKCJcciIsZVswXVt1XVsxXVsxXSkrSjticmVhaztjYXNlIDQ6ZmU9RGUoIiAiLGVbMF1bdV1bMV1bMV0pK2ZlO2JyZWFrO2Nhc2UgNTpmZT1EZSgiXHIiLGVbMF1bdV1bMV1bMV0pK2ZlO2JyZWFrO2RlZmF1bHQ6aWYodC5XVEYpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIFB0Z0F0dHJTcGFjZVR5cGUgIitlWzBdW3VdWzFdWzBdKX11PS0xfWMucHVzaChKK2MucG9wKCkrZmUpO2JyZWFrO2Nhc2UiUHRnUmVmRXJyIjpjLnB1c2goIiNSRUYhIik7YnJlYWs7Y2FzZSJQdGdSZWZFcnIzZCI6Yy5wdXNoKCIjUkVGISIpO2JyZWFrO2Nhc2UiUHRnRXhwIjpsPXtjOl9bMV1bMV0scjpfWzFdWzBdfTt2YXIgcmU9e2M6ci5jLHI6ci5yfTtpZihuLnNoYXJlZGZbdWUobCldKXt2YXIgY2U9bi5zaGFyZWRmW3VlKGwpXTtjLnB1c2gocWUoY2UsaSxyZSxuLHQpKX1lbHNle3ZhciBpZT0hMTtmb3IoZj0wO2YhPW4uYXJyYXlmLmxlbmd0aDsrK2YpaWYobz1uLmFycmF5ZltmXSwhKGwuYzxvWzBdLnMuY3x8bC5jPm9bMF0uZS5jKSYmIShsLnI8b1swXS5zLnJ8fGwucj5vWzBdLmUucikpe2MucHVzaChxZShvWzFdLGkscmUsbix0KSksaWU9ITA7YnJlYWt9aWV8fGMucHVzaChfWzFdKX1icmVhaztjYXNlIlB0Z0FycmF5IjpjLnB1c2goInsiK1NoKF9bMV0pKyJ9Iik7YnJlYWs7Y2FzZSJQdGdNZW1BcmVhIjpicmVhaztjYXNlIlB0Z0F0dHJTcGFjZSI6Y2FzZSJQdGdBdHRyU3BhY2VTZW1pIjp1PUY7YnJlYWs7Y2FzZSJQdGdUYmwiOmJyZWFrO2Nhc2UiUHRnTWVtRXJyIjpicmVhaztjYXNlIlB0Z01pc3NBcmciOmMucHVzaCgiIik7YnJlYWs7Y2FzZSJQdGdBcmVhRXJyIjpjLnB1c2goIiNSRUYhIik7YnJlYWs7Y2FzZSJQdGdBcmVhRXJyM2QiOmMucHVzaCgiI1JFRiEiKTticmVhaztjYXNlIlB0Z0xpc3QiOmMucHVzaCgiVGFibGUiK19bMV0uaWR4KyJbIyIrX1sxXS5ydCsiXSIpO2JyZWFrO2Nhc2UiUHRnTWVtQXJlYU4iOmNhc2UiUHRnTWVtTm9NZW1OIjpjYXNlIlB0Z0F0dHJOb29wIjpjYXNlIlB0Z1NoZWV0IjpjYXNlIlB0Z0VuZFNoZWV0IjpicmVhaztjYXNlIlB0Z01lbUZ1bmMiOmJyZWFrO2Nhc2UiUHRnTWVtTm9NZW0iOmJyZWFrO2Nhc2UiUHRnRWxmQ29sIjpjYXNlIlB0Z0VsZkNvbFMiOmNhc2UiUHRnRWxmQ29sU1YiOmNhc2UiUHRnRWxmQ29sViI6Y2FzZSJQdGdFbGZMZWwiOmNhc2UiUHRnRWxmUmFkaWNhbCI6Y2FzZSJQdGdFbGZSYWRpY2FsTGVsIjpjYXNlIlB0Z0VsZlJhZGljYWxTIjpjYXNlIlB0Z0VsZlJ3IjpjYXNlIlB0Z0VsZlJ3ViI6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBFTEZzIik7Y2FzZSJQdGdTeE5hbWUiOnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIEZvcm11bGEgVG9rZW46ICIrU3RyaW5nKF8pKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIEZvcm11bGEgVG9rZW46ICIrU3RyaW5nKF8pKX12YXIgRmU9WyJQdGdBdHRyU3BhY2UiLCJQdGdBdHRyU3BhY2VTZW1pIiwiUHRnQXR0ckdvdG8iXTtpZih0LmJpZmYhPTMmJnU+PTAmJkZlLmluZGV4T2YoZVswXVtGXVswXSk9PS0xKXtfPWVbMF1bdV07dmFyIFc9ITA7c3dpdGNoKF9bMV1bMF0pe2Nhc2UgNDpXPSExO2Nhc2UgMDpnPURlKCIgIixfWzFdWzFdKTticmVhaztjYXNlIDU6Vz0hMTtjYXNlIDE6Zz1EZSgiXHIiLF9bMV1bMV0pO2JyZWFrO2RlZmF1bHQ6aWYoZz0iIix0LldURil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgUHRnQXR0clNwYWNlVHlwZSAiK19bMV1bMF0pfWMucHVzaCgoVz9nOiIiKStjLnBvcCgpKyhXPyIiOmcpKSx1PS0xfX1pZihjLmxlbmd0aD4xJiZ0LldURil0aHJvdyBuZXcgRXJyb3IoImJhZCBmb3JtdWxhIHN0YWNrIik7cmV0dXJuIGNbMF19ZnVuY3Rpb24gRGgoZSxhLHIpe3ZhciBuPWUubCthLHQ9ci5iaWZmPT0yPzE6MixzLGk9ZS5yZWFkX3NoaWZ0KHQpO2lmKGk9PTY1NTM1KXJldHVybltbXSxZZShlLGEtMildO3ZhciBjPVhhKGUsaSxyKTtyZXR1cm4gYSE9PWkrdCYmKHM9R2EoZSxhLWktdCxjLHIpKSxlLmw9bixbYyxzXX1mdW5jdGlvbiBPaChlLGEscil7dmFyIG49ZS5sK2EsdD1yLmJpZmY9PTI/MToyLHMsaT1lLnJlYWRfc2hpZnQodCk7aWYoaT09NjU1MzUpcmV0dXJuW1tdLFllKGUsYS0yKV07dmFyIGM9WGEoZSxpLHIpO3JldHVybiBhIT09aSt0JiYocz1HYShlLGEtaS10LGMscikpLGUubD1uLFtjLHNdfWZ1bmN0aW9uIFJoKGUsYSxyLG4pe3ZhciB0PWUubCthLHM9WGEoZSxuLHIpLGk7cmV0dXJuIHQhPT1lLmwmJihpPUdhKGUsdC1lLmwscyxyKSksW3MsaV19ZnVuY3Rpb24gSWgoZSxhLHIpe3ZhciBuPWUubCthLHQscz1lLnJlYWRfc2hpZnQoMiksaT1YYShlLHMscik7cmV0dXJuIHM9PTY1NTM1P1tbXSxZZShlLGEtMildOihhIT09cysyJiYodD1HYShlLG4tcy0yLGkscikpLFtpLHRdKX1mdW5jdGlvbiBOaChlKXt2YXIgYTtpZihOcihlLGUubCs2KSE9PTY1NTM1KXJldHVybltKZShlKSwibiJdO3N3aXRjaChlW2UubF0pe2Nhc2UgMDpyZXR1cm4gZS5sKz04LFsiU3RyaW5nIiwicyJdO2Nhc2UgMTpyZXR1cm4gYT1lW2UubCsyXT09PTEsZS5sKz04LFthLCJiIl07Y2FzZSAyOnJldHVybiBhPWVbZS5sKzJdLGUubCs9OCxbYSwiZSJdO2Nhc2UgMzpyZXR1cm4gZS5sKz04LFsiIiwicyJdfXJldHVybltdfWZ1bmN0aW9uIGEwKGUsYSxyKXt2YXIgbj1lLmwrYSx0PXlyKGUpO3IuYmlmZj09MiYmKytlLmw7dmFyIHM9TmgoZSksaT1lLnJlYWRfc2hpZnQoMSk7ci5iaWZmIT0yJiYoZS5yZWFkX3NoaWZ0KDEpLHIuYmlmZj49NSYmZS5yZWFkX3NoaWZ0KDQpKTt2YXIgYz1PaChlLG4tZS5sLHIpO3JldHVybntjZWxsOnQsdmFsOnNbMF0sZm9ybXVsYTpjLHNoYXJlZDppPj4zJjEsdHQ6c1sxXX19ZnVuY3Rpb24gVHQoZSxhLHIpe3ZhciBuPWUucmVhZF9zaGlmdCg0KSx0PVhhKGUsbixyKSxzPWUucmVhZF9zaGlmdCg0KSxpPXM+MD9HYShlLHMsdCxyKTpudWxsO3JldHVyblt0LGldfXZhciBQaD1UdCxrdD1UdCxMaD1UdCxNaD1UdCxCaD17MDoiQkVFUCIsMToiT1BFTiIsMjoiT1BFTi5MSU5LUyIsMzoiQ0xPU0UuQUxMIiw0OiJTQVZFIiw1OiJTQVZFLkFTIiw2OiJGSUxFLkRFTEVURSIsNzoiUEFHRS5TRVRVUCIsODoiUFJJTlQiLDk6IlBSSU5URVIuU0VUVVAiLDEwOiJRVUlUIiwxMToiTkVXLldJTkRPVyIsMTI6IkFSUkFOR0UuQUxMIiwxMzoiV0lORE9XLlNJWkUiLDE0OiJXSU5ET1cuTU9WRSIsMTU6IkZVTEwiLDE2OiJDTE9TRSIsMTc6IlJVTiIsMjI6IlNFVC5QUklOVC5BUkVBIiwyMzoiU0VULlBSSU5ULlRJVExFUyIsMjQ6IlNFVC5QQUdFLkJSRUFLIiwyNToiUkVNT1ZFLlBBR0UuQlJFQUsiLDI2OiJGT05UIiwyNzoiRElTUExBWSIsMjg6IlBST1RFQ1QuRE9DVU1FTlQiLDI5OiJQUkVDSVNJT04iLDMwOiJBMS5SMUMxIiwzMToiQ0FMQ1VMQVRFLk5PVyIsMzI6IkNBTENVTEFUSU9OIiwzNDoiREFUQS5GSU5EIiwzNToiRVhUUkFDVCIsMzY6IkRBVEEuREVMRVRFIiwzNzoiU0VULkRBVEFCQVNFIiwzODoiU0VULkNSSVRFUklBIiwzOToiU09SVCIsNDA6IkRBVEEuU0VSSUVTIiw0MToiVEFCTEUiLDQyOiJGT1JNQVQuTlVNQkVSIiw0MzoiQUxJR05NRU5UIiw0NDoiU1RZTEUiLDQ1OiJCT1JERVIiLDQ2OiJDRUxMLlBST1RFQ1RJT04iLDQ3OiJDT0xVTU4uV0lEVEgiLDQ4OiJVTkRPIiw0OToiQ1VUIiw1MDoiQ09QWSIsNTE6IlBBU1RFIiw1MjoiQ0xFQVIiLDUzOiJQQVNURS5TUEVDSUFMIiw1NDoiRURJVC5ERUxFVEUiLDU1OiJJTlNFUlQiLDU2OiJGSUxMLlJJR0hUIiw1NzoiRklMTC5ET1dOIiw2MToiREVGSU5FLk5BTUUiLDYyOiJDUkVBVEUuTkFNRVMiLDYzOiJGT1JNVUxBLkdPVE8iLDY0OiJGT1JNVUxBLkZJTkQiLDY1OiJTRUxFQ1QuTEFTVC5DRUxMIiw2NjoiU0hPVy5BQ1RJVkUuQ0VMTCIsNjc6IkdBTExFUlkuQVJFQSIsNjg6IkdBTExFUlkuQkFSIiw2OToiR0FMTEVSWS5DT0xVTU4iLDcwOiJHQUxMRVJZLkxJTkUiLDcxOiJHQUxMRVJZLlBJRSIsNzI6IkdBTExFUlkuU0NBVFRFUiIsNzM6IkNPTUJJTkFUSU9OIiw3NDoiUFJFRkVSUkVEIiw3NToiQURELk9WRVJMQVkiLDc2OiJHUklETElORVMiLDc3OiJTRVQuUFJFRkVSUkVEIiw3ODoiQVhFUyIsNzk6IkxFR0VORCIsODA6IkFUVEFDSC5URVhUIiw4MToiQURELkFSUk9XIiw4MjoiU0VMRUNULkNIQVJUIiw4MzoiU0VMRUNULlBMT1QuQVJFQSIsODQ6IlBBVFRFUk5TIiw4NToiTUFJTi5DSEFSVCIsODY6Ik9WRVJMQVkiLDg3OiJTQ0FMRSIsODg6IkZPUk1BVC5MRUdFTkQiLDg5OiJGT1JNQVQuVEVYVCIsOTA6IkVESVQuUkVQRUFUIiw5MToiUEFSU0UiLDkyOiJKVVNUSUZZIiw5MzoiSElERSIsOTQ6IlVOSElERSIsOTU6IldPUktTUEFDRSIsOTY6IkZPUk1VTEEiLDk3OiJGT1JNVUxBLkZJTEwiLDk4OiJGT1JNVUxBLkFSUkFZIiw5OToiREFUQS5GSU5ELk5FWFQiLDEwMDoiREFUQS5GSU5ELlBSRVYiLDEwMToiRk9STVVMQS5GSU5ELk5FWFQiLDEwMjoiRk9STVVMQS5GSU5ELlBSRVYiLDEwMzoiQUNUSVZBVEUiLDEwNDoiQUNUSVZBVEUuTkVYVCIsMTA1OiJBQ1RJVkFURS5QUkVWIiwxMDY6IlVOTE9DS0VELk5FWFQiLDEwNzoiVU5MT0NLRUQuUFJFViIsMTA4OiJDT1BZLlBJQ1RVUkUiLDEwOToiU0VMRUNUIiwxMTA6IkRFTEVURS5OQU1FIiwxMTE6IkRFTEVURS5GT1JNQVQiLDExMjoiVkxJTkUiLDExMzoiSExJTkUiLDExNDoiVlBBR0UiLDExNToiSFBBR0UiLDExNjoiVlNDUk9MTCIsMTE3OiJIU0NST0xMIiwxMTg6IkFMRVJUIiwxMTk6Ik5FVyIsMTIwOiJDQU5DRUwuQ09QWSIsMTIxOiJTSE9XLkNMSVBCT0FSRCIsMTIyOiJNRVNTQUdFIiwxMjQ6IlBBU1RFLkxJTksiLDEyNToiQVBQLkFDVElWQVRFIiwxMjY6IkRFTEVURS5BUlJPVyIsMTI3OiJST1cuSEVJR0hUIiwxMjg6IkZPUk1BVC5NT1ZFIiwxMjk6IkZPUk1BVC5TSVpFIiwxMzA6IkZPUk1VTEEuUkVQTEFDRSIsMTMxOiJTRU5ELktFWVMiLDEzMjoiU0VMRUNULlNQRUNJQUwiLDEzMzoiQVBQTFkuTkFNRVMiLDEzNDoiUkVQTEFDRS5GT05UIiwxMzU6IkZSRUVaRS5QQU5FUyIsMTM2OiJTSE9XLklORk8iLDEzNzoiU1BMSVQiLDEzODoiT04uV0lORE9XIiwxMzk6Ik9OLkRBVEEiLDE0MDoiRElTQUJMRS5JTlBVVCIsMTQyOiJPVVRMSU5FIiwxNDM6IkxJU1QuTkFNRVMiLDE0NDoiRklMRS5DTE9TRSIsMTQ1OiJTQVZFLldPUktCT09LIiwxNDY6IkRBVEEuRk9STSIsMTQ3OiJDT1BZLkNIQVJUIiwxNDg6Ik9OLlRJTUUiLDE0OToiV0FJVCIsMTUwOiJGT1JNQVQuRk9OVCIsMTUxOiJGSUxMLlVQIiwxNTI6IkZJTEwuTEVGVCIsMTUzOiJERUxFVEUuT1ZFUkxBWSIsMTU1OiJTSE9SVC5NRU5VUyIsMTU5OiJTRVQuVVBEQVRFLlNUQVRVUyIsMTYxOiJDT0xPUi5QQUxFVFRFIiwxNjI6IkRFTEVURS5TVFlMRSIsMTYzOiJXSU5ET1cuUkVTVE9SRSIsMTY0OiJXSU5ET1cuTUFYSU1JWkUiLDE2NjoiQ0hBTkdFLkxJTksiLDE2NzoiQ0FMQ1VMQVRFLkRPQ1VNRU5UIiwxNjg6Ik9OLktFWSIsMTY5OiJBUFAuUkVTVE9SRSIsMTcwOiJBUFAuTU9WRSIsMTcxOiJBUFAuU0laRSIsMTcyOiJBUFAuTUlOSU1JWkUiLDE3MzoiQVBQLk1BWElNSVpFIiwxNzQ6IkJSSU5HLlRPLkZST05UIiwxNzU6IlNFTkQuVE8uQkFDSyIsMTg1OiJNQUlOLkNIQVJULlRZUEUiLDE4NjoiT1ZFUkxBWS5DSEFSVC5UWVBFIiwxODc6IlNFTEVDVC5FTkQiLDE4ODoiT1BFTi5NQUlMIiwxODk6IlNFTkQuTUFJTCIsMTkwOiJTVEFOREFSRC5GT05UIiwxOTE6IkNPTlNPTElEQVRFIiwxOTI6IlNPUlQuU1BFQ0lBTCIsMTkzOiJHQUxMRVJZLjNELkFSRUEiLDE5NDoiR0FMTEVSWS4zRC5DT0xVTU4iLDE5NToiR0FMTEVSWS4zRC5MSU5FIiwxOTY6IkdBTExFUlkuM0QuUElFIiwxOTc6IlZJRVcuM0QiLDE5ODoiR09BTC5TRUVLIiwxOTk6IldPUktHUk9VUCIsMjAwOiJGSUxMLkdST1VQIiwyMDE6IlVQREFURS5MSU5LIiwyMDI6IlBST01PVEUiLDIwMzoiREVNT1RFIiwyMDQ6IlNIT1cuREVUQUlMIiwyMDY6IlVOR1JPVVAiLDIwNzoiT0JKRUNULlBST1BFUlRJRVMiLDIwODoiU0FWRS5ORVcuT0JKRUNUIiwyMDk6IlNIQVJFIiwyMTA6IlNIQVJFLk5BTUUiLDIxMToiRFVQTElDQVRFIiwyMTI6IkFQUExZLlNUWUxFIiwyMTM6IkFTU0lHTi5UTy5PQkpFQ1QiLDIxNDoiT0JKRUNULlBST1RFQ1RJT04iLDIxNToiSElERS5PQkpFQ1QiLDIxNjoiU0VULkVYVFJBQ1QiLDIxNzoiQ1JFQVRFLlBVQkxJU0hFUiIsMjE4OiJTVUJTQ1JJQkUuVE8iLDIxOToiQVRUUklCVVRFUyIsMjIwOiJTSE9XLlRPT0xCQVIiLDIyMjoiUFJJTlQuUFJFVklFVyIsMjIzOiJFRElULkNPTE9SIiwyMjQ6IlNIT1cuTEVWRUxTIiwyMjU6IkZPUk1BVC5NQUlOIiwyMjY6IkZPUk1BVC5PVkVSTEFZIiwyMjc6Ik9OLlJFQ0FMQyIsMjI4OiJFRElULlNFUklFUyIsMjI5OiJERUZJTkUuU1RZTEUiLDI0MDoiTElORS5QUklOVCIsMjQzOiJFTlRFUi5EQVRBIiwyNDk6IkdBTExFUlkuUkFEQVIiLDI1MDoiTUVSR0UuU1RZTEVTIiwyNTE6IkVESVRJT04uT1BUSU9OUyIsMjUyOiJQQVNURS5QSUNUVVJFIiwyNTM6IlBBU1RFLlBJQ1RVUkUuTElOSyIsMjU0OiJTUEVMTElORyIsMjU2OiJaT09NIiwyNTk6IklOU0VSVC5PQkpFQ1QiLDI2MDoiV0lORE9XLk1JTklNSVpFIiwyNjU6IlNPVU5ELk5PVEUiLDI2NjoiU09VTkQuUExBWSIsMjY3OiJGT1JNQVQuU0hBUEUiLDI2ODoiRVhURU5ELlBPTFlHT04iLDI2OToiRk9STUFULkFVVE8iLDI3MjoiR0FMTEVSWS4zRC5CQVIiLDI3MzoiR0FMTEVSWS4zRC5TVVJGQUNFIiwyNzQ6IkZJTEwuQVVUTyIsMjc2OiJDVVNUT01JWkUuVE9PTEJBUiIsMjc3OiJBREQuVE9PTCIsMjc4OiJFRElULk9CSkVDVCIsMjc5OiJPTi5ET1VCTEVDTElDSyIsMjgwOiJPTi5FTlRSWSIsMjgxOiJXT1JLQk9PSy5BREQiLDI4MjoiV09SS0JPT0suTU9WRSIsMjgzOiJXT1JLQk9PSy5DT1BZIiwyODQ6IldPUktCT09LLk9QVElPTlMiLDI4NToiU0FWRS5XT1JLU1BBQ0UiLDI4ODoiQ0hBUlQuV0laQVJEIiwyODk6IkRFTEVURS5UT09MIiwyOTA6Ik1PVkUuVE9PTCIsMjkxOiJXT1JLQk9PSy5TRUxFQ1QiLDI5MjoiV09SS0JPT0suQUNUSVZBVEUiLDI5MzoiQVNTSUdOLlRPLlRPT0wiLDI5NToiQ09QWS5UT09MIiwyOTY6IlJFU0VULlRPT0wiLDI5NzoiQ09OU1RSQUlOLk5VTUVSSUMiLDI5ODoiUEFTVEUuVE9PTCIsMzAyOiJXT1JLQk9PSy5ORVciLDMwNToiU0NFTkFSSU8uQ0VMTFMiLDMwNjoiU0NFTkFSSU8uREVMRVRFIiwzMDc6IlNDRU5BUklPLkFERCIsMzA4OiJTQ0VOQVJJTy5FRElUIiwzMDk6IlNDRU5BUklPLlNIT1ciLDMxMDoiU0NFTkFSSU8uU0hPVy5ORVhUIiwzMTE6IlNDRU5BUklPLlNVTU1BUlkiLDMxMjoiUElWT1QuVEFCTEUuV0laQVJEIiwzMTM6IlBJVk9ULkZJRUxELlBST1BFUlRJRVMiLDMxNDoiUElWT1QuRklFTEQiLDMxNToiUElWT1QuSVRFTSIsMzE2OiJQSVZPVC5BREQuRklFTERTIiwzMTg6Ik9QVElPTlMuQ0FMQ1VMQVRJT04iLDMxOToiT1BUSU9OUy5FRElUIiwzMjA6Ik9QVElPTlMuVklFVyIsMzIxOiJBRERJTi5NQU5BR0VSIiwzMjI6Ik1FTlUuRURJVE9SIiwzMjM6IkFUVEFDSC5UT09MQkFSUyIsMzI0OiJWQkFBY3RpdmF0ZSIsMzI1OiJPUFRJT05TLkNIQVJUIiwzMjg6IlZCQS5JTlNFUlQuRklMRSIsMzMwOiJWQkEuUFJPQ0VEVVJFLkRFRklOSVRJT04iLDMzNjoiUk9VVElORy5TTElQIiwzMzg6IlJPVVRFLkRPQ1VNRU5UIiwzMzk6Ik1BSUwuTE9HT04iLDM0MjoiSU5TRVJULlBJQ1RVUkUiLDM0MzoiRURJVC5UT09MIiwzNDQ6IkdBTExFUlkuRE9VR0hOVVQiLDM1MDoiQ0hBUlQuVFJFTkQiLDM1MjoiUElWT1QuSVRFTS5QUk9QRVJUSUVTIiwzNTQ6IldPUktCT09LLklOU0VSVCIsMzU1OiJPUFRJT05TLlRSQU5TSVRJT04iLDM1NjoiT1BUSU9OUy5HRU5FUkFMIiwzNzA6IkZJTFRFUi5BRFZBTkNFRCIsMzczOiJNQUlMLkFERC5NQUlMRVIiLDM3NDoiTUFJTC5ERUxFVEUuTUFJTEVSIiwzNzU6Ik1BSUwuUkVQTFkiLDM3NjoiTUFJTC5SRVBMWS5BTEwiLDM3NzoiTUFJTC5GT1JXQVJEIiwzNzg6Ik1BSUwuTkVYVC5MRVRURVIiLDM3OToiREFUQS5MQUJFTCIsMzgwOiJJTlNFUlQuVElUTEUiLDM4MToiRk9OVC5QUk9QRVJUSUVTIiwzODI6Ik1BQ1JPLk9QVElPTlMiLDM4MzoiV09SS0JPT0suSElERSIsMzg0OiJXT1JLQk9PSy5VTkhJREUiLDM4NToiV09SS0JPT0suREVMRVRFIiwzODY6IldPUktCT09LLk5BTUUiLDM4ODoiR0FMTEVSWS5DVVNUT00iLDM5MDoiQURELkNIQVJULkFVVE9GT1JNQVQiLDM5MToiREVMRVRFLkNIQVJULkFVVE9GT1JNQVQiLDM5MjoiQ0hBUlQuQURELkRBVEEiLDM5MzoiQVVUTy5PVVRMSU5FIiwzOTQ6IlRBQi5PUkRFUiIsMzk1OiJTSE9XLkRJQUxPRyIsMzk2OiJTRUxFQ1QuQUxMIiwzOTc6IlVOR1JPVVAuU0hFRVRTIiwzOTg6IlNVQlRPVEFMLkNSRUFURSIsMzk5OiJTVUJUT1RBTC5SRU1PVkUiLDQwMDoiUkVOQU1FLk9CSkVDVCIsNDEyOiJXT1JLQk9PSy5TQ1JPTEwiLDQxMzoiV09SS0JPT0suTkVYVCIsNDE0OiJXT1JLQk9PSy5QUkVWIiw0MTU6IldPUktCT09LLlRBQi5TUExJVCIsNDE2OiJGVUxMLlNDUkVFTiIsNDE3OiJXT1JLQk9PSy5QUk9URUNUIiw0MjA6IlNDUk9MTEJBUi5QUk9QRVJUSUVTIiw0MjE6IlBJVk9ULlNIT1cuUEFHRVMiLDQyMjoiVEVYVC5UTy5DT0xVTU5TIiw0MjM6IkZPUk1BVC5DSEFSVFRZUEUiLDQyNDoiTElOSy5GT1JNQVQiLDQyNToiVFJBQ0VSLkRJU1BMQVkiLDQzMDoiVFJBQ0VSLk5BVklHQVRFIiw0MzE6IlRSQUNFUi5DTEVBUiIsNDMyOiJUUkFDRVIuRVJST1IiLDQzMzoiUElWT1QuRklFTEQuR1JPVVAiLDQzNDoiUElWT1QuRklFTEQuVU5HUk9VUCIsNDM1OiJDSEVDS0JPWC5QUk9QRVJUSUVTIiw0MzY6IkxBQkVMLlBST1BFUlRJRVMiLDQzNzoiTElTVEJPWC5QUk9QRVJUSUVTIiw0Mzg6IkVESVRCT1guUFJPUEVSVElFUyIsNDM5OiJQSVZPVC5SRUZSRVNIIiw0NDA6IkxJTksuQ09NQk8iLDQ0MToiT1BFTi5URVhUIiw0NDI6IkhJREUuRElBTE9HIiw0NDM6IlNFVC5ESUFMT0cuRk9DVVMiLDQ0NDoiRU5BQkxFLk9CSkVDVCIsNDQ1OiJQVVNIQlVUVE9OLlBST1BFUlRJRVMiLDQ0NjoiU0VULkRJQUxPRy5ERUZBVUxUIiw0NDc6IkZJTFRFUiIsNDQ4OiJGSUxURVIuU0hPVy5BTEwiLDQ0OToiQ0xFQVIuT1VUTElORSIsNDUwOiJGVU5DVElPTi5XSVpBUkQiLDQ1MToiQURELkxJU1QuSVRFTSIsNDUyOiJTRVQuTElTVC5JVEVNIiw0NTM6IlJFTU9WRS5MSVNULklURU0iLDQ1NDoiU0VMRUNULkxJU1QuSVRFTSIsNDU1OiJTRVQuQ09OVFJPTC5WQUxVRSIsNDU2OiJTQVZFLkNPUFkuQVMiLDQ1ODoiT1BUSU9OUy5MSVNUUy5BREQiLDQ1OToiT1BUSU9OUy5MSVNUUy5ERUxFVEUiLDQ2MDoiU0VSSUVTLkFYRVMiLDQ2MToiU0VSSUVTLlgiLDQ2MjoiU0VSSUVTLlkiLDQ2MzoiRVJST1JCQVIuWCIsNDY0OiJFUlJPUkJBUi5ZIiw0NjU6IkZPUk1BVC5DSEFSVCIsNDY2OiJTRVJJRVMuT1JERVIiLDQ2NzoiTUFJTC5MT0dPRkYiLDQ2ODoiQ0xFQVIuUk9VVElORy5TTElQIiw0Njk6IkFQUC5BQ1RJVkFURS5NSUNST1NPRlQiLDQ3MDoiTUFJTC5FRElULk1BSUxFUiIsNDcxOiJPTi5TSEVFVCIsNDcyOiJTVEFOREFSRC5XSURUSCIsNDczOiJTQ0VOQVJJTy5NRVJHRSIsNDc0OiJTVU1NQVJZLklORk8iLDQ3NToiRklORC5GSUxFIiw0NzY6IkFDVElWRS5DRUxMLkZPTlQiLDQ3NzoiRU5BQkxFLlRJUFdJWkFSRCIsNDc4OiJWQkEuTUFLRS5BRERJTiIsNDgwOiJJTlNFUlREQVRBVEFCTEUiLDQ4MToiV09SS0dST1VQLk9QVElPTlMiLDQ4MjoiTUFJTC5TRU5ELk1BSUxFUiIsNDg1OiJBVVRPQ09SUkVDVCIsNDg5OiJQT1NULkRPQ1VNRU5UIiw0OTE6IlBJQ0tMSVNUIiw0OTM6IlZJRVcuU0hPVyIsNDk0OiJWSUVXLkRFRklORSIsNDk1OiJWSUVXLkRFTEVURSIsNTA5OiJTSEVFVC5CQUNLR1JPVU5EIiw1MTA6IklOU0VSVC5NQVAuT0JKRUNUIiw1MTE6Ik9QVElPTlMuTUVOT05PIiw1MTc6Ik1TT0NIRUNLUyIsNTE4OiJOT1JNQUwiLDUxOToiTEFZT1VUIiw1MjA6IlJNLlBSSU5ULkFSRUEiLDUyMToiQ0xFQVIuUFJJTlQuQVJFQSIsNTIyOiJBREQuUFJJTlQuQVJFQSIsNTIzOiJNT1ZFLkJSSyIsNTQ1OiJISURFQ1VSUi5OT1RFIiw1NDY6IkhJREVBTEwuTk9URVMiLDU0NzoiREVMRVRFLk5PVEUiLDU0ODoiVFJBVkVSU0UuTk9URVMiLDU0OToiQUNUSVZBVEUuTk9URVMiLDYyMDoiUFJPVEVDVC5SRVZJU0lPTlMiLDYyMToiVU5QUk9URUNULlJFVklTSU9OUyIsNjQ3OiJPUFRJT05TLk1FIiw2NTM6IldFQi5QVUJMSVNIIiw2Njc6Ik5FV1dFQlFVRVJZIiw2NzM6IlBJVk9ULlRBQkxFLkNIQVJUIiw3NTM6Ik9QVElPTlMuU0FWRSIsNzU1OiJPUFRJT05TLlNQRUxMIiw4MDg6IkhJREVBTEwuSU5LQU5OT1RTIn0sTnM9ezA6IkNPVU5UIiwxOiJJRiIsMjoiSVNOQSIsMzoiSVNFUlJPUiIsNDoiU1VNIiw1OiJBVkVSQUdFIiw2OiJNSU4iLDc6Ik1BWCIsODoiUk9XIiw5OiJDT0xVTU4iLDEwOiJOQSIsMTE6Ik5QViIsMTI6IlNUREVWIiwxMzoiRE9MTEFSIiwxNDoiRklYRUQiLDE1OiJTSU4iLDE2OiJDT1MiLDE3OiJUQU4iLDE4OiJBVEFOIiwxOToiUEkiLDIwOiJTUVJUIiwyMToiRVhQIiwyMjoiTE4iLDIzOiJMT0cxMCIsMjQ6IkFCUyIsMjU6IklOVCIsMjY6IlNJR04iLDI3OiJST1VORCIsMjg6IkxPT0tVUCIsMjk6IklOREVYIiwzMDoiUkVQVCIsMzE6Ik1JRCIsMzI6IkxFTiIsMzM6IlZBTFVFIiwzNDoiVFJVRSIsMzU6IkZBTFNFIiwzNjoiQU5EIiwzNzoiT1IiLDM4OiJOT1QiLDM5OiJNT0QiLDQwOiJEQ09VTlQiLDQxOiJEU1VNIiw0MjoiREFWRVJBR0UiLDQzOiJETUlOIiw0NDoiRE1BWCIsNDU6IkRTVERFViIsNDY6IlZBUiIsNDc6IkRWQVIiLDQ4OiJURVhUIiw0OToiTElORVNUIiw1MDoiVFJFTkQiLDUxOiJMT0dFU1QiLDUyOiJHUk9XVEgiLDUzOiJHT1RPIiw1NDoiSEFMVCIsNTU6IlJFVFVSTiIsNTY6IlBWIiw1NzoiRlYiLDU4OiJOUEVSIiw1OToiUE1UIiw2MDoiUkFURSIsNjE6Ik1JUlIiLDYyOiJJUlIiLDYzOiJSQU5EIiw2NDoiTUFUQ0giLDY1OiJEQVRFIiw2NjoiVElNRSIsNjc6IkRBWSIsNjg6Ik1PTlRIIiw2OToiWUVBUiIsNzA6IldFRUtEQVkiLDcxOiJIT1VSIiw3MjoiTUlOVVRFIiw3MzoiU0VDT05EIiw3NDoiTk9XIiw3NToiQVJFQVMiLDc2OiJST1dTIiw3NzoiQ09MVU1OUyIsNzg6Ik9GRlNFVCIsNzk6IkFCU1JFRiIsODA6IlJFTFJFRiIsODE6IkFSR1VNRU5UIiw4MjoiU0VBUkNIIiw4MzoiVFJBTlNQT1NFIiw4NDoiRVJST1IiLDg1OiJTVEVQIiw4NjoiVFlQRSIsODc6IkVDSE8iLDg4OiJTRVQuTkFNRSIsODk6IkNBTExFUiIsOTA6IkRFUkVGIiw5MToiV0lORE9XUyIsOTI6IlNFUklFUyIsOTM6IkRPQ1VNRU5UUyIsOTQ6IkFDVElWRS5DRUxMIiw5NToiU0VMRUNUSU9OIiw5NjoiUkVTVUxUIiw5NzoiQVRBTjIiLDk4OiJBU0lOIiw5OToiQUNPUyIsMTAwOiJDSE9PU0UiLDEwMToiSExPT0tVUCIsMTAyOiJWTE9PS1VQIiwxMDM6IkxJTktTIiwxMDQ6IklOUFVUIiwxMDU6IklTUkVGIiwxMDY6IkdFVC5GT1JNVUxBIiwxMDc6IkdFVC5OQU1FIiwxMDg6IlNFVC5WQUxVRSIsMTA5OiJMT0ciLDExMDoiRVhFQyIsMTExOiJDSEFSIiwxMTI6IkxPV0VSIiwxMTM6IlVQUEVSIiwxMTQ6IlBST1BFUiIsMTE1OiJMRUZUIiwxMTY6IlJJR0hUIiwxMTc6IkVYQUNUIiwxMTg6IlRSSU0iLDExOToiUkVQTEFDRSIsMTIwOiJTVUJTVElUVVRFIiwxMjE6IkNPREUiLDEyMjoiTkFNRVMiLDEyMzoiRElSRUNUT1JZIiwxMjQ6IkZJTkQiLDEyNToiQ0VMTCIsMTI2OiJJU0VSUiIsMTI3OiJJU1RFWFQiLDEyODoiSVNOVU1CRVIiLDEyOToiSVNCTEFOSyIsMTMwOiJUIiwxMzE6Ik4iLDEzMjoiRk9QRU4iLDEzMzoiRkNMT1NFIiwxMzQ6IkZTSVpFIiwxMzU6IkZSRUFETE4iLDEzNjoiRlJFQUQiLDEzNzoiRldSSVRFTE4iLDEzODoiRldSSVRFIiwxMzk6IkZQT1MiLDE0MDoiREFURVZBTFVFIiwxNDE6IlRJTUVWQUxVRSIsMTQyOiJTTE4iLDE0MzoiU1lEIiwxNDQ6IkREQiIsMTQ1OiJHRVQuREVGIiwxNDY6IlJFRlRFWFQiLDE0NzoiVEVYVFJFRiIsMTQ4OiJJTkRJUkVDVCIsMTQ5OiJSRUdJU1RFUiIsMTUwOiJDQUxMIiwxNTE6IkFERC5CQVIiLDE1MjoiQURELk1FTlUiLDE1MzoiQURELkNPTU1BTkQiLDE1NDoiRU5BQkxFLkNPTU1BTkQiLDE1NToiQ0hFQ0suQ09NTUFORCIsMTU2OiJSRU5BTUUuQ09NTUFORCIsMTU3OiJTSE9XLkJBUiIsMTU4OiJERUxFVEUuTUVOVSIsMTU5OiJERUxFVEUuQ09NTUFORCIsMTYwOiJHRVQuQ0hBUlQuSVRFTSIsMTYxOiJESUFMT0cuQk9YIiwxNjI6IkNMRUFOIiwxNjM6Ik1ERVRFUk0iLDE2NDoiTUlOVkVSU0UiLDE2NToiTU1VTFQiLDE2NjoiRklMRVMiLDE2NzoiSVBNVCIsMTY4OiJQUE1UIiwxNjk6IkNPVU5UQSIsMTcwOiJDQU5DRUwuS0VZIiwxNzE6IkZPUiIsMTcyOiJXSElMRSIsMTczOiJCUkVBSyIsMTc0OiJORVhUIiwxNzU6IklOSVRJQVRFIiwxNzY6IlJFUVVFU1QiLDE3NzoiUE9LRSIsMTc4OiJFWEVDVVRFIiwxNzk6IlRFUk1JTkFURSIsMTgwOiJSRVNUQVJUIiwxODE6IkhFTFAiLDE4MjoiR0VULkJBUiIsMTgzOiJQUk9EVUNUIiwxODQ6IkZBQ1QiLDE4NToiR0VULkNFTEwiLDE4NjoiR0VULldPUktTUEFDRSIsMTg3OiJHRVQuV0lORE9XIiwxODg6IkdFVC5ET0NVTUVOVCIsMTg5OiJEUFJPRFVDVCIsMTkwOiJJU05PTlRFWFQiLDE5MToiR0VULk5PVEUiLDE5MjoiTk9URSIsMTkzOiJTVERFVlAiLDE5NDoiVkFSUCIsMTk1OiJEU1RERVZQIiwxOTY6IkRWQVJQIiwxOTc6IlRSVU5DIiwxOTg6IklTTE9HSUNBTCIsMTk5OiJEQ09VTlRBIiwyMDA6IkRFTEVURS5CQVIiLDIwMToiVU5SRUdJU1RFUiIsMjA0OiJVU0RPTExBUiIsMjA1OiJGSU5EQiIsMjA2OiJTRUFSQ0hCIiwyMDc6IlJFUExBQ0VCIiwyMDg6IkxFRlRCIiwyMDk6IlJJR0hUQiIsMjEwOiJNSURCIiwyMTE6IkxFTkIiLDIxMjoiUk9VTkRVUCIsMjEzOiJST1VORERPV04iLDIxNDoiQVNDIiwyMTU6IkRCQ1MiLDIxNjoiUkFOSyIsMjE5OiJBRERSRVNTIiwyMjA6IkRBWVMzNjAiLDIyMToiVE9EQVkiLDIyMjoiVkRCIiwyMjM6IkVMU0UiLDIyNDoiRUxTRS5JRiIsMjI1OiJFTkQuSUYiLDIyNjoiRk9SLkNFTEwiLDIyNzoiTUVESUFOIiwyMjg6IlNVTVBST0RVQ1QiLDIyOToiU0lOSCIsMjMwOiJDT1NIIiwyMzE6IlRBTkgiLDIzMjoiQVNJTkgiLDIzMzoiQUNPU0giLDIzNDoiQVRBTkgiLDIzNToiREdFVCIsMjM2OiJDUkVBVEUuT0JKRUNUIiwyMzc6IlZPTEFUSUxFIiwyMzg6IkxBU1QuRVJST1IiLDIzOToiQ1VTVE9NLlVORE8iLDI0MDoiQ1VTVE9NLlJFUEVBVCIsMjQxOiJGT1JNVUxBLkNPTlZFUlQiLDI0MjoiR0VULkxJTksuSU5GTyIsMjQzOiJURVhULkJPWCIsMjQ0OiJJTkZPIiwyNDU6IkdST1VQIiwyNDY6IkdFVC5PQkpFQ1QiLDI0NzoiREIiLDI0ODoiUEFVU0UiLDI1MToiUkVTVU1FIiwyNTI6IkZSRVFVRU5DWSIsMjUzOiJBREQuVE9PTEJBUiIsMjU0OiJERUxFVEUuVE9PTEJBUiIsMjU1OiJVc2VyIiwyNTY6IlJFU0VULlRPT0xCQVIiLDI1NzoiRVZBTFVBVEUiLDI1ODoiR0VULlRPT0xCQVIiLDI1OToiR0VULlRPT0wiLDI2MDoiU1BFTExJTkcuQ0hFQ0siLDI2MToiRVJST1IuVFlQRSIsMjYyOiJBUFAuVElUTEUiLDI2MzoiV0lORE9XLlRJVExFIiwyNjQ6IlNBVkUuVE9PTEJBUiIsMjY1OiJFTkFCTEUuVE9PTCIsMjY2OiJQUkVTUy5UT09MIiwyNjc6IlJFR0lTVEVSLklEIiwyNjg6IkdFVC5XT1JLQk9PSyIsMjY5OiJBVkVERVYiLDI3MDoiQkVUQURJU1QiLDI3MToiR0FNTUFMTiIsMjcyOiJCRVRBSU5WIiwyNzM6IkJJTk9NRElTVCIsMjc0OiJDSElESVNUIiwyNzU6IkNISUlOViIsMjc2OiJDT01CSU4iLDI3NzoiQ09ORklERU5DRSIsMjc4OiJDUklUQklOT00iLDI3OToiRVZFTiIsMjgwOiJFWFBPTkRJU1QiLDI4MToiRkRJU1QiLDI4MjoiRklOViIsMjgzOiJGSVNIRVIiLDI4NDoiRklTSEVSSU5WIiwyODU6IkZMT09SIiwyODY6IkdBTU1BRElTVCIsMjg3OiJHQU1NQUlOViIsMjg4OiJDRUlMSU5HIiwyODk6IkhZUEdFT01ESVNUIiwyOTA6IkxPR05PUk1ESVNUIiwyOTE6IkxPR0lOViIsMjkyOiJORUdCSU5PTURJU1QiLDI5MzoiTk9STURJU1QiLDI5NDoiTk9STVNESVNUIiwyOTU6Ik5PUk1JTlYiLDI5NjoiTk9STVNJTlYiLDI5NzoiU1RBTkRBUkRJWkUiLDI5ODoiT0REIiwyOTk6IlBFUk1VVCIsMzAwOiJQT0lTU09OIiwzMDE6IlRESVNUIiwzMDI6IldFSUJVTEwiLDMwMzoiU1VNWE1ZMiIsMzA0OiJTVU1YMk1ZMiIsMzA1OiJTVU1YMlBZMiIsMzA2OiJDSElURVNUIiwzMDc6IkNPUlJFTCIsMzA4OiJDT1ZBUiIsMzA5OiJGT1JFQ0FTVCIsMzEwOiJGVEVTVCIsMzExOiJJTlRFUkNFUFQiLDMxMjoiUEVBUlNPTiIsMzEzOiJSU1EiLDMxNDoiU1RFWVgiLDMxNToiU0xPUEUiLDMxNjoiVFRFU1QiLDMxNzoiUFJPQiIsMzE4OiJERVZTUSIsMzE5OiJHRU9NRUFOIiwzMjA6IkhBUk1FQU4iLDMyMToiU1VNU1EiLDMyMjoiS1VSVCIsMzIzOiJTS0VXIiwzMjQ6IlpURVNUIiwzMjU6IkxBUkdFIiwzMjY6IlNNQUxMIiwzMjc6IlFVQVJUSUxFIiwzMjg6IlBFUkNFTlRJTEUiLDMyOToiUEVSQ0VOVFJBTksiLDMzMDoiTU9ERSIsMzMxOiJUUklNTUVBTiIsMzMyOiJUSU5WIiwzMzQ6Ik1PVklFLkNPTU1BTkQiLDMzNToiR0VULk1PVklFIiwzMzY6IkNPTkNBVEVOQVRFIiwzMzc6IlBPV0VSIiwzMzg6IlBJVk9ULkFERC5EQVRBIiwzMzk6IkdFVC5QSVZPVC5UQUJMRSIsMzQwOiJHRVQuUElWT1QuRklFTEQiLDM0MToiR0VULlBJVk9ULklURU0iLDM0MjoiUkFESUFOUyIsMzQzOiJERUdSRUVTIiwzNDQ6IlNVQlRPVEFMIiwzNDU6IlNVTUlGIiwzNDY6IkNPVU5USUYiLDM0NzoiQ09VTlRCTEFOSyIsMzQ4OiJTQ0VOQVJJTy5HRVQiLDM0OToiT1BUSU9OUy5MSVNUUy5HRVQiLDM1MDoiSVNQTVQiLDM1MToiREFURURJRiIsMzUyOiJEQVRFU1RSSU5HIiwzNTM6Ik5VTUJFUlNUUklORyIsMzU0OiJST01BTiIsMzU1OiJPUEVOLkRJQUxPRyIsMzU2OiJTQVZFLkRJQUxPRyIsMzU3OiJWSUVXLkdFVCIsMzU4OiJHRVRQSVZPVERBVEEiLDM1OToiSFlQRVJMSU5LIiwzNjA6IlBIT05FVElDIiwzNjE6IkFWRVJBR0VBIiwzNjI6Ik1BWEEiLDM2MzoiTUlOQSIsMzY0OiJTVERFVlBBIiwzNjU6IlZBUlBBIiwzNjY6IlNUREVWQSIsMzY3OiJWQVJBIiwzNjg6IkJBSFRURVhUIiwzNjk6IlRIQUlEQVlPRldFRUsiLDM3MDoiVEhBSURJR0lUIiwzNzE6IlRIQUlNT05USE9GWUVBUiIsMzcyOiJUSEFJTlVNU09VTkQiLDM3MzoiVEhBSU5VTVNUUklORyIsMzc0OiJUSEFJU1RSSU5HTEVOR1RIIiwzNzU6IklTVEhBSURJR0lUIiwzNzY6IlJPVU5EQkFIVERPV04iLDM3NzoiUk9VTkRCQUhUVVAiLDM3ODoiVEhBSVlFQVIiLDM3OToiUlREIiwzODA6IkNVQkVWQUxVRSIsMzgxOiJDVUJFTUVNQkVSIiwzODI6IkNVQkVNRU1CRVJQUk9QRVJUWSIsMzgzOiJDVUJFUkFOS0VETUVNQkVSIiwzODQ6IkhFWDJCSU4iLDM4NToiSEVYMkRFQyIsMzg2OiJIRVgyT0NUIiwzODc6IkRFQzJCSU4iLDM4ODoiREVDMkhFWCIsMzg5OiJERUMyT0NUIiwzOTA6Ik9DVDJCSU4iLDM5MToiT0NUMkhFWCIsMzkyOiJPQ1QyREVDIiwzOTM6IkJJTjJERUMiLDM5NDoiQklOMk9DVCIsMzk1OiJCSU4ySEVYIiwzOTY6IklNU1VCIiwzOTc6IklNRElWIiwzOTg6IklNUE9XRVIiLDM5OToiSU1BQlMiLDQwMDoiSU1TUVJUIiw0MDE6IklNTE4iLDQwMjoiSU1MT0cyIiw0MDM6IklNTE9HMTAiLDQwNDoiSU1TSU4iLDQwNToiSU1DT1MiLDQwNjoiSU1FWFAiLDQwNzoiSU1BUkdVTUVOVCIsNDA4OiJJTUNPTkpVR0FURSIsNDA5OiJJTUFHSU5BUlkiLDQxMDoiSU1SRUFMIiw0MTE6IkNPTVBMRVgiLDQxMjoiSU1TVU0iLDQxMzoiSU1QUk9EVUNUIiw0MTQ6IlNFUklFU1NVTSIsNDE1OiJGQUNURE9VQkxFIiw0MTY6IlNRUlRQSSIsNDE3OiJRVU9USUVOVCIsNDE4OiJERUxUQSIsNDE5OiJHRVNURVAiLDQyMDoiSVNFVkVOIiw0MjE6IklTT0REIiw0MjI6Ik1ST1VORCIsNDIzOiJFUkYiLDQyNDoiRVJGQyIsNDI1OiJCRVNTRUxKIiw0MjY6IkJFU1NFTEsiLDQyNzoiQkVTU0VMWSIsNDI4OiJCRVNTRUxJIiw0Mjk6IlhJUlIiLDQzMDoiWE5QViIsNDMxOiJQUklDRU1BVCIsNDMyOiJZSUVMRE1BVCIsNDMzOiJJTlRSQVRFIiw0MzQ6IlJFQ0VJVkVEIiw0MzU6IkRJU0MiLDQzNjoiUFJJQ0VESVNDIiw0Mzc6IllJRUxERElTQyIsNDM4OiJUQklMTEVRIiw0Mzk6IlRCSUxMUFJJQ0UiLDQ0MDoiVEJJTExZSUVMRCIsNDQxOiJQUklDRSIsNDQyOiJZSUVMRCIsNDQzOiJET0xMQVJERSIsNDQ0OiJET0xMQVJGUiIsNDQ1OiJOT01JTkFMIiw0NDY6IkVGRkVDVCIsNDQ3OiJDVU1QUklOQyIsNDQ4OiJDVU1JUE1UIiw0NDk6IkVEQVRFIiw0NTA6IkVPTU9OVEgiLDQ1MToiWUVBUkZSQUMiLDQ1MjoiQ09VUERBWUJTIiw0NTM6IkNPVVBEQVlTIiw0NTQ6IkNPVVBEQVlTTkMiLDQ1NToiQ09VUE5DRCIsNDU2OiJDT1VQTlVNIiw0NTc6IkNPVVBQQ0QiLDQ1ODoiRFVSQVRJT04iLDQ1OToiTURVUkFUSU9OIiw0NjA6Ik9ERExQUklDRSIsNDYxOiJPRERMWUlFTEQiLDQ2MjoiT0RERlBSSUNFIiw0NjM6Ik9EREZZSUVMRCIsNDY0OiJSQU5EQkVUV0VFTiIsNDY1OiJXRUVLTlVNIiw0NjY6IkFNT1JERUdSQyIsNDY3OiJBTU9STElOQyIsNDY4OiJDT05WRVJUIiw3MjQ6IlNIRUVUSlMiLDQ2OToiQUNDUklOVCIsNDcwOiJBQ0NSSU5UTSIsNDcxOiJXT1JLREFZIiw0NzI6Ik5FVFdPUktEQVlTIiw0NzM6IkdDRCIsNDc0OiJNVUxUSU5PTUlBTCIsNDc1OiJMQ00iLDQ3NjoiRlZTQ0hFRFVMRSIsNDc3OiJDVUJFS1BJTUVNQkVSIiw0Nzg6IkNVQkVTRVQiLDQ3OToiQ1VCRVNFVENPVU5UIiw0ODA6IklGRVJST1IiLDQ4MToiQ09VTlRJRlMiLDQ4MjoiU1VNSUZTIiw0ODM6IkFWRVJBR0VJRiIsNDg0OiJBVkVSQUdFSUZTIn0sYmg9ezI6MSwzOjEsMTA6MCwxNToxLDE2OjEsMTc6MSwxODoxLDE5OjAsMjA6MSwyMToxLDIyOjEsMjM6MSwyNDoxLDI1OjEsMjY6MSwyNzoyLDMwOjIsMzE6MywzMjoxLDMzOjEsMzQ6MCwzNTowLDM4OjEsMzk6Miw0MDozLDQxOjMsNDI6Myw0MzozLDQ0OjMsNDU6Myw0NzozLDQ4OjIsNTM6MSw2MTozLDYzOjAsNjU6Myw2NjozLDY3OjEsNjg6MSw2OToxLDcwOjEsNzE6MSw3MjoxLDczOjEsNzQ6MCw3NToxLDc2OjEsNzc6MSw3OToyLDgwOjIsODM6MSw4NTowLDg2OjEsODk6MCw5MDoxLDk0OjAsOTU6MCw5NzoyLDk4OjEsOTk6MSwxMDE6MywxMDI6MywxMDU6MSwxMDY6MSwxMDg6MiwxMTE6MSwxMTI6MSwxMTM6MSwxMTQ6MSwxMTc6MiwxMTg6MSwxMTk6NCwxMjE6MSwxMjY6MSwxMjc6MSwxMjg6MSwxMjk6MSwxMzA6MSwxMzE6MSwxMzM6MSwxMzQ6MSwxMzU6MSwxMzY6MiwxMzc6MiwxMzg6MiwxNDA6MSwxNDE6MSwxNDI6MywxNDM6NCwxNDQ6NCwxNjE6MSwxNjI6MSwxNjM6MSwxNjQ6MSwxNjU6MiwxNzI6MSwxNzU6MiwxNzY6MiwxNzc6MywxNzg6MiwxNzk6MSwxODQ6MSwxODY6MSwxODk6MywxOTA6MSwxOTU6MywxOTY6MywxOTc6MSwxOTg6MSwxOTk6MywyMDE6MSwyMDc6NCwyMTA6MywyMTE6MSwyMTI6MiwyMTM6MiwyMTQ6MSwyMTU6MSwyMjU6MCwyMjk6MSwyMzA6MSwyMzE6MSwyMzI6MSwyMzM6MSwyMzQ6MSwyMzU6MywyNDQ6MSwyNDc6NCwyNTI6MiwyNTc6MSwyNjE6MSwyNzE6MSwyNzM6NCwyNzQ6MiwyNzU6MiwyNzY6MiwyNzc6MywyNzg6MywyNzk6MSwyODA6MywyODE6MywyODI6MywyODM6MSwyODQ6MSwyODU6MiwyODY6NCwyODc6MywyODg6MiwyODk6NCwyOTA6MywyOTE6MywyOTI6MywyOTM6NCwyOTQ6MSwyOTU6MywyOTY6MSwyOTc6MywyOTg6MSwyOTk6MiwzMDA6MywzMDE6MywzMDI6NCwzMDM6MiwzMDQ6MiwzMDU6MiwzMDY6MiwzMDc6MiwzMDg6MiwzMDk6MywzMTA6MiwzMTE6MiwzMTI6MiwzMTM6MiwzMTQ6MiwzMTU6MiwzMTY6NCwzMjU6MiwzMjY6MiwzMjc6MiwzMjg6MiwzMzE6MiwzMzI6MiwzMzc6MiwzNDI6MSwzNDM6MSwzNDY6MiwzNDc6MSwzNTA6NCwzNTE6MywzNTI6MSwzNTM6MiwzNjA6MSwzNjg6MSwzNjk6MSwzNzA6MSwzNzE6MSwzNzI6MSwzNzM6MSwzNzQ6MSwzNzU6MSwzNzY6MSwzNzc6MSwzNzg6MSwzODI6MywzODU6MSwzOTI6MSwzOTM6MSwzOTY6MiwzOTc6MiwzOTg6MiwzOTk6MSw0MDA6MSw0MDE6MSw0MDI6MSw0MDM6MSw0MDQ6MSw0MDU6MSw0MDY6MSw0MDc6MSw0MDg6MSw0MDk6MSw0MTA6MSw0MTQ6NCw0MTU6MSw0MTY6MSw0MTc6Miw0MjA6MSw0MjE6MSw0MjI6Miw0MjQ6MSw0MjU6Miw0MjY6Miw0Mjc6Miw0Mjg6Miw0MzA6Myw0Mzg6Myw0Mzk6Myw0NDA6Myw0NDM6Miw0NDQ6Miw0NDU6Miw0NDY6Miw0NDc6Niw0NDg6Niw0NDk6Miw0NTA6Miw0NjQ6Miw0Njg6Myw0NzY6Miw0Nzk6MSw0ODA6Miw2NTUzNTowfTtmdW5jdGlvbiBQcyhlKXtyZXR1cm4gZS5zbGljZSgwLDMpPT0ib2Y6IiYmKGU9ZS5zbGljZSgzKSksZS5jaGFyQ29kZUF0KDApPT02MSYmKGU9ZS5zbGljZSgxKSxlLmNoYXJDb2RlQXQoMCk9PTYxJiYoZT1lLnNsaWNlKDEpKSksZT1lLnJlcGxhY2UoL0NPTVwuTUlDUk9TT0ZUXC4vZywiIiksZT1lLnJlcGxhY2UoL1xbKCg/OlwuW0EtWl0rWzAtOV0rKSg/OjpcLltBLVpdK1swLTldKyk/KVxdL2csZnVuY3Rpb24oYSxyKXtyZXR1cm4gci5yZXBsYWNlKC9cLi9nLCIiKX0pLGU9ZS5yZXBsYWNlKC9cWy4oI1tBLVpdKls/IV0pXF0vZywiJDEiKSxlLnJlcGxhY2UoL1s7fl0vZywiLCIpLnJlcGxhY2UoL1x8L2csIjsiKX1mdW5jdGlvbiB0MChlKXt2YXIgYT1lLnNwbGl0KCI6Iikscj1hWzBdLnNwbGl0KCIuIilbMF07cmV0dXJuW3IsYVswXS5zcGxpdCgiLiIpWzFdKyhhLmxlbmd0aD4xPyI6IisoYVsxXS5zcGxpdCgiLiIpWzFdfHxhWzFdLnNwbGl0KCIuIilbMF0pOiIiKV19dmFyICRhPXt9LFRhPXt9O2Z1bmN0aW9uIHphKGUsYSl7aWYoZSl7dmFyIHI9Wy43LC43LC43NSwuNzUsLjMsLjNdO2E9PSJ4bG1sIiYmKHI9WzEsMSwxLDEsLjUsLjVdKSxlLmxlZnQ9PW51bGwmJihlLmxlZnQ9clswXSksZS5yaWdodD09bnVsbCYmKGUucmlnaHQ9clsxXSksZS50b3A9PW51bGwmJihlLnRvcD1yWzJdKSxlLmJvdHRvbT09bnVsbCYmKGUuYm90dG9tPXJbM10pLGUuaGVhZGVyPT1udWxsJiYoZS5oZWFkZXI9cls0XSksZS5mb290ZXI9PW51bGwmJihlLmZvb3Rlcj1yWzVdKX19ZnVuY3Rpb24gTHMoZSxhLHIsbix0LHMpe3RyeXtuLmNlbGxORiYmKGUuej1kZVthXSl9Y2F0Y2goYyl7aWYobi5XVEYpdGhyb3cgY31pZighKGUudD09PSJ6IiYmIW4uY2VsbFN0eWxlcykpe2lmKGUudD09PSJkIiYmdHlwZW9mIGUudj09InN0cmluZyImJihlLnY9V2UoZS52KSksKCFufHxuLmNlbGxUZXh0IT09ITEpJiZlLnQhPT0ieiIpdHJ5e2lmKGRlW2FdPT1udWxsJiZlYShCaVthXXx8IkdlbmVyYWwiLGEpLGUudD09PSJlIillLnc9ZS53fHxpYVtlLnZdO2Vsc2UgaWYoYT09PTApaWYoZS50PT09Im4iKShlLnZ8MCk9PT1lLnY/ZS53PWUudi50b1N0cmluZygxMCk6ZS53PUZhKGUudik7ZWxzZSBpZihlLnQ9PT0iZCIpe3ZhciBpPXRyKGUudik7KGl8MCk9PT1pP2Uudz1pLnRvU3RyaW5nKDEwKTplLnc9RmEoaSl9ZWxzZXtpZihlLnY9PT12b2lkIDApcmV0dXJuIiI7ZS53PVFyKGUudixUYSl9ZWxzZSBlLnQ9PT0iZCI/ZS53PXhyKGEsdHIoZS52KSxUYSk6ZS53PXhyKGEsZS52LFRhKX1jYXRjaChjKXtpZihuLldURil0aHJvdyBjfWlmKG4uY2VsbFN0eWxlcyYmciE9bnVsbCl0cnl7ZS5zPXMuRmlsbHNbcl0sZS5zLmZnQ29sb3ImJmUucy5mZ0NvbG9yLnRoZW1lJiYhZS5zLmZnQ29sb3IucmdiJiYoZS5zLmZnQ29sb3IucmdiPXB0KHQudGhlbWVFbGVtZW50cy5jbHJTY2hlbWVbZS5zLmZnQ29sb3IudGhlbWVdLnJnYixlLnMuZmdDb2xvci50aW50fHwwKSxuLldURiYmKGUucy5mZ0NvbG9yLnJhd19yZ2I9dC50aGVtZUVsZW1lbnRzLmNsclNjaGVtZVtlLnMuZmdDb2xvci50aGVtZV0ucmdiKSksZS5zLmJnQ29sb3ImJmUucy5iZ0NvbG9yLnRoZW1lJiYoZS5zLmJnQ29sb3IucmdiPXB0KHQudGhlbWVFbGVtZW50cy5jbHJTY2hlbWVbZS5zLmJnQ29sb3IudGhlbWVdLnJnYixlLnMuYmdDb2xvci50aW50fHwwKSxuLldURiYmKGUucy5iZ0NvbG9yLnJhd19yZ2I9dC50aGVtZUVsZW1lbnRzLmNsclNjaGVtZVtlLnMuYmdDb2xvci50aGVtZV0ucmdiKSl9Y2F0Y2goYyl7aWYobi5XVEYmJnMuRmlsbHMpdGhyb3cgY319fWZ1bmN0aW9uIFVoKGUsYSl7dmFyIHI9T2UoYSk7ci5zLnI8PXIuZS5yJiZyLnMuYzw9ci5lLmMmJnIucy5yPj0wJiZyLnMuYz49MCYmKGVbIiFyZWYiXT1fZShyKSl9dmFyIEhoPS88KD86XHc6KT9tZXJnZUNlbGwgcmVmPSJbQS1aMC05Ol0rIlxzKltcL10/Pi9nLFZoPS88KD86XHcrOik/c2hlZXREYXRhW14+XSo+KFtcc1xTXSopPFwvKD86XHcrOik/c2hlZXREYXRhPi8sV2g9LzwoPzpcdzopP2h5cGVybGluayBbXj5dKj4vbWcsR2g9LyIoXHcqOlx3KikiLyxYaD0vPCg/Olx3Oik/Y29sXGJbXj5dKltcL10/Pi9nLCRoPS88KD86XHc6KT9hdXRvRmlsdGVyW14+XSooW1wvXXw+KFtcc1xTXSopPFwvKD86XHc6KT9hdXRvRmlsdGVyKT4vZyx6aD0vPCg/Olx3Oik/cGFnZU1hcmdpbnNbXj5dKlwvPi9nLE1zPS88KD86XHc6KT9zaGVldFByXGIoPzpbXj5hLXpdW14+XSopP1wvPi8sS2g9LzwoPzpcdzopP3NoZWV0UHJbXj5dKig/OltcL118PihbXHNcU10qKTxcLyg/Olx3Oik/c2hlZXRQcik+LyxZaD0vPCg/Olx3Oik/c2hlZXRWaWV3c1tePl0qKD86W1wvXXw+KFtcc1xTXSopPFwvKD86XHc6KT9zaGVldFZpZXdzKT4vO2Z1bmN0aW9uIGpoKGUsYSxyLG4sdCxzLGkpe2lmKCFlKXJldHVybiBlO258fChuPXsiIWlkIjp7fX0pO3ZhciBjPWEuZGVuc2U/W106e30sZj17czp7cjoyZTYsYzoyZTZ9LGU6e3I6MCxjOjB9fSxvPSIiLGw9IiIsaD1lLm1hdGNoKFZoKTtoPyhvPWUuc2xpY2UoMCxoLmluZGV4KSxsPWUuc2xpY2UoaC5pbmRleCtoWzBdLmxlbmd0aCkpOm89bD1lO3ZhciB4PW8ubWF0Y2goTXMpO3g/bjAoeFswXSxjLHQscik6KHg9by5tYXRjaChLaCkpJiZKaCh4WzBdLHhbMV18fCIiLGMsdCxyKTt2YXIgZD0oby5tYXRjaCgvPCg/Olx3KjopP2RpbWVuc2lvbi8pfHx7aW5kZXg6LTF9KS5pbmRleDtpZihkPjApe3ZhciB2PW8uc2xpY2UoZCxkKzUwKS5tYXRjaChHaCk7diYmVWgoYyx2WzFdKX12YXIgdT1vLm1hdGNoKFloKTt1JiZ1WzFdJiZhdSh1WzFdLHQpO3ZhciBnPVtdO2lmKGEuY2VsbFN0eWxlcyl7dmFyIEY9by5tYXRjaChYaCk7RiYmUWgoZyxGKX1oJiZ0dShoWzFdLGMsYSxmLHMsaSk7dmFyIHk9bC5tYXRjaCgkaCk7eSYmKGNbIiFhdXRvZmlsdGVyIl09ZXUoeVswXSkpO3ZhciBfPVtdLE49bC5tYXRjaChIaCk7aWYoTilmb3IoZD0wO2QhPU4ubGVuZ3RoOysrZClfW2RdPU9lKE5bZF0uc2xpY2UoTltkXS5pbmRleE9mKCciJykrMSkpO3ZhciBiPWwubWF0Y2goV2gpO2ImJlpoKGMsYixuKTt2YXIgST1sLm1hdGNoKHpoKTtpZihJJiYoY1siIW1hcmdpbnMiXT1xaChvZShJWzBdKSkpLCFjWyIhcmVmIl0mJmYuZS5jPj1mLnMuYyYmZi5lLnI+PWYucy5yJiYoY1siIXJlZiJdPV9lKGYpKSxhLnNoZWV0Um93cz4wJiZjWyIhcmVmIl0pe3ZhciBBPU9lKGNbIiFyZWYiXSk7YS5zaGVldFJvd3M8PStBLmUuciYmKEEuZS5yPWEuc2hlZXRSb3dzLTEsQS5lLnI+Zi5lLnImJihBLmUucj1mLmUuciksQS5lLnI8QS5zLnImJihBLnMucj1BLmUuciksQS5lLmM+Zi5lLmMmJihBLmUuYz1mLmUuYyksQS5lLmM8QS5zLmMmJihBLnMuYz1BLmUuYyksY1siIWZ1bGxyZWYiXT1jWyIhcmVmIl0sY1siIXJlZiJdPV9lKEEpKX1yZXR1cm4gZy5sZW5ndGg+MCYmKGNbIiFjb2xzIl09ZyksXy5sZW5ndGg+MCYmKGNbIiFtZXJnZXMiXT1fKSxjfWZ1bmN0aW9uIG4wKGUsYSxyLG4pe3ZhciB0PW9lKGUpO3IuU2hlZXRzW25dfHwoci5TaGVldHNbbl09e30pLHQuY29kZU5hbWUmJihyLlNoZWV0c1tuXS5Db2RlTmFtZT1FZShBZSh0LmNvZGVOYW1lKSkpfWZ1bmN0aW9uIEpoKGUsYSxyLG4sdCl7bjAoZS5zbGljZSgwLGUuaW5kZXhPZigiPiIpKSxyLG4sdCl9ZnVuY3Rpb24gWmgoZSxhLHIpe2Zvcih2YXIgbj1BcnJheS5pc0FycmF5KGUpLHQ9MDt0IT1hLmxlbmd0aDsrK3Qpe3ZhciBzPW9lKEFlKGFbdF0pLCEwKTtpZighcy5yZWYpcmV0dXJuO3ZhciBpPSgocnx8e30pWyIhaWQiXXx8W10pW3MuaWRdO2k/KHMuVGFyZ2V0PWkuVGFyZ2V0LHMubG9jYXRpb24mJihzLlRhcmdldCs9IiMiK0VlKHMubG9jYXRpb24pKSk6KHMuVGFyZ2V0PSIjIitFZShzLmxvY2F0aW9uKSxpPXtUYXJnZXQ6cy5UYXJnZXQsVGFyZ2V0TW9kZToiSW50ZXJuYWwifSkscy5SZWw9aSxzLnRvb2x0aXAmJihzLlRvb2x0aXA9cy50b29sdGlwLGRlbGV0ZSBzLnRvb2x0aXApO2Zvcih2YXIgYz1PZShzLnJlZiksZj1jLnMucjtmPD1jLmUucjsrK2YpZm9yKHZhciBvPWMucy5jO288PWMuZS5jOysrbyl7dmFyIGw9dWUoe2M6byxyOmZ9KTtuPyhlW2ZdfHwoZVtmXT1bXSksZVtmXVtvXXx8KGVbZl1bb109e3Q6InoiLHY6dm9pZCAwfSksZVtmXVtvXS5sPXMpOihlW2xdfHwoZVtsXT17dDoieiIsdjp2b2lkIDB9KSxlW2xdLmw9cyl9fX1mdW5jdGlvbiBxaChlKXt2YXIgYT17fTtyZXR1cm5bImxlZnQiLCJyaWdodCIsInRvcCIsImJvdHRvbSIsImhlYWRlciIsImZvb3RlciJdLmZvckVhY2goZnVuY3Rpb24ocil7ZVtyXSYmKGFbcl09cGFyc2VGbG9hdChlW3JdKSl9KSxhfWZ1bmN0aW9uIFFoKGUsYSl7Zm9yKHZhciByPSExLG49MDtuIT1hLmxlbmd0aDsrK24pe3ZhciB0PW9lKGFbbl0sITApO3QuaGlkZGVuJiYodC5oaWRkZW49U2UodC5oaWRkZW4pKTt2YXIgcz1wYXJzZUludCh0Lm1pbiwxMCktMSxpPXBhcnNlSW50KHQubWF4LDEwKS0xO2Zvcih0Lm91dGxpbmVMZXZlbCYmKHQubGV2ZWw9K3Qub3V0bGluZUxldmVsfHwwKSxkZWxldGUgdC5taW4sZGVsZXRlIHQubWF4LHQud2lkdGg9K3Qud2lkdGgsIXImJnQud2lkdGgmJihyPSEwLGUwKHQud2lkdGgpKSxfYSh0KTtzPD1pOyllW3MrK109WGUodCl9fWZ1bmN0aW9uIGV1KGUpe3ZhciBhPXtyZWY6KGUubWF0Y2goL3JlZj0iKFteIl0qKSIvKXx8W10pWzFdfTtyZXR1cm4gYX12YXIgcnU9LzwoPzpcdzopP3NoZWV0Vmlldyg/OltePmEtel1bXj5dKik/XC8/Pi87ZnVuY3Rpb24gYXUoZSxhKXthLlZpZXdzfHwoYS5WaWV3cz1be31dKSwoZS5tYXRjaChydSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHIsbil7dmFyIHQ9b2Uocik7YS5WaWV3c1tuXXx8KGEuVmlld3Nbbl09e30pLCt0Lnpvb21TY2FsZSYmKGEuVmlld3Nbbl0uem9vbT0rdC56b29tU2NhbGUpLFNlKHQucmlnaHRUb0xlZnQpJiYoYS5WaWV3c1tuXS5SVEw9ITApfSl9dmFyIHR1PWZ1bmN0aW9uKCl7dmFyIGU9LzwoPzpcdys6KT9jWyBcLz5dLyxhPS88XC8oPzpcdys6KT9yb3c+LyxyPS9yPVsiJ10oW14iJ10qKVsiJ10vLG49LzwoPzpcdys6KT9pcz4oW1xTXHNdKj8pPFwvKD86XHcrOik/aXM+Lyx0PS9yZWY9WyInXShbXiInXSopWyInXS8scz15YSgidiIpLGk9eWEoImYiKTtyZXR1cm4gZnVuY3Rpb24oZixvLGwsaCx4LGQpe2Zvcih2YXIgdj0wLHU9IiIsZz1bXSxGPVtdLHk9MCxfPTAsTj0wLGI9IiIsSSxBLFY9MCxEPTAseixHLFA9MCxKPTAsZmU9QXJyYXkuaXNBcnJheShkLkNlbGxYZikscmUsY2U9W10saWU9W10sRmU9QXJyYXkuaXNBcnJheShvKSxXPVtdLGxlPXt9LGhlPSExLFM9ISFsLnNoZWV0U3R1YnMsVT1mLnNwbGl0KGEpLFI9MCxPPVUubGVuZ3RoO1IhPU87KytSKXt1PVVbUl0udHJpbSgpO3ZhciBLPXUubGVuZ3RoO2lmKEshPT0wKXt2YXIgZWU9MDtlOmZvcih2PTA7djxLOysrdilzd2l0Y2godVt2XSl7Y2FzZSI+IjppZih1W3YtMV0hPSIvIil7Kyt2O2JyZWFrIGV9aWYobCYmbC5jZWxsU3R5bGVzKXtpZihBPW9lKHUuc2xpY2UoZWUsdiksITApLFY9QS5yIT1udWxsP3BhcnNlSW50KEEuciwxMCk6VisxLEQ9LTEsbC5zaGVldFJvd3MmJmwuc2hlZXRSb3dzPFYpY29udGludWU7bGU9e30saGU9ITEsQS5odCYmKGhlPSEwLGxlLmhwdD1wYXJzZUZsb2F0KEEuaHQpLGxlLmhweD1WYShsZS5ocHQpKSxBLmhpZGRlbj09IjEiJiYoaGU9ITAsbGUuaGlkZGVuPSEwKSxBLm91dGxpbmVMZXZlbCE9bnVsbCYmKGhlPSEwLGxlLmxldmVsPStBLm91dGxpbmVMZXZlbCksaGUmJihXW1YtMV09bGUpfWJyZWFrO2Nhc2UiPCI6ZWU9djticmVha31pZihlZT49dilicmVhaztpZihBPW9lKHUuc2xpY2UoZWUsdiksITApLFY9QS5yIT1udWxsP3BhcnNlSW50KEEuciwxMCk6VisxLEQ9LTEsIShsLnNoZWV0Um93cyYmbC5zaGVldFJvd3M8Vikpe2gucy5yPlYtMSYmKGgucy5yPVYtMSksaC5lLnI8Vi0xJiYoaC5lLnI9Vi0xKSxsJiZsLmNlbGxTdHlsZXMmJihsZT17fSxoZT0hMSxBLmh0JiYoaGU9ITAsbGUuaHB0PXBhcnNlRmxvYXQoQS5odCksbGUuaHB4PVZhKGxlLmhwdCkpLEEuaGlkZGVuPT0iMSImJihoZT0hMCxsZS5oaWRkZW49ITApLEEub3V0bGluZUxldmVsIT1udWxsJiYoaGU9ITAsbGUubGV2ZWw9K0Eub3V0bGluZUxldmVsKSxoZSYmKFdbVi0xXT1sZSkpLGc9dS5zbGljZSh2KS5zcGxpdChlKTtmb3IodmFyIG5lPTA7bmUhPWcubGVuZ3RoJiZnW25lXS50cmltKCkuY2hhckF0KDApPT0iPCI7KytuZSk7Zm9yKGc9Zy5zbGljZShuZSksdj0wO3YhPWcubGVuZ3RoOysrdilpZih1PWdbdl0udHJpbSgpLHUubGVuZ3RoIT09MCl7aWYoRj11Lm1hdGNoKHIpLHk9dixfPTAsTj0wLHU9IjxjICIrKHUuc2xpY2UoMCwxKT09IjwiPyI+IjoiIikrdSxGIT1udWxsJiZGLmxlbmd0aD09PTIpe2Zvcih5PTAsYj1GWzFdLF89MDtfIT1iLmxlbmd0aCYmISgoTj1iLmNoYXJDb2RlQXQoXyktNjQpPDF8fE4+MjYpOysrXyl5PTI2KnkrTjstLXksRD15fWVsc2UrK0Q7Zm9yKF89MDtfIT11Lmxlbmd0aCYmdS5jaGFyQ29kZUF0KF8pIT09NjI7KytfKTtpZigrK18sQT1vZSh1LnNsaWNlKDAsXyksITApLEEucnx8KEEucj11ZSh7cjpWLTEsYzpEfSkpLGI9dS5zbGljZShfKSxJPXt0OiIifSwoRj1iLm1hdGNoKHMpKSE9bnVsbCYmRlsxXSE9PSIiJiYoSS52PUVlKEZbMV0pKSxsLmNlbGxGb3JtdWxhKXtpZigoRj1iLm1hdGNoKGkpKSE9bnVsbCYmRlsxXSE9PSIiKXtpZihJLmY9RWUoQWUoRlsxXSkpLnJlcGxhY2UoL1xyXG4vZyxgCmApLGwueGxmbnx8KEkuZj13cyhJLmYpKSxGWzBdLmluZGV4T2YoJ3Q9ImFycmF5IicpPi0xKUkuRj0oYi5tYXRjaCh0KXx8W10pWzFdLEkuRi5pbmRleE9mKCI6Iik+LTEmJmNlLnB1c2goW09lKEkuRiksSS5GXSk7ZWxzZSBpZihGWzBdLmluZGV4T2YoJ3Q9InNoYXJlZCInKT4tMSl7Rz1vZShGWzBdKTt2YXIgcT1FZShBZShGWzFdKSk7bC54bGZufHwocT13cyhxKSksaWVbcGFyc2VJbnQoRy5zaSwxMCldPVtHLHEsQS5yXX19ZWxzZShGPWIubWF0Y2goLzxmW14+XSpcLz4vKSkmJihHPW9lKEZbMF0pLGllW0cuc2ldJiYoSS5mPWQxKGllW0cuc2ldWzFdLGllW0cuc2ldWzJdLEEucikpKTt2YXIgaj1ucihBLnIpO2ZvcihfPTA7XzxjZS5sZW5ndGg7KytfKWoucj49Y2VbX11bMF0ucy5yJiZqLnI8PWNlW19dWzBdLmUuciYmai5jPj1jZVtfXVswXS5zLmMmJmouYzw9Y2VbX11bMF0uZS5jJiYoSS5GPWNlW19dWzFdKX1pZihBLnQ9PW51bGwmJkkudj09PXZvaWQgMClpZihJLmZ8fEkuRilJLnY9MCxJLnQ9Im4iO2Vsc2UgaWYoUylJLnQ9InoiO2Vsc2UgY29udGludWU7ZWxzZSBJLnQ9QS50fHwibiI7c3dpdGNoKGgucy5jPkQmJihoLnMuYz1EKSxoLmUuYzxEJiYoaC5lLmM9RCksSS50KXtjYXNlIm4iOmlmKEkudj09IiJ8fEkudj09bnVsbCl7aWYoIVMpY29udGludWU7SS50PSJ6In1lbHNlIEkudj1wYXJzZUZsb2F0KEkudik7YnJlYWs7Y2FzZSJzIjppZih0eXBlb2YgSS52PiJ1Iil7aWYoIVMpY29udGludWU7SS50PSJ6In1lbHNlIHo9JGFbcGFyc2VJbnQoSS52LDEwKV0sSS52PXoudCxJLnI9ei5yLGwuY2VsbEhUTUwmJihJLmg9ei5oKTticmVhaztjYXNlInN0ciI6SS50PSJzIixJLnY9SS52IT1udWxsP0FlKEkudik6IiIsbC5jZWxsSFRNTCYmKEkuaD1QdChJLnYpKTticmVhaztjYXNlImlubGluZVN0ciI6Rj1iLm1hdGNoKG4pLEkudD0icyIsRiE9bnVsbCYmKHo9WnQoRlsxXSkpPyhJLnY9ei50LGwuY2VsbEhUTUwmJihJLmg9ei5oKSk6SS52PSIiO2JyZWFrO2Nhc2UiYiI6SS52PVNlKEkudik7YnJlYWs7Y2FzZSJkIjpsLmNlbGxEYXRlcz9JLnY9V2UoSS52LDEpOihJLnY9dHIoV2UoSS52LDEpKSxJLnQ9Im4iKTticmVhaztjYXNlImUiOighbHx8bC5jZWxsVGV4dCE9PSExKSYmKEkudz1JLnYpLEkudj1VbltJLnZdO2JyZWFrfWlmKFA9Sj0wLHJlPW51bGwsZmUmJkEucyE9PXZvaWQgMCYmKHJlPWQuQ2VsbFhmW0Euc10scmUhPW51bGwmJihyZS5udW1GbXRJZCE9bnVsbCYmKFA9cmUubnVtRm10SWQpLGwuY2VsbFN0eWxlcyYmcmUuZmlsbElkIT1udWxsJiYoSj1yZS5maWxsSWQpKSksTHMoSSxQLEosbCx4LGQpLGwuY2VsbERhdGVzJiZmZSYmSS50PT0ibiImJnhhKGRlW1BdKSYmKEkudD0iZCIsSS52PWl0KEkudikpLEEuY20mJmwueGxtZXRhKXt2YXIgVGU9KGwueGxtZXRhLkNlbGx8fFtdKVsrQS5jbS0xXTtUZSYmVGUudHlwZT09IlhMREFQUiImJihJLkQ9ITApfWlmKEZlKXt2YXIgQz1ucihBLnIpO29bQy5yXXx8KG9bQy5yXT1bXSksb1tDLnJdW0MuY109SX1lbHNlIG9bQS5yXT1JfX19fVcubGVuZ3RoPjAmJihvWyIhcm93cyJdPVcpfX0oKTtmdW5jdGlvbiBudShlLGEpe3ZhciByPXt9LG49ZS5sK2E7ci5yPWUucmVhZF9zaGlmdCg0KSxlLmwrPTQ7dmFyIHQ9ZS5yZWFkX3NoaWZ0KDIpO2UubCs9MTt2YXIgcz1lLnJlYWRfc2hpZnQoMSk7cmV0dXJuIGUubD1uLHMmNyYmKHIubGV2ZWw9cyY3KSxzJjE2JiYoci5oaWRkZW49ITApLHMmMzImJihyLmhwdD10LzIwKSxyfXZhciBzdT1uYTtmdW5jdGlvbiBpdSgpe31mdW5jdGlvbiBjdShlLGEpe3ZhciByPXt9LG49ZVtlLmxdO3JldHVybisrZS5sLHIuYWJvdmU9IShuJjY0KSxyLmxlZnQ9IShuJjEyOCksZS5sKz0xOCxyLm5hbWU9Q2MoZSkscn1mdW5jdGlvbiBmdShlKXt2YXIgYT12cihlKTtyZXR1cm5bYV19ZnVuY3Rpb24gb3UoZSl7dmFyIGE9dGEoZSk7cmV0dXJuW2FdfWZ1bmN0aW9uIGx1KGUpe3ZhciBhPXZyKGUpLHI9ZS5yZWFkX3NoaWZ0KDEpO3JldHVyblthLHIsImIiXX1mdW5jdGlvbiBodShlKXt2YXIgYT10YShlKSxyPWUucmVhZF9zaGlmdCgxKTtyZXR1cm5bYSxyLCJiIl19ZnVuY3Rpb24gdXUoZSl7dmFyIGE9dnIoZSkscj1lLnJlYWRfc2hpZnQoMSk7cmV0dXJuW2EsciwiZSJdfWZ1bmN0aW9uIHh1KGUpe3ZhciBhPXRhKGUpLHI9ZS5yZWFkX3NoaWZ0KDEpO3JldHVyblthLHIsImUiXX1mdW5jdGlvbiBkdShlKXt2YXIgYT12cihlKSxyPWUucmVhZF9zaGlmdCg0KTtyZXR1cm5bYSxyLCJzIl19ZnVuY3Rpb24gdnUoZSl7dmFyIGE9dGEoZSkscj1lLnJlYWRfc2hpZnQoNCk7cmV0dXJuW2EsciwicyJdfWZ1bmN0aW9uIHB1KGUpe3ZhciBhPXZyKGUpLHI9SmUoZSk7cmV0dXJuW2EsciwibiJdfWZ1bmN0aW9uIEJzKGUpe3ZhciBhPXRhKGUpLHI9SmUoZSk7cmV0dXJuW2EsciwibiJdfWZ1bmN0aW9uIGd1KGUpe3ZhciBhPXZyKGUpLHI9JHQoZSk7cmV0dXJuW2EsciwibiJdfWZ1bmN0aW9uIG11KGUpe3ZhciBhPXRhKGUpLHI9JHQoZSk7cmV0dXJuW2EsciwibiJdfWZ1bmN0aW9uIF91KGUpe3ZhciBhPXZyKGUpLHI9V3QoZSk7cmV0dXJuW2EsciwiaXMiXX1mdW5jdGlvbiBFdShlKXt2YXIgYT12cihlKSxyPWplKGUpO3JldHVyblthLHIsInN0ciJdfWZ1bmN0aW9uIFR1KGUpe3ZhciBhPXRhKGUpLHI9amUoZSk7cmV0dXJuW2Esciwic3RyIl19ZnVuY3Rpb24ga3UoZSxhLHIpe3ZhciBuPWUubCthLHQ9dnIoZSk7dC5yPXJbIiFyb3ciXTt2YXIgcz1lLnJlYWRfc2hpZnQoMSksaT1bdCxzLCJiIl07aWYoci5jZWxsRm9ybXVsYSl7ZS5sKz0yO3ZhciBjPWt0KGUsbi1lLmwscik7aVszXT1xZShjLG51bGwsdCxyLnN1cGJvb2tzLHIpfWVsc2UgZS5sPW47cmV0dXJuIGl9ZnVuY3Rpb24gd3UoZSxhLHIpe3ZhciBuPWUubCthLHQ9dnIoZSk7dC5yPXJbIiFyb3ciXTt2YXIgcz1lLnJlYWRfc2hpZnQoMSksaT1bdCxzLCJlIl07aWYoci5jZWxsRm9ybXVsYSl7ZS5sKz0yO3ZhciBjPWt0KGUsbi1lLmwscik7aVszXT1xZShjLG51bGwsdCxyLnN1cGJvb2tzLHIpfWVsc2UgZS5sPW47cmV0dXJuIGl9ZnVuY3Rpb24gQXUoZSxhLHIpe3ZhciBuPWUubCthLHQ9dnIoZSk7dC5yPXJbIiFyb3ciXTt2YXIgcz1KZShlKSxpPVt0LHMsIm4iXTtpZihyLmNlbGxGb3JtdWxhKXtlLmwrPTI7dmFyIGM9a3QoZSxuLWUubCxyKTtpWzNdPXFlKGMsbnVsbCx0LHIuc3VwYm9va3Mscil9ZWxzZSBlLmw9bjtyZXR1cm4gaX1mdW5jdGlvbiBGdShlLGEscil7dmFyIG49ZS5sK2EsdD12cihlKTt0LnI9clsiIXJvdyJdO3ZhciBzPWplKGUpLGk9W3Qscywic3RyIl07aWYoci5jZWxsRm9ybXVsYSl7ZS5sKz0yO3ZhciBjPWt0KGUsbi1lLmwscik7aVszXT1xZShjLG51bGwsdCxyLnN1cGJvb2tzLHIpfWVsc2UgZS5sPW47cmV0dXJuIGl9dmFyIFN1PW5hO2Z1bmN0aW9uIEN1KGUsYSl7dmFyIHI9ZS5sK2Esbj1uYShlKSx0PUd0KGUpLHM9amUoZSksaT1qZShlKSxjPWplKGUpO2UubD1yO3ZhciBmPXtyZng6bixyZWxJZDp0LGxvYzpzLGRpc3BsYXk6Y307cmV0dXJuIGkmJihmLlRvb2x0aXA9aSksZn1mdW5jdGlvbiB5dSgpe31mdW5jdGlvbiBEdShlLGEscil7dmFyIG49ZS5sK2EsdD1QbihlKSxzPWUucmVhZF9zaGlmdCgxKSxpPVt0XTtpZihpWzJdPXMsci5jZWxsRm9ybXVsYSl7dmFyIGM9UGgoZSxuLWUubCxyKTtpWzFdPWN9ZWxzZSBlLmw9bjtyZXR1cm4gaX1mdW5jdGlvbiBPdShlLGEscil7dmFyIG49ZS5sK2EsdD1uYShlKSxzPVt0XTtpZihyLmNlbGxGb3JtdWxhKXt2YXIgaT1NaChlLG4tZS5sLHIpO3NbMV09aSxlLmw9bn1lbHNlIGUubD1uO3JldHVybiBzfXZhciBSdT1bImxlZnQiLCJyaWdodCIsInRvcCIsImJvdHRvbSIsImhlYWRlciIsImZvb3RlciJdO2Z1bmN0aW9uIEl1KGUpe3ZhciBhPXt9O3JldHVybiBSdS5mb3JFYWNoKGZ1bmN0aW9uKHIpe2Fbcl09SmUoZSl9KSxhfWZ1bmN0aW9uIE51KGUpe3ZhciBhPWUucmVhZF9zaGlmdCgyKTtyZXR1cm4gZS5sKz0yOCx7UlRMOmEmMzJ9fWZ1bmN0aW9uIFB1KCl7fWZ1bmN0aW9uIEx1KCl7fWZ1bmN0aW9uIE11KGUsYSxyLG4sdCxzLGkpe2lmKCFlKXJldHVybiBlO3ZhciBjPWF8fHt9O258fChuPXsiIWlkIjp7fX0pO3ZhciBmPWMuZGVuc2U/W106e30sbyxsPXtzOntyOjJlNixjOjJlNn0sZTp7cjowLGM6MH19LGg9ITEseD0hMSxkLHYsdSxnLEYseSxfLE4sYixJPVtdO2MuYmlmZj0xMixjWyIhcm93Il09MDt2YXIgQT0wLFY9ITEsRD1bXSx6PXt9LEc9Yy5zdXBib29rc3x8dC5zdXBib29rc3x8W1tdXTtpZihHLnNoYXJlZGY9eixHLmFycmF5Zj1ELEcuU2hlZXROYW1lcz10LlNoZWV0TmFtZXN8fHQuU2hlZXRzLm1hcChmdW5jdGlvbihGZSl7cmV0dXJuIEZlLm5hbWV9KSwhYy5zdXBib29rcyYmKGMuc3VwYm9va3M9Ryx0Lk5hbWVzKSlmb3IodmFyIFA9MDtQPHQuTmFtZXMubGVuZ3RoOysrUClHWzBdW1ArMV09dC5OYW1lc1tQXTt2YXIgSj1bXSxmZT1bXSxyZT0hMTtBdFsxNl09e246IkJydFNob3J0UmVhbCIsZjpCc307dmFyIGNlO2lmKFByKGUsZnVuY3Rpb24oVyxsZSxoZSl7aWYoIXgpc3dpdGNoKGhlKXtjYXNlIDE0ODpvPVc7YnJlYWs7Y2FzZSAwOmQ9VyxjLnNoZWV0Um93cyYmYy5zaGVldFJvd3M8PWQuciYmKHg9ITApLE49emUoZz1kLnIpLGNbIiFyb3ciXT1kLnIsKFcuaGlkZGVufHxXLmhwdHx8Vy5sZXZlbCE9bnVsbCkmJihXLmhwdCYmKFcuaHB4PVZhKFcuaHB0KSksZmVbVy5yXT1XKTticmVhaztjYXNlIDI6Y2FzZSAzOmNhc2UgNDpjYXNlIDU6Y2FzZSA2OmNhc2UgNzpjYXNlIDg6Y2FzZSA5OmNhc2UgMTA6Y2FzZSAxMTpjYXNlIDEzOmNhc2UgMTQ6Y2FzZSAxNTpjYXNlIDE2OmNhc2UgMTc6Y2FzZSAxODpjYXNlIDYyOnN3aXRjaCh2PXt0OldbMl19LFdbMl0pe2Nhc2UibiI6di52PVdbMV07YnJlYWs7Y2FzZSJzIjpfPSRhW1dbMV1dLHYudj1fLnQsdi5yPV8ucjticmVhaztjYXNlImIiOnYudj0hIVdbMV07YnJlYWs7Y2FzZSJlIjp2LnY9V1sxXSxjLmNlbGxUZXh0IT09ITEmJih2Lnc9aWFbdi52XSk7YnJlYWs7Y2FzZSJzdHIiOnYudD0icyIsdi52PVdbMV07YnJlYWs7Y2FzZSJpcyI6di50PSJzIix2LnY9V1sxXS50O2JyZWFrfWlmKCh1PWkuQ2VsbFhmW1dbMF0uaVN0eWxlUmVmXSkmJkxzKHYsdS5udW1GbXRJZCxudWxsLGMscyxpKSxGPVdbMF0uYz09LTE/RisxOldbMF0uYyxjLmRlbnNlPyhmW2ddfHwoZltnXT1bXSksZltnXVtGXT12KTpmW1VlKEYpK05dPXYsYy5jZWxsRm9ybXVsYSl7Zm9yKFY9ITEsQT0wO0E8RC5sZW5ndGg7KytBKXt2YXIgUz1EW0FdO2Qucj49U1swXS5zLnImJmQucjw9U1swXS5lLnImJkY+PVNbMF0ucy5jJiZGPD1TWzBdLmUuYyYmKHYuRj1fZShTWzBdKSxWPSEwKX0hViYmVy5sZW5ndGg+MyYmKHYuZj1XWzNdKX1pZihsLnMucj5kLnImJihsLnMucj1kLnIpLGwucy5jPkYmJihsLnMuYz1GKSxsLmUucjxkLnImJihsLmUucj1kLnIpLGwuZS5jPEYmJihsLmUuYz1GKSxjLmNlbGxEYXRlcyYmdSYmdi50PT0ibiImJnhhKGRlW3UubnVtRm10SWRdKSl7dmFyIFU9cXIodi52KTtVJiYodi50PSJkIix2LnY9bmV3IERhdGUoVS55LFUubS0xLFUuZCxVLkgsVS5NLFUuUyxVLnUpKX1jZSYmKGNlLnR5cGU9PSJYTERBUFIiJiYodi5EPSEwKSxjZT12b2lkIDApO2JyZWFrO2Nhc2UgMTpjYXNlIDEyOmlmKCFjLnNoZWV0U3R1YnN8fGgpYnJlYWs7dj17dDoieiIsdjp2b2lkIDB9LEY9V1swXS5jPT0tMT9GKzE6V1swXS5jLGMuZGVuc2U/KGZbZ118fChmW2ddPVtdKSxmW2ddW0ZdPXYpOmZbVWUoRikrTl09dixsLnMucj5kLnImJihsLnMucj1kLnIpLGwucy5jPkYmJihsLnMuYz1GKSxsLmUucjxkLnImJihsLmUucj1kLnIpLGwuZS5jPEYmJihsLmUuYz1GKSxjZSYmKGNlLnR5cGU9PSJYTERBUFIiJiYodi5EPSEwKSxjZT12b2lkIDApO2JyZWFrO2Nhc2UgMTc2OkkucHVzaChXKTticmVhaztjYXNlIDQ5OmNlPSgoYy54bG1ldGF8fHt9KS5DZWxsfHxbXSlbVy0xXTticmVhaztjYXNlIDQ5NDp2YXIgUj1uWyIhaWQiXVtXLnJlbElkXTtmb3IoUj8oVy5UYXJnZXQ9Ui5UYXJnZXQsVy5sb2MmJihXLlRhcmdldCs9IiMiK1cubG9jKSxXLlJlbD1SKTpXLnJlbElkPT0iIiYmKFcuVGFyZ2V0PSIjIitXLmxvYyksZz1XLnJmeC5zLnI7Zzw9Vy5yZnguZS5yOysrZylmb3IoRj1XLnJmeC5zLmM7Rjw9Vy5yZnguZS5jOysrRiljLmRlbnNlPyhmW2ddfHwoZltnXT1bXSksZltnXVtGXXx8KGZbZ11bRl09e3Q6InoiLHY6dm9pZCAwfSksZltnXVtGXS5sPVcpOih5PXVlKHtjOkYscjpnfSksZlt5XXx8KGZbeV09e3Q6InoiLHY6dm9pZCAwfSksZlt5XS5sPVcpO2JyZWFrO2Nhc2UgNDI2OmlmKCFjLmNlbGxGb3JtdWxhKWJyZWFrO0QucHVzaChXKSxiPWMuZGVuc2U/ZltnXVtGXTpmW1VlKEYpK05dLGIuZj1xZShXWzFdLGwse3I6ZC5yLGM6Rn0sRyxjKSxiLkY9X2UoV1swXSk7YnJlYWs7Y2FzZSA0Mjc6aWYoIWMuY2VsbEZvcm11bGEpYnJlYWs7elt1ZShXWzBdLnMpXT1XWzFdLGI9Yy5kZW5zZT9mW2ddW0ZdOmZbVWUoRikrTl0sYi5mPXFlKFdbMV0sbCx7cjpkLnIsYzpGfSxHLGMpO2JyZWFrO2Nhc2UgNjA6aWYoIWMuY2VsbFN0eWxlcylicmVhaztmb3IoO1cuZT49Vy5zOylKW1cuZS0tXT17d2lkdGg6Vy53LzI1NixoaWRkZW46ISEoVy5mbGFncyYxKSxsZXZlbDpXLmxldmVsfSxyZXx8KHJlPSEwLGUwKFcudy8yNTYpKSxfYShKW1cuZSsxXSk7YnJlYWs7Y2FzZSAxNjE6ZlsiIWF1dG9maWx0ZXIiXT17cmVmOl9lKFcpfTticmVhaztjYXNlIDQ3NjpmWyIhbWFyZ2lucyJdPVc7YnJlYWs7Y2FzZSAxNDc6dC5TaGVldHNbcl18fCh0LlNoZWV0c1tyXT17fSksVy5uYW1lJiYodC5TaGVldHNbcl0uQ29kZU5hbWU9Vy5uYW1lKSwoVy5hYm92ZXx8Vy5sZWZ0KSYmKGZbIiFvdXRsaW5lIl09e2Fib3ZlOlcuYWJvdmUsbGVmdDpXLmxlZnR9KTticmVhaztjYXNlIDEzNzp0LlZpZXdzfHwodC5WaWV3cz1be31dKSx0LlZpZXdzWzBdfHwodC5WaWV3c1swXT17fSksVy5SVEwmJih0LlZpZXdzWzBdLlJUTD0hMCk7YnJlYWs7Y2FzZSA0ODU6YnJlYWs7Y2FzZSA2NDpjYXNlIDEwNTM6YnJlYWs7Y2FzZSAxNTE6YnJlYWs7Y2FzZSAxNTI6Y2FzZSAxNzU6Y2FzZSA2NDQ6Y2FzZSA2MjU6Y2FzZSA1NjI6Y2FzZSAzOTY6Y2FzZSAxMTEyOmNhc2UgMTE0NjpjYXNlIDQ3MTpjYXNlIDEwNTA6Y2FzZSA2NDk6Y2FzZSAxMTA1OmNhc2UgNTg5OmNhc2UgNjA3OmNhc2UgNTY0OmNhc2UgMTA1NTpjYXNlIDE2ODpjYXNlIDE3NDpjYXNlIDExODA6Y2FzZSA0OTk6Y2FzZSA1MDc6Y2FzZSA1NTA6Y2FzZSAxNzE6Y2FzZSAxNjc6Y2FzZSAxMTc3OmNhc2UgMTY5OmNhc2UgMTE4MTpjYXNlIDU1MTpjYXNlIDU1MjpjYXNlIDY2MTpjYXNlIDYzOTpjYXNlIDQ3ODpjYXNlIDUzNzpjYXNlIDQ3NzpjYXNlIDUzNjpjYXNlIDExMDM6Y2FzZSA2ODA6Y2FzZSAxMTA0OmNhc2UgMTAyNDpjYXNlIDY2MzpjYXNlIDUzNTpjYXNlIDY3ODpjYXNlIDUwNDpjYXNlIDEwNDM6Y2FzZSA0Mjg6Y2FzZSAxNzA6Y2FzZSAzMDcyOmNhc2UgNTA6Y2FzZSAyMDcwOmNhc2UgMTA0NTpicmVhaztjYXNlIDM1Omg9ITA7YnJlYWs7Y2FzZSAzNjpoPSExO2JyZWFrO2Nhc2UgMzc6aD0hMDticmVhaztjYXNlIDM4Omg9ITE7YnJlYWs7ZGVmYXVsdDppZighbGUuVCl7aWYoIWh8fGMuV1RGKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCByZWNvcmQgMHgiK2hlLnRvU3RyaW5nKDE2KSl9fX0sYyksZGVsZXRlIGMuc3VwYm9va3MsZGVsZXRlIGNbIiFyb3ciXSwhZlsiIXJlZiJdJiYobC5zLnI8MmU2fHxvJiYoby5lLnI+MHx8by5lLmM+MHx8by5zLnI+MHx8by5zLmM+MCkpJiYoZlsiIXJlZiJdPV9lKG98fGwpKSxjLnNoZWV0Um93cyYmZlsiIXJlZiJdKXt2YXIgaWU9T2UoZlsiIXJlZiJdKTtjLnNoZWV0Um93czw9K2llLmUuciYmKGllLmUucj1jLnNoZWV0Um93cy0xLGllLmUucj5sLmUuciYmKGllLmUucj1sLmUuciksaWUuZS5yPGllLnMuciYmKGllLnMucj1pZS5lLnIpLGllLmUuYz5sLmUuYyYmKGllLmUuYz1sLmUuYyksaWUuZS5jPGllLnMuYyYmKGllLnMuYz1pZS5lLmMpLGZbIiFmdWxscmVmIl09ZlsiIXJlZiJdLGZbIiFyZWYiXT1fZShpZSkpfXJldHVybiBJLmxlbmd0aD4wJiYoZlsiIW1lcmdlcyJdPUkpLEoubGVuZ3RoPjAmJihmWyIhY29scyJdPUopLGZlLmxlbmd0aD4wJiYoZlsiIXJvd3MiXT1mZSksZn1mdW5jdGlvbiBCdShlKXt2YXIgYT1bXSxyPWUubWF0Y2goL148YzpudW1DYWNoZT4vKSxuOyhlLm1hdGNoKC88YzpwdCBpZHg9IihcZCopIj4oLio/KTxcL2M6cHQ+L21nKXx8W10pLmZvckVhY2goZnVuY3Rpb24ocyl7dmFyIGk9cy5tYXRjaCgvPGM6cHQgaWR4PSIoXGQqPykiPjxjOnY+KC4qKTxcL2M6dj48XC9jOnB0Pi8pO2kmJihhWytpWzFdXT1yPytpWzJdOmlbMl0pfSk7dmFyIHQ9RWUoKGUubWF0Y2goLzxjOmZvcm1hdENvZGU+KFtcc1xTXSo/KTxcL2M6Zm9ybWF0Q29kZT4vKXx8WyIiLCJHZW5lcmFsIl0pWzFdKTtyZXR1cm4oZS5tYXRjaCgvPGM6Zj4oLio/KTxcL2M6Zj4vbWcpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihzKXtuPXMucmVwbGFjZSgvPC4qPz4vZywiIil9KSxbYSx0LG5dfWZ1bmN0aW9uIGJ1KGUsYSxyLG4sdCxzKXt2YXIgaT1zfHx7IiF0eXBlIjoiY2hhcnQifTtpZighZSlyZXR1cm4gczt2YXIgYz0wLGY9MCxvPSJBIixsPXtzOntyOjJlNixjOjJlNn0sZTp7cjowLGM6MH19O3JldHVybihlLm1hdGNoKC88YzpudW1DYWNoZT5bXHNcU10qPzxcL2M6bnVtQ2FjaGU+L2dtKXx8W10pLmZvckVhY2goZnVuY3Rpb24oaCl7dmFyIHg9QnUoaCk7bC5zLnI9bC5zLmM9MCxsLmUuYz1jLG89VWUoYykseFswXS5mb3JFYWNoKGZ1bmN0aW9uKGQsdil7aVtvK3plKHYpXT17dDoibiIsdjpkLHo6eFsxXX0sZj12fSksbC5lLnI8ZiYmKGwuZS5yPWYpLCsrY30pLGM+MCYmKGlbIiFyZWYiXT1fZShsKSksaX1mdW5jdGlvbiBVdShlLGEscixuLHQpe2lmKCFlKXJldHVybiBlO258fChuPXsiIWlkIjp7fX0pO3ZhciBzPXsiIXR5cGUiOiJjaGFydCIsIiFkcmF3ZWwiOm51bGwsIiFyZWwiOiIifSxpLGM9ZS5tYXRjaChNcyk7cmV0dXJuIGMmJm4wKGNbMF0scyx0LHIpLChpPWUubWF0Y2goL2RyYXdpbmcgcjppZD0iKC4qPykiLykpJiYoc1siIXJlbCJdPWlbMV0pLG5bIiFpZCJdW3NbIiFyZWwiXV0mJihzWyIhZHJhd2VsIl09blsiIWlkIl1bc1siIXJlbCJdXSksc31mdW5jdGlvbiBIdShlLGEpe2UubCs9MTA7dmFyIHI9amUoZSk7cmV0dXJue25hbWU6cn19ZnVuY3Rpb24gVnUoZSxhLHIsbix0KXtpZighZSlyZXR1cm4gZTtufHwobj17IiFpZCI6e319KTt2YXIgcz17IiF0eXBlIjoiY2hhcnQiLCIhZHJhd2VsIjpudWxsLCIhcmVsIjoiIn0saT0hMTtyZXR1cm4gUHIoZSxmdW5jdGlvbihmLG8sbCl7c3dpdGNoKGwpe2Nhc2UgNTUwOnNbIiFyZWwiXT1mO2JyZWFrO2Nhc2UgNjUxOnQuU2hlZXRzW3JdfHwodC5TaGVldHNbcl09e30pLGYubmFtZSYmKHQuU2hlZXRzW3JdLkNvZGVOYW1lPWYubmFtZSk7YnJlYWs7Y2FzZSA1NjI6Y2FzZSA2NTI6Y2FzZSA2Njk6Y2FzZSA2Nzk6Y2FzZSA1NTE6Y2FzZSA1NTI6Y2FzZSA0NzY6Y2FzZSAzMDcyOmJyZWFrO2Nhc2UgMzU6aT0hMDticmVhaztjYXNlIDM2Omk9ITE7YnJlYWs7Y2FzZSAzNzpicmVhaztjYXNlIDM4OmJyZWFrO2RlZmF1bHQ6aWYoIShvLlQ+MCkpe2lmKCEoby5UPDApKXtpZighaXx8YS5XVEYpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHJlY29yZCAweCIrbC50b1N0cmluZygxNikpfX19fSxhKSxuWyIhaWQiXVtzWyIhcmVsIl1dJiYoc1siIWRyYXdlbCJdPW5bIiFpZCJdW3NbIiFyZWwiXV0pLHN9dmFyIGJzPVtbImFsbG93UmVmcmVzaFF1ZXJ5IiwhMSwiYm9vbCJdLFsiYXV0b0NvbXByZXNzUGljdHVyZXMiLCEwLCJib29sIl0sWyJiYWNrdXBGaWxlIiwhMSwiYm9vbCJdLFsiY2hlY2tDb21wYXRpYmlsaXR5IiwhMSwiYm9vbCJdLFsiQ29kZU5hbWUiLCIiXSxbImRhdGUxOTA0IiwhMSwiYm9vbCJdLFsiZGVmYXVsdFRoZW1lVmVyc2lvbiIsMCwiaW50Il0sWyJmaWx0ZXJQcml2YWN5IiwhMSwiYm9vbCJdLFsiaGlkZVBpdm90RmllbGRMaXN0IiwhMSwiYm9vbCJdLFsicHJvbXB0ZWRTb2x1dGlvbnMiLCExLCJib29sIl0sWyJwdWJsaXNoSXRlbXMiLCExLCJib29sIl0sWyJyZWZyZXNoQWxsQ29ubmVjdGlvbnMiLCExLCJib29sIl0sWyJzYXZlRXh0ZXJuYWxMaW5rVmFsdWVzIiwhMCwiYm9vbCJdLFsic2hvd0JvcmRlclVuc2VsZWN0ZWRUYWJsZXMiLCEwLCJib29sIl0sWyJzaG93SW5rQW5ub3RhdGlvbiIsITAsImJvb2wiXSxbInNob3dPYmplY3RzIiwiYWxsIl0sWyJzaG93UGl2b3RDaGFydEZpbHRlciIsITEsImJvb2wiXSxbInVwZGF0ZUxpbmtzIiwidXNlclNldCJdXSxXdT1bWyJhY3RpdmVUYWIiLDAsImludCJdLFsiYXV0b0ZpbHRlckRhdGVHcm91cGluZyIsITAsImJvb2wiXSxbImZpcnN0U2hlZXQiLDAsImludCJdLFsibWluaW1pemVkIiwhMSwiYm9vbCJdLFsic2hvd0hvcml6b250YWxTY3JvbGwiLCEwLCJib29sIl0sWyJzaG93U2hlZXRUYWJzIiwhMCwiYm9vbCJdLFsic2hvd1ZlcnRpY2FsU2Nyb2xsIiwhMCwiYm9vbCJdLFsidGFiUmF0aW8iLDYwMCwiaW50Il0sWyJ2aXNpYmlsaXR5IiwidmlzaWJsZSJdXSxHdT1bXSxYdT1bWyJjYWxjQ29tcGxldGVkIiwidHJ1ZSJdLFsiY2FsY01vZGUiLCJhdXRvIl0sWyJjYWxjT25TYXZlIiwidHJ1ZSJdLFsiY29uY3VycmVudENhbGMiLCJ0cnVlIl0sWyJmdWxsQ2FsY09uTG9hZCIsImZhbHNlIl0sWyJmdWxsUHJlY2lzaW9uIiwidHJ1ZSJdLFsiaXRlcmF0ZSIsImZhbHNlIl0sWyJpdGVyYXRlQ291bnQiLCIxMDAiXSxbIml0ZXJhdGVEZWx0YSIsIjAuMDAxIl0sWyJyZWZNb2RlIiwiQTEiXV07ZnVuY3Rpb24gVXMoZSxhKXtmb3IodmFyIHI9MDtyIT1lLmxlbmd0aDsrK3IpZm9yKHZhciBuPWVbcl0sdD0wO3QhPWEubGVuZ3RoOysrdCl7dmFyIHM9YVt0XTtpZihuW3NbMF1dPT1udWxsKW5bc1swXV09c1sxXTtlbHNlIHN3aXRjaChzWzJdKXtjYXNlImJvb2wiOnR5cGVvZiBuW3NbMF1dPT0ic3RyaW5nIiYmKG5bc1swXV09U2UobltzWzBdXSkpO2JyZWFrO2Nhc2UiaW50Ijp0eXBlb2YgbltzWzBdXT09InN0cmluZyImJihuW3NbMF1dPXBhcnNlSW50KG5bc1swXV0sMTApKTticmVha319fWZ1bmN0aW9uIEhzKGUsYSl7Zm9yKHZhciByPTA7ciE9YS5sZW5ndGg7KytyKXt2YXIgbj1hW3JdO2lmKGVbblswXV09PW51bGwpZVtuWzBdXT1uWzFdO2Vsc2Ugc3dpdGNoKG5bMl0pe2Nhc2UiYm9vbCI6dHlwZW9mIGVbblswXV09PSJzdHJpbmciJiYoZVtuWzBdXT1TZShlW25bMF1dKSk7YnJlYWs7Y2FzZSJpbnQiOnR5cGVvZiBlW25bMF1dPT0ic3RyaW5nIiYmKGVbblswXV09cGFyc2VJbnQoZVtuWzBdXSwxMCkpO2JyZWFrfX19ZnVuY3Rpb24gVnMoZSl7SHMoZS5XQlByb3BzLGJzKSxIcyhlLkNhbGNQcixYdSksVXMoZS5XQlZpZXcsV3UpLFVzKGUuU2hlZXRzLEd1KSxUYS5kYXRlMTkwND1TZShlLldCUHJvcHMuZGF0ZTE5MDQpfXZhciAkdT0iXVsqPy9cXCIuc3BsaXQoIiIpO2Z1bmN0aW9uIHp1KGUsYSl7aWYoZS5sZW5ndGg+MzEpdGhyb3cgbmV3IEVycm9yKCJTaGVldCBuYW1lcyBjYW5ub3QgZXhjZWVkIDMxIGNoYXJzIik7dmFyIHI9ITA7cmV0dXJuICR1LmZvckVhY2goZnVuY3Rpb24obil7aWYoZS5pbmRleE9mKG4pIT0tMSl0aHJvdyBuZXcgRXJyb3IoIlNoZWV0IG5hbWUgY2Fubm90IGNvbnRhaW4gOiBcXCAvID8gKiBbIF0iKX0pLHJ9dmFyIEt1PS88XHcrOndvcmtib29rLztmdW5jdGlvbiBZdShlLGEpe2lmKCFlKXRocm93IG5ldyBFcnJvcigiQ291bGQgbm90IGZpbmQgZmlsZSIpO3ZhciByPXtBcHBWZXJzaW9uOnt9LFdCUHJvcHM6e30sV0JWaWV3OltdLFNoZWV0czpbXSxDYWxjUHI6e30sTmFtZXM6W10seG1sbnM6IiJ9LG49ITEsdD0ieG1sbnMiLHM9e30saT0wO2lmKGUucmVwbGFjZShLZSxmdW5jdGlvbihmLG8pe3ZhciBsPW9lKGYpO3N3aXRjaChDcihsWzBdKSl7Y2FzZSI8P3htbCI6YnJlYWs7Y2FzZSI8d29ya2Jvb2siOmYubWF0Y2goS3UpJiYodD0ieG1sbnMiK2YubWF0Y2goLzwoXHcrKTovKVsxXSksci54bWxucz1sW3RdO2JyZWFrO2Nhc2UiPC93b3JrYm9vaz4iOmJyZWFrO2Nhc2UiPGZpbGVWZXJzaW9uIjpkZWxldGUgbFswXSxyLkFwcFZlcnNpb249bDticmVhaztjYXNlIjxmaWxlVmVyc2lvbi8+IjpjYXNlIjwvZmlsZVZlcnNpb24+IjpicmVhaztjYXNlIjxmaWxlU2hhcmluZyI6YnJlYWs7Y2FzZSI8ZmlsZVNoYXJpbmcvPiI6YnJlYWs7Y2FzZSI8d29ya2Jvb2tQciI6Y2FzZSI8d29ya2Jvb2tQci8+Ijpicy5mb3JFYWNoKGZ1bmN0aW9uKGgpe2lmKGxbaFswXV0hPW51bGwpc3dpdGNoKGhbMl0pe2Nhc2UiYm9vbCI6ci5XQlByb3BzW2hbMF1dPVNlKGxbaFswXV0pO2JyZWFrO2Nhc2UiaW50IjpyLldCUHJvcHNbaFswXV09cGFyc2VJbnQobFtoWzBdXSwxMCk7YnJlYWs7ZGVmYXVsdDpyLldCUHJvcHNbaFswXV09bFtoWzBdXX19KSxsLmNvZGVOYW1lJiYoci5XQlByb3BzLkNvZGVOYW1lPUFlKGwuY29kZU5hbWUpKTticmVhaztjYXNlIjwvd29ya2Jvb2tQcj4iOmJyZWFrO2Nhc2UiPHdvcmtib29rUHJvdGVjdGlvbiI6YnJlYWs7Y2FzZSI8d29ya2Jvb2tQcm90ZWN0aW9uLz4iOmJyZWFrO2Nhc2UiPGJvb2tWaWV3cyI6Y2FzZSI8Ym9va1ZpZXdzPiI6Y2FzZSI8L2Jvb2tWaWV3cz4iOmJyZWFrO2Nhc2UiPHdvcmtib29rVmlldyI6Y2FzZSI8d29ya2Jvb2tWaWV3Lz4iOmRlbGV0ZSBsWzBdLHIuV0JWaWV3LnB1c2gobCk7YnJlYWs7Y2FzZSI8L3dvcmtib29rVmlldz4iOmJyZWFrO2Nhc2UiPHNoZWV0cyI6Y2FzZSI8c2hlZXRzPiI6Y2FzZSI8L3NoZWV0cz4iOmJyZWFrO2Nhc2UiPHNoZWV0Ijpzd2l0Y2gobC5zdGF0ZSl7Y2FzZSJoaWRkZW4iOmwuSGlkZGVuPTE7YnJlYWs7Y2FzZSJ2ZXJ5SGlkZGVuIjpsLkhpZGRlbj0yO2JyZWFrO2RlZmF1bHQ6bC5IaWRkZW49MH1kZWxldGUgbC5zdGF0ZSxsLm5hbWU9RWUoQWUobC5uYW1lKSksZGVsZXRlIGxbMF0sci5TaGVldHMucHVzaChsKTticmVhaztjYXNlIjwvc2hlZXQ+IjpicmVhaztjYXNlIjxmdW5jdGlvbkdyb3VwcyI6Y2FzZSI8ZnVuY3Rpb25Hcm91cHMvPiI6YnJlYWs7Y2FzZSI8ZnVuY3Rpb25Hcm91cCI6YnJlYWs7Y2FzZSI8ZXh0ZXJuYWxSZWZlcmVuY2VzIjpjYXNlIjwvZXh0ZXJuYWxSZWZlcmVuY2VzPiI6Y2FzZSI8ZXh0ZXJuYWxSZWZlcmVuY2VzPiI6YnJlYWs7Y2FzZSI8ZXh0ZXJuYWxSZWZlcmVuY2UiOmJyZWFrO2Nhc2UiPGRlZmluZWROYW1lcy8+IjpicmVhaztjYXNlIjxkZWZpbmVkTmFtZXM+IjpjYXNlIjxkZWZpbmVkTmFtZXMiOm49ITA7YnJlYWs7Y2FzZSI8L2RlZmluZWROYW1lcz4iOm49ITE7YnJlYWs7Y2FzZSI8ZGVmaW5lZE5hbWUiOnM9e30scy5OYW1lPUFlKGwubmFtZSksbC5jb21tZW50JiYocy5Db21tZW50PWwuY29tbWVudCksbC5sb2NhbFNoZWV0SWQmJihzLlNoZWV0PStsLmxvY2FsU2hlZXRJZCksU2UobC5oaWRkZW58fCIwIikmJihzLkhpZGRlbj0hMCksaT1vK2YubGVuZ3RoO2JyZWFrO2Nhc2UiPC9kZWZpbmVkTmFtZT4iOnMuUmVmPUVlKEFlKGUuc2xpY2UoaSxvKSkpLHIuTmFtZXMucHVzaChzKTticmVhaztjYXNlIjxkZWZpbmVkTmFtZS8+IjpicmVhaztjYXNlIjxjYWxjUHIiOmRlbGV0ZSBsWzBdLHIuQ2FsY1ByPWw7YnJlYWs7Y2FzZSI8Y2FsY1ByLz4iOmRlbGV0ZSBsWzBdLHIuQ2FsY1ByPWw7YnJlYWs7Y2FzZSI8L2NhbGNQcj4iOmJyZWFrO2Nhc2UiPG9sZVNpemUiOmJyZWFrO2Nhc2UiPGN1c3RvbVdvcmtib29rVmlld3M+IjpjYXNlIjwvY3VzdG9tV29ya2Jvb2tWaWV3cz4iOmNhc2UiPGN1c3RvbVdvcmtib29rVmlld3MiOmJyZWFrO2Nhc2UiPGN1c3RvbVdvcmtib29rVmlldyI6Y2FzZSI8L2N1c3RvbVdvcmtib29rVmlldz4iOmJyZWFrO2Nhc2UiPHBpdm90Q2FjaGVzPiI6Y2FzZSI8L3Bpdm90Q2FjaGVzPiI6Y2FzZSI8cGl2b3RDYWNoZXMiOmJyZWFrO2Nhc2UiPHBpdm90Q2FjaGUiOmJyZWFrO2Nhc2UiPHNtYXJ0VGFnUHIiOmNhc2UiPHNtYXJ0VGFnUHIvPiI6YnJlYWs7Y2FzZSI8c21hcnRUYWdUeXBlcyI6Y2FzZSI8c21hcnRUYWdUeXBlcz4iOmNhc2UiPC9zbWFydFRhZ1R5cGVzPiI6YnJlYWs7Y2FzZSI8c21hcnRUYWdUeXBlIjpicmVhaztjYXNlIjx3ZWJQdWJsaXNoaW5nIjpjYXNlIjx3ZWJQdWJsaXNoaW5nLz4iOmJyZWFrO2Nhc2UiPGZpbGVSZWNvdmVyeVByIjpjYXNlIjxmaWxlUmVjb3ZlcnlQci8+IjpicmVhaztjYXNlIjx3ZWJQdWJsaXNoT2JqZWN0cz4iOmNhc2UiPHdlYlB1Ymxpc2hPYmplY3RzIjpjYXNlIjwvd2ViUHVibGlzaE9iamVjdHM+IjpicmVhaztjYXNlIjx3ZWJQdWJsaXNoT2JqZWN0IjpicmVhaztjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRMc3Q+IjpjYXNlIjxleHRMc3QvPiI6YnJlYWs7Y2FzZSI8ZXh0IjpuPSEwO2JyZWFrO2Nhc2UiPC9leHQ+IjpuPSExO2JyZWFrO2Nhc2UiPEFyY2hJRCI6YnJlYWs7Y2FzZSI8QWx0ZXJuYXRlQ29udGVudCI6Y2FzZSI8QWx0ZXJuYXRlQ29udGVudD4iOm49ITA7YnJlYWs7Y2FzZSI8L0FsdGVybmF0ZUNvbnRlbnQ+IjpuPSExO2JyZWFrO2Nhc2UiPHJldmlzaW9uUHRyIjpicmVhaztkZWZhdWx0OmlmKCFuJiZhLldURil0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK2xbMF0rIiBpbiB3b3JrYm9vayIpfXJldHVybiBmfSksbGMuaW5kZXhPZihyLnhtbG5zKT09PS0xKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBOYW1lc3BhY2U6ICIrci54bWxucyk7cmV0dXJuIFZzKHIpLHJ9ZnVuY3Rpb24ganUoZSxhKXt2YXIgcj17fTtyZXR1cm4gci5IaWRkZW49ZS5yZWFkX3NoaWZ0KDQpLHIuaVRhYklEPWUucmVhZF9zaGlmdCg0KSxyLnN0clJlbElEPVh0KGUpLHIubmFtZT1qZShlKSxyfWZ1bmN0aW9uIEp1KGUsYSl7dmFyIHI9e30sbj1lLnJlYWRfc2hpZnQoNCk7ci5kZWZhdWx0VGhlbWVWZXJzaW9uPWUucmVhZF9zaGlmdCg0KTt2YXIgdD1hPjg/amUoZSk6IiI7cmV0dXJuIHQubGVuZ3RoPjAmJihyLkNvZGVOYW1lPXQpLHIuYXV0b0NvbXByZXNzUGljdHVyZXM9ISEobiY2NTUzNiksci5iYWNrdXBGaWxlPSEhKG4mNjQpLHIuY2hlY2tDb21wYXRpYmlsaXR5PSEhKG4mNDA5Niksci5kYXRlMTkwND0hIShuJjEpLHIuZmlsdGVyUHJpdmFjeT0hIShuJjgpLHIuaGlkZVBpdm90RmllbGRMaXN0PSEhKG4mMTAyNCksci5wcm9tcHRlZFNvbHV0aW9ucz0hIShuJjE2KSxyLnB1Ymxpc2hJdGVtcz0hIShuJjIwNDgpLHIucmVmcmVzaEFsbENvbm5lY3Rpb25zPSEhKG4mMjYyMTQ0KSxyLnNhdmVFeHRlcm5hbExpbmtWYWx1ZXM9ISEobiYxMjgpLHIuc2hvd0JvcmRlclVuc2VsZWN0ZWRUYWJsZXM9ISEobiY0KSxyLnNob3dJbmtBbm5vdGF0aW9uPSEhKG4mMzIpLHIuc2hvd09iamVjdHM9WyJhbGwiLCJwbGFjZWhvbGRlcnMiLCJub25lIl1bbj4+MTMmM10sci5zaG93UGl2b3RDaGFydEZpbHRlcj0hIShuJjMyNzY4KSxyLnVwZGF0ZUxpbmtzPVsidXNlclNldCIsIm5ldmVyIiwiYWx3YXlzIl1bbj4+OCYzXSxyfWZ1bmN0aW9uIFp1KGUsYSl7dmFyIHI9e307cmV0dXJuIGUucmVhZF9zaGlmdCg0KSxyLkFyY2hJRD1lLnJlYWRfc2hpZnQoNCksZS5sKz1hLTgscn1mdW5jdGlvbiBxdShlLGEscil7dmFyIG49ZS5sK2E7ZS5sKz00LGUubCs9MTt2YXIgdD1lLnJlYWRfc2hpZnQoNCkscz15YyhlKSxpPUxoKGUsMCxyKSxjPUd0KGUpO2UubD1uO3ZhciBmPXtOYW1lOnMsUHRnOml9O3JldHVybiB0PDI2ODQzNTQ1NSYmKGYuU2hlZXQ9dCksYyYmKGYuQ29tbWVudD1jKSxmfWZ1bmN0aW9uIFF1KGUsYSl7dmFyIHI9e0FwcFZlcnNpb246e30sV0JQcm9wczp7fSxXQlZpZXc6W10sU2hlZXRzOltdLENhbGNQcjp7fSx4bWxuczoiIn0sbj1bXSx0PSExO2F8fChhPXt9KSxhLmJpZmY9MTI7dmFyIHM9W10saT1bW11dO3JldHVybiBpLlNoZWV0TmFtZXM9W10saS5YVEk9W10sQXRbMTZdPXtuOiJCcnRGUlRBcmNoSUQkIixmOlp1fSxQcihlLGZ1bmN0aW9uKGYsbyxsKXtzd2l0Y2gobCl7Y2FzZSAxNTY6aS5TaGVldE5hbWVzLnB1c2goZi5uYW1lKSxyLlNoZWV0cy5wdXNoKGYpO2JyZWFrO2Nhc2UgMTUzOnIuV0JQcm9wcz1mO2JyZWFrO2Nhc2UgMzk6Zi5TaGVldCE9bnVsbCYmKGEuU0lEPWYuU2hlZXQpLGYuUmVmPXFlKGYuUHRnLG51bGwsbnVsbCxpLGEpLGRlbGV0ZSBhLlNJRCxkZWxldGUgZi5QdGcscy5wdXNoKGYpO2JyZWFrO2Nhc2UgMTAzNjpicmVhaztjYXNlIDM1NzpjYXNlIDM1ODpjYXNlIDM1NTpjYXNlIDY2NzppWzBdLmxlbmd0aD9pLnB1c2goW2wsZl0pOmlbMF09W2wsZl0saVtpLmxlbmd0aC0xXS5YVEk9W107YnJlYWs7Y2FzZSAzNjI6aS5sZW5ndGg9PT0wJiYoaVswXT1bXSxpWzBdLlhUST1bXSksaVtpLmxlbmd0aC0xXS5YVEk9aVtpLmxlbmd0aC0xXS5YVEkuY29uY2F0KGYpLGkuWFRJPWkuWFRJLmNvbmNhdChmKTticmVhaztjYXNlIDM2MTpicmVhaztjYXNlIDIwNzE6Y2FzZSAxNTg6Y2FzZSAxNDM6Y2FzZSA2NjQ6Y2FzZSAzNTM6YnJlYWs7Y2FzZSAzMDcyOmNhc2UgMzA3MzpjYXNlIDUzNDpjYXNlIDY3NzpjYXNlIDE1NzpjYXNlIDYxMDpjYXNlIDIwNTA6Y2FzZSAxNTU6Y2FzZSA1NDg6Y2FzZSA2NzY6Y2FzZSAxMjg6Y2FzZSA2NjU6Y2FzZSAyMTI4OmNhc2UgMjEyNTpjYXNlIDU0OTpjYXNlIDIwNTM6Y2FzZSA1OTY6Y2FzZSAyMDc2OmNhc2UgMjA3NTpjYXNlIDIwODI6Y2FzZSAzOTc6Y2FzZSAxNTQ6Y2FzZSAxMTE3OmNhc2UgNTUzOmNhc2UgMjA5MTpicmVhaztjYXNlIDM1Om4ucHVzaChsKSx0PSEwO2JyZWFrO2Nhc2UgMzY6bi5wb3AoKSx0PSExO2JyZWFrO2Nhc2UgMzc6bi5wdXNoKGwpLHQ9ITA7YnJlYWs7Y2FzZSAzODpuLnBvcCgpLHQ9ITE7YnJlYWs7Y2FzZSAxNjpicmVhaztkZWZhdWx0OmlmKCFvLlQpe2lmKCF0fHxhLldURiYmbltuLmxlbmd0aC0xXSE9MzcmJm5bbi5sZW5ndGgtMV0hPTM1KXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCByZWNvcmQgMHgiK2wudG9TdHJpbmcoMTYpKX19fSxhKSxWcyhyKSxyLk5hbWVzPXMsci5zdXBib29rcz1pLHJ9ZnVuY3Rpb24gZXgoZSxhLHIpe3JldHVybiBhLnNsaWNlKC00KT09PSIuYmluIj9RdShlLHIpOll1KGUscil9ZnVuY3Rpb24gcngoZSxhLHIsbix0LHMsaSxjKXtyZXR1cm4gYS5zbGljZSgtNCk9PT0iLmJpbiI/TXUoZSxuLHIsdCxzLGksYyk6amgoZSxuLHIsdCxzLGksYyl9ZnVuY3Rpb24gYXgoZSxhLHIsbix0LHMsaSxjKXtyZXR1cm4gYS5zbGljZSgtNCk9PT0iLmJpbiI/VnUoZSxuLHIsdCxzKTpVdShlLG4scix0LHMpfWZ1bmN0aW9uIHR4KGUsYSxyLG4sdCxzLGksYyl7cmV0dXJuIGEuc2xpY2UoLTQpPT09Ii5iaW4iP2gxKCk6dTEoKX1mdW5jdGlvbiBueChlLGEscixuLHQscyxpLGMpe3JldHVybiBhLnNsaWNlKC00KT09PSIuYmluIj9vMSgpOmwxKCl9ZnVuY3Rpb24gc3goZSxhLHIsbil7cmV0dXJuIGEuc2xpY2UoLTQpPT09Ii5iaW4iP1NsKGUscixuKTpFbChlLHIsbil9ZnVuY3Rpb24gaXgoZSxhLHIpe3JldHVybiBfcyhlLHIpfWZ1bmN0aW9uIGN4KGUsYSxyKXtyZXR1cm4gYS5zbGljZSgtNCk9PT0iLmJpbiI/V28oZSxyKTpIbyhlLHIpfWZ1bmN0aW9uIGZ4KGUsYSxyKXtyZXR1cm4gYS5zbGljZSgtNCk9PT0iLmJpbiI/aTEoZSxyKTpyMShlLHIpfWZ1bmN0aW9uIG94KGUsYSxyKXtyZXR1cm4gYS5zbGljZSgtNCk9PT0iLmJpbiI/cWwoZSk6SmwoZSl9ZnVuY3Rpb24gbHgoZSxhLHIsbil7cmV0dXJuIHIuc2xpY2UoLTQpPT09Ii5iaW4iP1FsKGUsYSxyLG4pOnZvaWQgMH1mdW5jdGlvbiBoeChlLGEscil7cmV0dXJuIGEuc2xpY2UoLTQpPT09Ii5iaW4iP1lsKGUsYSxyKTpqbChlLGEscil9dmFyIFdzPS8oW1x3Ol0rKT0oKD86IikoW14iXSopKD86Iil8KD86JykoW14nXSopKD86JykpL2csR3M9LyhbXHc6XSspPSgoPzoiKSg/OlteIl0qKSg/OiIpfCg/OicpKD86W14nXSopKD86JykpLztmdW5jdGlvbiB3cihlLGEpe3ZhciByPWUuc3BsaXQoL1xzKy8pLG49W107aWYoblswXT1yWzBdLHIubGVuZ3RoPT09MSlyZXR1cm4gbjt2YXIgdD1lLm1hdGNoKFdzKSxzLGksYyxmO2lmKHQpZm9yKGY9MDtmIT10Lmxlbmd0aDsrK2Ypcz10W2ZdLm1hdGNoKEdzKSwoaT1zWzFdLmluZGV4T2YoIjoiKSk9PT0tMT9uW3NbMV1dPXNbMl0uc2xpY2UoMSxzWzJdLmxlbmd0aC0xKTooc1sxXS5zbGljZSgwLDYpPT09InhtbG5zOiI/Yz0ieG1sbnMiK3NbMV0uc2xpY2UoNik6Yz1zWzFdLnNsaWNlKGkrMSksbltjXT1zWzJdLnNsaWNlKDEsc1syXS5sZW5ndGgtMSkpO3JldHVybiBufWZ1bmN0aW9uIHV4KGUpe3ZhciBhPWUuc3BsaXQoL1xzKy8pLHI9e307aWYoYS5sZW5ndGg9PT0xKXJldHVybiByO3ZhciBuPWUubWF0Y2goV3MpLHQscyxpLGM7aWYobilmb3IoYz0wO2MhPW4ubGVuZ3RoOysrYyl0PW5bY10ubWF0Y2goR3MpLChzPXRbMV0uaW5kZXhPZigiOiIpKT09PS0xP3JbdFsxXV09dFsyXS5zbGljZSgxLHRbMl0ubGVuZ3RoLTEpOih0WzFdLnNsaWNlKDAsNik9PT0ieG1sbnM6Ij9pPSJ4bWxucyIrdFsxXS5zbGljZSg2KTppPXRbMV0uc2xpY2UocysxKSxyW2ldPXRbMl0uc2xpY2UoMSx0WzJdLmxlbmd0aC0xKSk7cmV0dXJuIHJ9dmFyIEthO2Z1bmN0aW9uIHh4KGUsYSl7dmFyIHI9S2FbZV18fEVlKGUpO3JldHVybiByPT09IkdlbmVyYWwiP1FyKGEpOnhyKHIsYSl9ZnVuY3Rpb24gZHgoZSxhLHIsbil7dmFyIHQ9bjtzd2l0Y2goKHJbMF0ubWF0Y2goL2R0OmR0PSIoW1x3Ll0rKSIvKXx8WyIiLCIiXSlbMV0pe2Nhc2UiYm9vbGVhbiI6dD1TZShuKTticmVhaztjYXNlImkyIjpjYXNlImludCI6dD1wYXJzZUludChuLDEwKTticmVhaztjYXNlInI0IjpjYXNlImZsb2F0Ijp0PXBhcnNlRmxvYXQobik7YnJlYWs7Y2FzZSJkYXRlIjpjYXNlImRhdGVUaW1lLnR6Ijp0PVdlKG4pO2JyZWFrO2Nhc2UiaTgiOmNhc2Uic3RyaW5nIjpjYXNlImZpeGVkIjpjYXNlInV1aWQiOmNhc2UiYmluLmJhc2U2NCI6YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImJhZCBjdXN0cHJvcDoiK3JbMF0pfWVbRWUoYSldPXR9ZnVuY3Rpb24gdngoZSxhLHIpe2lmKGUudCE9PSJ6Iil7aWYoIXJ8fHIuY2VsbFRleHQhPT0hMSl0cnl7ZS50PT09ImUiP2Uudz1lLnd8fGlhW2Uudl06YT09PSJHZW5lcmFsIj9lLnQ9PT0ibiI/KGUudnwwKT09PWUudj9lLnc9ZS52LnRvU3RyaW5nKDEwKTplLnc9RmEoZS52KTplLnc9UXIoZS52KTplLnc9eHgoYXx8IkdlbmVyYWwiLGUudil9Y2F0Y2gocyl7aWYoci5XVEYpdGhyb3cgc310cnl7dmFyIG49S2FbYV18fGF8fCJHZW5lcmFsIjtpZihyLmNlbGxORiYmKGUuej1uKSxyLmNlbGxEYXRlcyYmZS50PT0ibiImJnhhKG4pKXt2YXIgdD1xcihlLnYpO3QmJihlLnQ9ImQiLGUudj1uZXcgRGF0ZSh0LnksdC5tLTEsdC5kLHQuSCx0Lk0sdC5TLHQudSkpfX1jYXRjaChzKXtpZihyLldURil0aHJvdyBzfX19ZnVuY3Rpb24gcHgoZSxhLHIpe2lmKHIuY2VsbFN0eWxlcyYmYS5JbnRlcmlvcil7dmFyIG49YS5JbnRlcmlvcjtuLlBhdHRlcm4mJihuLnBhdHRlcm5UeXBlPWRsW24uUGF0dGVybl18fG4uUGF0dGVybil9ZVthLklEXT1hfWZ1bmN0aW9uIGd4KGUsYSxyLG4sdCxzLGksYyxmLG8pe3ZhciBsPSJHZW5lcmFsIixoPW4uU3R5bGVJRCx4PXt9O289b3x8e307dmFyIGQ9W10sdj0wO2ZvcihoPT09dm9pZCAwJiZjJiYoaD1jLlN0eWxlSUQpLGg9PT12b2lkIDAmJmkmJihoPWkuU3R5bGVJRCk7c1toXSE9PXZvaWQgMCYmKHNbaF0ubmYmJihsPXNbaF0ubmYpLHNbaF0uSW50ZXJpb3ImJmQucHVzaChzW2hdLkludGVyaW9yKSwhIXNbaF0uUGFyZW50KTspaD1zW2hdLlBhcmVudDtzd2l0Y2goci5UeXBlKXtjYXNlIkJvb2xlYW4iOm4udD0iYiIsbi52PVNlKGUpO2JyZWFrO2Nhc2UiU3RyaW5nIjpuLnQ9InMiLG4ucj1jbihFZShlKSksbi52PWUuaW5kZXhPZigiPCIpPi0xP0VlKGF8fGUpLnJlcGxhY2UoLzwuKj8+L2csIiIpOm4ucjticmVhaztjYXNlIkRhdGVUaW1lIjplLnNsaWNlKC0xKSE9IloiJiYoZSs9IloiKSxuLnY9KFdlKGUpLW5ldyBEYXRlKERhdGUuVVRDKDE4OTksMTEsMzApKSkvKDI0KjYwKjYwKjFlMyksbi52IT09bi52P24udj1FZShlKTpuLnY8NjAmJihuLnY9bi52LTEpLCghbHx8bD09IkdlbmVyYWwiKSYmKGw9Inl5eXktbW0tZGQiKTtjYXNlIk51bWJlciI6bi52PT09dm9pZCAwJiYobi52PStlKSxuLnR8fChuLnQ9Im4iKTticmVhaztjYXNlIkVycm9yIjpuLnQ9ImUiLG4udj1VbltlXSxvLmNlbGxUZXh0IT09ITEmJihuLnc9ZSk7YnJlYWs7ZGVmYXVsdDplPT0iIiYmYT09IiI/bi50PSJ6Ijoobi50PSJzIixuLnY9Y24oYXx8ZSkpO2JyZWFrfWlmKHZ4KG4sbCxvKSxvLmNlbGxGb3JtdWxhIT09ITEpaWYobi5Gb3JtdWxhKXt2YXIgdT1FZShuLkZvcm11bGEpO3UuY2hhckNvZGVBdCgwKT09NjEmJih1PXUuc2xpY2UoMSkpLG4uZj1FYSh1LHQpLGRlbGV0ZSBuLkZvcm11bGEsbi5BcnJheVJhbmdlPT0iUkMiP24uRj1FYSgiUkM6UkMiLHQpOm4uQXJyYXlSYW5nZSYmKG4uRj1FYShuLkFycmF5UmFuZ2UsdCksZi5wdXNoKFtPZShuLkYpLG4uRl0pKX1lbHNlIGZvcih2PTA7djxmLmxlbmd0aDsrK3YpdC5yPj1mW3ZdWzBdLnMuciYmdC5yPD1mW3ZdWzBdLmUuciYmdC5jPj1mW3ZdWzBdLnMuYyYmdC5jPD1mW3ZdWzBdLmUuYyYmKG4uRj1mW3ZdWzFdKTtvLmNlbGxTdHlsZXMmJihkLmZvckVhY2goZnVuY3Rpb24oZyl7IXgucGF0dGVyblR5cGUmJmcucGF0dGVyblR5cGUmJih4LnBhdHRlcm5UeXBlPWcucGF0dGVyblR5cGUpfSksbi5zPXgpLG4uU3R5bGVJRCE9PXZvaWQgMCYmKG4uaXhmZT1uLlN0eWxlSUQpfWZ1bmN0aW9uIG14KGUpe2UudD1lLnZ8fCIiLGUudD1lLnQucmVwbGFjZSgvXHJcbi9nLGAKYCkucmVwbGFjZSgvXHIvZyxgCmApLGUudj1lLnc9ZS5peGZlPXZvaWQgMH1mdW5jdGlvbiBzMChlLGEpe3ZhciByPWF8fHt9O0swKCk7dmFyIG49a2EoTXQoZSkpOyhyLnR5cGU9PSJiaW5hcnkifHxyLnR5cGU9PSJhcnJheSJ8fHIudHlwZT09ImJhc2U2NCIpJiYobj1BZShuKSk7dmFyIHQ9bi5zbGljZSgwLDEwMjQpLnRvTG93ZXJDYXNlKCkscz0hMTtpZih0PXQucmVwbGFjZSgvIi4qPyIvZywiIiksKHQuaW5kZXhPZigiPiIpJjEwMjMpPk1hdGgubWluKHQuaW5kZXhPZigiLCIpJjEwMjMsdC5pbmRleE9mKCI7IikmMTAyMykpe3ZhciBpPVhlKHIpO3JldHVybiBpLnR5cGU9InN0cmluZyIsYmEudG9fd29ya2Jvb2sobixpKX1pZih0LmluZGV4T2YoIjw/eG1sIik9PS0xJiZbImh0bWwiLCJ0YWJsZSIsImhlYWQiLCJtZXRhIiwic2NyaXB0Iiwic3R5bGUiLCJkaXYiXS5mb3JFYWNoKGZ1bmN0aW9uKE5lKXt0LmluZGV4T2YoIjwiK05lKT49MCYmKHM9ITApfSkscylyZXR1cm4gQ3gobixyKTtLYT17IkdlbmVyYWwgTnVtYmVyIjoiR2VuZXJhbCIsIkdlbmVyYWwgRGF0ZSI6ZGVbMjJdLCJMb25nIERhdGUiOiJkZGRkLCBtbW1tIGRkLCB5eXl5IiwiTWVkaXVtIERhdGUiOmRlWzE1XSwiU2hvcnQgRGF0ZSI6ZGVbMTRdLCJMb25nIFRpbWUiOmRlWzE5XSwiTWVkaXVtIFRpbWUiOmRlWzE4XSwiU2hvcnQgVGltZSI6ZGVbMjBdLEN1cnJlbmN5OiciJCIjLCMjMC4wMF8pO1tSZWRdXFwoIiQiIywjIzAuMDBcXCknLEZpeGVkOmRlWzJdLFN0YW5kYXJkOmRlWzRdLFBlcmNlbnQ6ZGVbMTBdLFNjaWVudGlmaWM6ZGVbMTFdLCJZZXMvTm8iOiciWWVzIjsiWWVzIjsiTm8iO0AnLCJUcnVlL0ZhbHNlIjonIlRydWUiOyJUcnVlIjsiRmFsc2UiO0AnLCJPbi9PZmYiOiciWWVzIjsiWWVzIjsiTm8iO0AnfTt2YXIgYyxmPVtdLG8sbD17fSxoPVtdLHg9ci5kZW5zZT9bXTp7fSxkPSIiLHY9e30sdT17fSxnPXdyKCc8RGF0YSBzczpUeXBlPSJTdHJpbmciPicpLEY9MCx5PTAsXz0wLE49e3M6e3I6MmU2LGM6MmU2fSxlOntyOjAsYzowfX0sYj17fSxJPXt9LEE9IiIsVj0wLEQ9W10sej17fSxHPXt9LFA9MCxKPVtdLGZlPVtdLHJlPXt9LGNlPVtdLGllLEZlPSExLFc9W10sbGU9W10saGU9e30sUz0wLFU9MCxSPXtTaGVldHM6W10sV0JQcm9wczp7ZGF0ZTE5MDQ6ITF9fSxPPXt9O0RhLmxhc3RJbmRleD0wLG49bi5yZXBsYWNlKC88IS0tKFtcc1xTXSo/KS0tPi9tZywiIik7Zm9yKHZhciBLPSIiO2M9RGEuZXhlYyhuKTspc3dpdGNoKGNbM109KEs9Y1szXSkudG9Mb3dlckNhc2UoKSl7Y2FzZSJkYXRhIjppZihLPT0iZGF0YSIpe2lmKGNbMV09PT0iLyIpe2lmKChvPWYucG9wKCkpWzBdIT09Y1szXSl0aHJvdyBuZXcgRXJyb3IoIkJhZCBzdGF0ZTogIitvLmpvaW4oInwiKSl9ZWxzZSBjWzBdLmNoYXJBdChjWzBdLmxlbmd0aC0yKSE9PSIvIiYmZi5wdXNoKFtjWzNdLCEwXSk7YnJlYWt9aWYoZltmLmxlbmd0aC0xXVsxXSlicmVhaztjWzFdPT09Ii8iP2d4KG4uc2xpY2UoRixjLmluZGV4KSxBLGcsZltmLmxlbmd0aC0xXVswXT09ImNvbW1lbnQiP3JlOnYse2M6eSxyOl99LGIsY2VbeV0sdSxXLHIpOihBPSIiLGc9d3IoY1swXSksRj1jLmluZGV4K2NbMF0ubGVuZ3RoKTticmVhaztjYXNlImNlbGwiOmlmKGNbMV09PT0iLyIpaWYoZmUubGVuZ3RoPjAmJih2LmM9ZmUpLCghci5zaGVldFJvd3N8fHIuc2hlZXRSb3dzPl8pJiZ2LnYhPT12b2lkIDAmJihyLmRlbnNlPyh4W19dfHwoeFtfXT1bXSkseFtfXVt5XT12KTp4W1VlKHkpK3plKF8pXT12KSx2LkhSZWYmJih2Lmw9e1RhcmdldDpFZSh2LkhSZWYpfSx2LkhSZWZTY3JlZW5UaXAmJih2LmwuVG9vbHRpcD12LkhSZWZTY3JlZW5UaXApLGRlbGV0ZSB2LkhSZWYsZGVsZXRlIHYuSFJlZlNjcmVlblRpcCksKHYuTWVyZ2VBY3Jvc3N8fHYuTWVyZ2VEb3duKSYmKFM9eSsocGFyc2VJbnQodi5NZXJnZUFjcm9zcywxMCl8MCksVT1fKyhwYXJzZUludCh2Lk1lcmdlRG93biwxMCl8MCksRC5wdXNoKHtzOntjOnkscjpffSxlOntjOlMscjpVfX0pKSwhci5zaGVldFN0dWJzKXYuTWVyZ2VBY3Jvc3M/eT1TKzE6Kyt5O2Vsc2UgaWYodi5NZXJnZUFjcm9zc3x8di5NZXJnZURvd24pe2Zvcih2YXIgZWU9eTtlZTw9UzsrK2VlKWZvcih2YXIgbmU9XztuZTw9VTsrK25lKShlZT55fHxuZT5fKSYmKHIuZGVuc2U/KHhbbmVdfHwoeFtuZV09W10pLHhbbmVdW2VlXT17dDoieiJ9KTp4W1VlKGVlKSt6ZShuZSldPXt0OiJ6In0pO3k9UysxfWVsc2UrK3k7ZWxzZSB2PXV4KGNbMF0pLHYuSW5kZXgmJih5PSt2LkluZGV4LTEpLHk8Ti5zLmMmJihOLnMuYz15KSx5Pk4uZS5jJiYoTi5lLmM9eSksY1swXS5zbGljZSgtMik9PT0iLz4iJiYrK3ksZmU9W107YnJlYWs7Y2FzZSJyb3ciOmNbMV09PT0iLyJ8fGNbMF0uc2xpY2UoLTIpPT09Ii8+Ij8oXzxOLnMuciYmKE4ucy5yPV8pLF8+Ti5lLnImJihOLmUucj1fKSxjWzBdLnNsaWNlKC0yKT09PSIvPiImJih1PXdyKGNbMF0pLHUuSW5kZXgmJihfPSt1LkluZGV4LTEpKSx5PTAsKytfKToodT13cihjWzBdKSx1LkluZGV4JiYoXz0rdS5JbmRleC0xKSxoZT17fSwodS5BdXRvRml0SGVpZ2h0PT0iMCJ8fHUuSGVpZ2h0KSYmKGhlLmhweD1wYXJzZUludCh1LkhlaWdodCwxMCksaGUuaHB0PW1zKGhlLmhweCksbGVbX109aGUpLHUuSGlkZGVuPT0iMSImJihoZS5oaWRkZW49ITAsbGVbX109aGUpKTticmVhaztjYXNlIndvcmtzaGVldCI6aWYoY1sxXT09PSIvIil7aWYoKG89Zi5wb3AoKSlbMF0hPT1jWzNdKXRocm93IG5ldyBFcnJvcigiQmFkIHN0YXRlOiAiK28uam9pbigifCIpKTtoLnB1c2goZCksTi5zLnI8PU4uZS5yJiZOLnMuYzw9Ti5lLmMmJih4WyIhcmVmIl09X2UoTiksci5zaGVldFJvd3MmJnIuc2hlZXRSb3dzPD1OLmUuciYmKHhbIiFmdWxscmVmIl09eFsiIXJlZiJdLE4uZS5yPXIuc2hlZXRSb3dzLTEseFsiIXJlZiJdPV9lKE4pKSksRC5sZW5ndGgmJih4WyIhbWVyZ2VzIl09RCksY2UubGVuZ3RoPjAmJih4WyIhY29scyJdPWNlKSxsZS5sZW5ndGg+MCYmKHhbIiFyb3dzIl09bGUpLGxbZF09eH1lbHNlIE49e3M6e3I6MmU2LGM6MmU2fSxlOntyOjAsYzowfX0sXz15PTAsZi5wdXNoKFtjWzNdLCExXSksbz13cihjWzBdKSxkPUVlKG8uTmFtZSkseD1yLmRlbnNlP1tdOnt9LEQ9W10sVz1bXSxsZT1bXSxPPXtuYW1lOmQsSGlkZGVuOjB9LFIuU2hlZXRzLnB1c2goTyk7YnJlYWs7Y2FzZSJ0YWJsZSI6aWYoY1sxXT09PSIvIil7aWYoKG89Zi5wb3AoKSlbMF0hPT1jWzNdKXRocm93IG5ldyBFcnJvcigiQmFkIHN0YXRlOiAiK28uam9pbigifCIpKX1lbHNle2lmKGNbMF0uc2xpY2UoLTIpPT0iLz4iKWJyZWFrO2YucHVzaChbY1szXSwhMV0pLGNlPVtdLEZlPSExfWJyZWFrO2Nhc2Uic3R5bGUiOmNbMV09PT0iLyI/cHgoYixJLHIpOkk9d3IoY1swXSk7YnJlYWs7Y2FzZSJudW1iZXJmb3JtYXQiOkkubmY9RWUod3IoY1swXSkuRm9ybWF0fHwiR2VuZXJhbCIpLEthW0kubmZdJiYoSS5uZj1LYVtJLm5mXSk7Zm9yKHZhciBxPTA7cSE9MzkyJiZkZVtxXSE9SS5uZjsrK3EpO2lmKHE9PTM5Mil7Zm9yKHE9NTc7cSE9MzkyOysrcSlpZihkZVtxXT09bnVsbCl7ZWEoSS5uZixxKTticmVha319YnJlYWs7Y2FzZSJjb2x1bW4iOmlmKGZbZi5sZW5ndGgtMV1bMF0hPT0idGFibGUiKWJyZWFrO2lmKGllPXdyKGNbMF0pLGllLkhpZGRlbiYmKGllLmhpZGRlbj0hMCxkZWxldGUgaWUuSGlkZGVuKSxpZS5XaWR0aCYmKGllLndweD1wYXJzZUludChpZS5XaWR0aCwxMCkpLCFGZSYmaWUud3B4PjEwKXtGZT0hMCxzcj1wcztmb3IodmFyIGo9MDtqPGNlLmxlbmd0aDsrK2opY2Vbal0mJl9hKGNlW2pdKX1GZSYmX2EoaWUpLGNlW2llLkluZGV4LTF8fGNlLmxlbmd0aF09aWU7Zm9yKHZhciBUZT0wO1RlPCtpZS5TcGFuOysrVGUpY2VbY2UubGVuZ3RoXT1YZShpZSk7YnJlYWs7Y2FzZSJuYW1lZHJhbmdlIjppZihjWzFdPT09Ii8iKWJyZWFrO1IuTmFtZXN8fChSLk5hbWVzPVtdKTt2YXIgQz1vZShjWzBdKSxJZT17TmFtZTpDLk5hbWUsUmVmOkVhKEMuUmVmZXJzVG8uc2xpY2UoMSkse3I6MCxjOjB9KX07Ui5TaGVldHMubGVuZ3RoPjAmJihJZS5TaGVldD1SLlNoZWV0cy5sZW5ndGgtMSksUi5OYW1lcy5wdXNoKEllKTticmVhaztjYXNlIm5hbWVkY2VsbCI6YnJlYWs7Y2FzZSJiIjpicmVhaztjYXNlImkiOmJyZWFrO2Nhc2UidSI6YnJlYWs7Y2FzZSJzIjpicmVhaztjYXNlImVtIjpicmVhaztjYXNlImgyIjpicmVhaztjYXNlImgzIjpicmVhaztjYXNlInN1YiI6YnJlYWs7Y2FzZSJzdXAiOmJyZWFrO2Nhc2Uic3BhbiI6YnJlYWs7Y2FzZSJhbGlnbm1lbnQiOmJyZWFrO2Nhc2UiYm9yZGVycyI6YnJlYWs7Y2FzZSJib3JkZXIiOmJyZWFrO2Nhc2UiZm9udCI6aWYoY1swXS5zbGljZSgtMik9PT0iLz4iKWJyZWFrO2NbMV09PT0iLyI/QSs9bi5zbGljZShWLGMuaW5kZXgpOlY9Yy5pbmRleCtjWzBdLmxlbmd0aDticmVhaztjYXNlImludGVyaW9yIjppZighci5jZWxsU3R5bGVzKWJyZWFrO0kuSW50ZXJpb3I9d3IoY1swXSk7YnJlYWs7Y2FzZSJwcm90ZWN0aW9uIjpicmVhaztjYXNlImF1dGhvciI6Y2FzZSJ0aXRsZSI6Y2FzZSJkZXNjcmlwdGlvbiI6Y2FzZSJjcmVhdGVkIjpjYXNlImtleXdvcmRzIjpjYXNlInN1YmplY3QiOmNhc2UiY2F0ZWdvcnkiOmNhc2UiY29tcGFueSI6Y2FzZSJsYXN0YXV0aG9yIjpjYXNlImxhc3RzYXZlZCI6Y2FzZSJsYXN0cHJpbnRlZCI6Y2FzZSJ2ZXJzaW9uIjpjYXNlInJldmlzaW9uIjpjYXNlInRvdGFsdGltZSI6Y2FzZSJoeXBlcmxpbmtiYXNlIjpjYXNlIm1hbmFnZXIiOmNhc2UiY29udGVudHN0YXR1cyI6Y2FzZSJpZGVudGlmaWVyIjpjYXNlImxhbmd1YWdlIjpjYXNlImFwcG5hbWUiOmlmKGNbMF0uc2xpY2UoLTIpPT09Ii8+IilicmVhaztjWzFdPT09Ii8iP1FjKHosSyxuLnNsaWNlKFAsYy5pbmRleCkpOlA9Yy5pbmRleCtjWzBdLmxlbmd0aDticmVhaztjYXNlInBhcmFncmFwaHMiOmJyZWFrO2Nhc2Uic3R5bGVzIjpjYXNlIndvcmtib29rIjppZihjWzFdPT09Ii8iKXtpZigobz1mLnBvcCgpKVswXSE9PWNbM10pdGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrby5qb2luKCJ8IikpfWVsc2UgZi5wdXNoKFtjWzNdLCExXSk7YnJlYWs7Y2FzZSJjb21tZW50IjppZihjWzFdPT09Ii8iKXtpZigobz1mLnBvcCgpKVswXSE9PWNbM10pdGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrby5qb2luKCJ8IikpO214KHJlKSxmZS5wdXNoKHJlKX1lbHNlIGYucHVzaChbY1szXSwhMV0pLG89d3IoY1swXSkscmU9e2E6by5BdXRob3J9O2JyZWFrO2Nhc2UiYXV0b2ZpbHRlciI6aWYoY1sxXT09PSIvIil7aWYoKG89Zi5wb3AoKSlbMF0hPT1jWzNdKXRocm93IG5ldyBFcnJvcigiQmFkIHN0YXRlOiAiK28uam9pbigifCIpKX1lbHNlIGlmKGNbMF0uY2hhckF0KGNbMF0ubGVuZ3RoLTIpIT09Ii8iKXt2YXIga2U9d3IoY1swXSk7eFsiIWF1dG9maWx0ZXIiXT17cmVmOkVhKGtlLlJhbmdlKS5yZXBsYWNlKC9cJC9nLCIiKX0sZi5wdXNoKFtjWzNdLCEwXSl9YnJlYWs7Y2FzZSJuYW1lIjpicmVhaztjYXNlImRhdGF2YWxpZGF0aW9uIjppZihjWzFdPT09Ii8iKXtpZigobz1mLnBvcCgpKVswXSE9PWNbM10pdGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrby5qb2luKCJ8IikpfWVsc2UgY1swXS5jaGFyQXQoY1swXS5sZW5ndGgtMikhPT0iLyImJmYucHVzaChbY1szXSwhMF0pO2JyZWFrO2Nhc2UicGl4ZWxzcGVyaW5jaCI6YnJlYWs7Y2FzZSJjb21wb25lbnRvcHRpb25zIjpjYXNlImRvY3VtZW50cHJvcGVydGllcyI6Y2FzZSJjdXN0b21kb2N1bWVudHByb3BlcnRpZXMiOmNhc2Uib2ZmaWNlZG9jdW1lbnRzZXR0aW5ncyI6Y2FzZSJwaXZvdHRhYmxlIjpjYXNlInBpdm90Y2FjaGUiOmNhc2UibmFtZXMiOmNhc2UibWFwaW5mbyI6Y2FzZSJwYWdlYnJlYWtzIjpjYXNlInF1ZXJ5dGFibGUiOmNhc2Uic29ydGluZyI6Y2FzZSJzY2hlbWEiOmNhc2UiY29uZGl0aW9uYWxmb3JtYXR0aW5nIjpjYXNlInNtYXJ0dGFndHlwZSI6Y2FzZSJzbWFydHRhZ3MiOmNhc2UiZXhjZWx3b3JrYm9vayI6Y2FzZSJ3b3JrYm9va29wdGlvbnMiOmNhc2Uid29ya3NoZWV0b3B0aW9ucyI6aWYoY1sxXT09PSIvIil7aWYoKG89Zi5wb3AoKSlbMF0hPT1jWzNdKXRocm93IG5ldyBFcnJvcigiQmFkIHN0YXRlOiAiK28uam9pbigifCIpKX1lbHNlIGNbMF0uY2hhckF0KGNbMF0ubGVuZ3RoLTIpIT09Ii8iJiZmLnB1c2goW2NbM10sITBdKTticmVhaztjYXNlIm51bGwiOmJyZWFrO2RlZmF1bHQ6aWYoZi5sZW5ndGg9PTAmJmNbM109PSJkb2N1bWVudCJ8fGYubGVuZ3RoPT0wJiZjWzNdPT0idW9mIilyZXR1cm4gUXMobixyKTt2YXIgd2U9ITA7c3dpdGNoKGZbZi5sZW5ndGgtMV1bMF0pe2Nhc2Uib2ZmaWNlZG9jdW1lbnRzZXR0aW5ncyI6c3dpdGNoKGNbM10pe2Nhc2UiYWxsb3dwbmciOmJyZWFrO2Nhc2UicmVtb3ZlcGVyc29uYWxpbmZvcm1hdGlvbiI6YnJlYWs7Y2FzZSJkb3dubG9hZGNvbXBvbmVudHMiOmJyZWFrO2Nhc2UibG9jYXRpb25vZmNvbXBvbmVudHMiOmJyZWFrO2Nhc2UiY29sb3JzIjpicmVhaztjYXNlImNvbG9yIjpicmVhaztjYXNlImluZGV4IjpicmVhaztjYXNlInJnYiI6YnJlYWs7Y2FzZSJ0YXJnZXRzY3JlZW5zaXplIjpicmVhaztjYXNlInJlYWRvbmx5cmVjb21tZW5kZWQiOmJyZWFrO2RlZmF1bHQ6d2U9ITF9YnJlYWs7Y2FzZSJjb21wb25lbnRvcHRpb25zIjpzd2l0Y2goY1szXSl7Y2FzZSJ0b29sYmFyIjpicmVhaztjYXNlImhpZGVvZmZpY2Vsb2dvIjpicmVhaztjYXNlInNwcmVhZHNoZWV0YXV0b2ZpdCI6YnJlYWs7Y2FzZSJsYWJlbCI6YnJlYWs7Y2FzZSJjYXB0aW9uIjpicmVhaztjYXNlIm1heGhlaWdodCI6YnJlYWs7Y2FzZSJtYXh3aWR0aCI6YnJlYWs7Y2FzZSJuZXh0c2hlZXRudW1iZXIiOmJyZWFrO2RlZmF1bHQ6d2U9ITF9YnJlYWs7Y2FzZSJleGNlbHdvcmtib29rIjpzd2l0Y2goY1szXSl7Y2FzZSJkYXRlMTkwNCI6Ui5XQlByb3BzLmRhdGUxOTA0PSEwO2JyZWFrO2Nhc2Uid2luZG93aGVpZ2h0IjpicmVhaztjYXNlIndpbmRvd3dpZHRoIjpicmVhaztjYXNlIndpbmRvd3RvcHgiOmJyZWFrO2Nhc2Uid2luZG93dG9weSI6YnJlYWs7Y2FzZSJ0YWJyYXRpbyI6YnJlYWs7Y2FzZSJwcm90ZWN0c3RydWN0dXJlIjpicmVhaztjYXNlInByb3RlY3R3aW5kb3ciOmJyZWFrO2Nhc2UicHJvdGVjdHdpbmRvd3MiOmJyZWFrO2Nhc2UiYWN0aXZlc2hlZXQiOmJyZWFrO2Nhc2UiZGlzcGxheWlua25vdGVzIjpicmVhaztjYXNlImZpcnN0dmlzaWJsZXNoZWV0IjpicmVhaztjYXNlInN1cGJvb2siOmJyZWFrO2Nhc2Uic2hlZXRuYW1lIjpicmVhaztjYXNlInNoZWV0aW5kZXgiOmJyZWFrO2Nhc2Uic2hlZXRpbmRleGZpcnN0IjpicmVhaztjYXNlInNoZWV0aW5kZXhsYXN0IjpicmVhaztjYXNlImRsbCI6YnJlYWs7Y2FzZSJhY2NlcHRsYWJlbHNpbmZvcm11bGFzIjpicmVhaztjYXNlImRvbm90c2F2ZWxpbmt2YWx1ZXMiOmJyZWFrO2Nhc2UiaXRlcmF0aW9uIjpicmVhaztjYXNlIm1heGl0ZXJhdGlvbnMiOmJyZWFrO2Nhc2UibWF4Y2hhbmdlIjpicmVhaztjYXNlInBhdGgiOmJyZWFrO2Nhc2UieGN0IjpicmVhaztjYXNlImNvdW50IjpicmVhaztjYXNlInNlbGVjdGVkc2hlZXRzIjpicmVhaztjYXNlImNhbGN1bGF0aW9uIjpicmVhaztjYXNlInVuY2FsY2VkIjpicmVhaztjYXNlInN0YXJ0dXBwcm9tcHQiOmJyZWFrO2Nhc2UiY3JuIjpicmVhaztjYXNlImV4dGVybm5hbWUiOmJyZWFrO2Nhc2UiZm9ybXVsYSI6YnJlYWs7Y2FzZSJjb2xmaXJzdCI6YnJlYWs7Y2FzZSJjb2xsYXN0IjpicmVhaztjYXNlIndhbnRhZHZpc2UiOmJyZWFrO2Nhc2UiYm9vbGVhbiI6YnJlYWs7Y2FzZSJlcnJvciI6YnJlYWs7Y2FzZSJ0ZXh0IjpicmVhaztjYXNlIm9sZSI6YnJlYWs7Y2FzZSJub2F1dG9yZWNvdmVyIjpicmVhaztjYXNlInB1Ymxpc2hvYmplY3RzIjpicmVhaztjYXNlImRvbm90Y2FsY3VsYXRlYmVmb3Jlc2F2ZSI6YnJlYWs7Y2FzZSJudW1iZXIiOmJyZWFrO2Nhc2UicmVmbW9kZXIxYzEiOmJyZWFrO2Nhc2UiZW1iZWRzYXZlc21hcnR0YWdzIjpicmVhaztkZWZhdWx0OndlPSExfWJyZWFrO2Nhc2Uid29ya2Jvb2tvcHRpb25zIjpzd2l0Y2goY1szXSl7Y2FzZSJvd2N2ZXJzaW9uIjpicmVhaztjYXNlImhlaWdodCI6YnJlYWs7Y2FzZSJ3aWR0aCI6YnJlYWs7ZGVmYXVsdDp3ZT0hMX1icmVhaztjYXNlIndvcmtzaGVldG9wdGlvbnMiOnN3aXRjaChjWzNdKXtjYXNlInZpc2libGUiOmlmKGNbMF0uc2xpY2UoLTIpIT09Ii8+IilpZihjWzFdPT09Ii8iKXN3aXRjaChuLnNsaWNlKFAsYy5pbmRleCkpe2Nhc2UiU2hlZXRIaWRkZW4iOk8uSGlkZGVuPTE7YnJlYWs7Y2FzZSJTaGVldFZlcnlIaWRkZW4iOk8uSGlkZGVuPTI7YnJlYWt9ZWxzZSBQPWMuaW5kZXgrY1swXS5sZW5ndGg7YnJlYWs7Y2FzZSJoZWFkZXIiOnhbIiFtYXJnaW5zIl18fHphKHhbIiFtYXJnaW5zIl09e30sInhsbWwiKSxpc05hTigrb2UoY1swXSkuTWFyZ2luKXx8KHhbIiFtYXJnaW5zIl0uaGVhZGVyPStvZShjWzBdKS5NYXJnaW4pO2JyZWFrO2Nhc2UiZm9vdGVyIjp4WyIhbWFyZ2lucyJdfHx6YSh4WyIhbWFyZ2lucyJdPXt9LCJ4bG1sIiksaXNOYU4oK29lKGNbMF0pLk1hcmdpbil8fCh4WyIhbWFyZ2lucyJdLmZvb3Rlcj0rb2UoY1swXSkuTWFyZ2luKTticmVhaztjYXNlInBhZ2VtYXJnaW5zIjp2YXIgcGU9b2UoY1swXSk7eFsiIW1hcmdpbnMiXXx8emEoeFsiIW1hcmdpbnMiXT17fSwieGxtbCIpLGlzTmFOKCtwZS5Ub3ApfHwoeFsiIW1hcmdpbnMiXS50b3A9K3BlLlRvcCksaXNOYU4oK3BlLkxlZnQpfHwoeFsiIW1hcmdpbnMiXS5sZWZ0PStwZS5MZWZ0KSxpc05hTigrcGUuUmlnaHQpfHwoeFsiIW1hcmdpbnMiXS5yaWdodD0rcGUuUmlnaHQpLGlzTmFOKCtwZS5Cb3R0b20pfHwoeFsiIW1hcmdpbnMiXS5ib3R0b209K3BlLkJvdHRvbSk7YnJlYWs7Y2FzZSJkaXNwbGF5cmlnaHR0b2xlZnQiOlIuVmlld3N8fChSLlZpZXdzPVtdKSxSLlZpZXdzWzBdfHwoUi5WaWV3c1swXT17fSksUi5WaWV3c1swXS5SVEw9ITA7YnJlYWs7Y2FzZSJmcmVlemVwYW5lcyI6YnJlYWs7Y2FzZSJmcm96ZW5ub3NwbGl0IjpicmVhaztjYXNlInNwbGl0aG9yaXpvbnRhbCI6Y2FzZSJzcGxpdHZlcnRpY2FsIjpicmVhaztjYXNlImRvbm90ZGlzcGxheWdyaWRsaW5lcyI6YnJlYWs7Y2FzZSJhY3RpdmVyb3ciOmJyZWFrO2Nhc2UiYWN0aXZlY29sIjpicmVhaztjYXNlInRvcHJvd2JvdHRvbXBhbmUiOmJyZWFrO2Nhc2UibGVmdGNvbHVtbnJpZ2h0cGFuZSI6YnJlYWs7Y2FzZSJ1bnN5bmNlZCI6YnJlYWs7Y2FzZSJwcmludCI6YnJlYWs7Y2FzZSJwcmludGVycm9ycyI6YnJlYWs7Y2FzZSJwYW5lcyI6YnJlYWs7Y2FzZSJzY2FsZSI6YnJlYWs7Y2FzZSJwYW5lIjpicmVhaztjYXNlIm51bWJlciI6YnJlYWs7Y2FzZSJsYXlvdXQiOmJyZWFrO2Nhc2UicGFnZXNldHVwIjpicmVhaztjYXNlInNlbGVjdGVkIjpicmVhaztjYXNlInByb3RlY3RvYmplY3RzIjpicmVhaztjYXNlImVuYWJsZXNlbGVjdGlvbiI6YnJlYWs7Y2FzZSJwcm90ZWN0c2NlbmFyaW9zIjpicmVhaztjYXNlInZhbGlkcHJpbnRlcmluZm8iOmJyZWFrO2Nhc2UiaG9yaXpvbnRhbHJlc29sdXRpb24iOmJyZWFrO2Nhc2UidmVydGljYWxyZXNvbHV0aW9uIjpicmVhaztjYXNlIm51bWJlcm9mY29waWVzIjpicmVhaztjYXNlImFjdGl2ZXBhbmUiOmJyZWFrO2Nhc2UidG9wcm93dmlzaWJsZSI6YnJlYWs7Y2FzZSJsZWZ0Y29sdW1udmlzaWJsZSI6YnJlYWs7Y2FzZSJmaXR0b3BhZ2UiOmJyZWFrO2Nhc2UicmFuZ2VzZWxlY3Rpb24iOmJyZWFrO2Nhc2UicGFwZXJzaXplaW5kZXgiOmJyZWFrO2Nhc2UicGFnZWxheW91dHpvb20iOmJyZWFrO2Nhc2UicGFnZWJyZWFrem9vbSI6YnJlYWs7Y2FzZSJmaWx0ZXJvbiI6YnJlYWs7Y2FzZSJmaXR3aWR0aCI6YnJlYWs7Y2FzZSJmaXRoZWlnaHQiOmJyZWFrO2Nhc2UiY29tbWVudHNsYXlvdXQiOmJyZWFrO2Nhc2Uiem9vbSI6YnJlYWs7Y2FzZSJsZWZ0dG9yaWdodCI6YnJlYWs7Y2FzZSJncmlkbGluZXMiOmJyZWFrO2Nhc2UiYWxsb3dzb3J0IjpicmVhaztjYXNlImFsbG93ZmlsdGVyIjpicmVhaztjYXNlImFsbG93aW5zZXJ0cm93cyI6YnJlYWs7Y2FzZSJhbGxvd2RlbGV0ZXJvd3MiOmJyZWFrO2Nhc2UiYWxsb3dpbnNlcnRjb2xzIjpicmVhaztjYXNlImFsbG93ZGVsZXRlY29scyI6YnJlYWs7Y2FzZSJhbGxvd2luc2VydGh5cGVybGlua3MiOmJyZWFrO2Nhc2UiYWxsb3dmb3JtYXRjZWxscyI6YnJlYWs7Y2FzZSJhbGxvd3NpemVjb2xzIjpicmVhaztjYXNlImFsbG93c2l6ZXJvd3MiOmJyZWFrO2Nhc2Uibm9zdW1tYXJ5cm93c2JlbG93ZGV0YWlsIjp4WyIhb3V0bGluZSJdfHwoeFsiIW91dGxpbmUiXT17fSkseFsiIW91dGxpbmUiXS5hYm92ZT0hMDticmVhaztjYXNlInRhYmNvbG9yaW5kZXgiOmJyZWFrO2Nhc2UiZG9ub3RkaXNwbGF5aGVhZGluZ3MiOmJyZWFrO2Nhc2Uic2hvd3BhZ2VsYXlvdXR6b29tIjpicmVhaztjYXNlIm5vc3VtbWFyeWNvbHVtbnNyaWdodGRldGFpbCI6eFsiIW91dGxpbmUiXXx8KHhbIiFvdXRsaW5lIl09e30pLHhbIiFvdXRsaW5lIl0ubGVmdD0hMDticmVhaztjYXNlImJsYWNrYW5kd2hpdGUiOmJyZWFrO2Nhc2UiZG9ub3RkaXNwbGF5emVyb3MiOmJyZWFrO2Nhc2UiZGlzcGxheXBhZ2VicmVhayI6YnJlYWs7Y2FzZSJyb3djb2xoZWFkaW5ncyI6YnJlYWs7Y2FzZSJkb25vdGRpc3BsYXlvdXRsaW5lIjpicmVhaztjYXNlIm5vb3JpZW50YXRpb24iOmJyZWFrO2Nhc2UiYWxsb3d1c2VwaXZvdHRhYmxlcyI6YnJlYWs7Y2FzZSJ6ZXJvaGVpZ2h0IjpicmVhaztjYXNlInZpZXdhYmxlcmFuZ2UiOmJyZWFrO2Nhc2Uic2VsZWN0aW9uIjpicmVhaztjYXNlInByb3RlY3Rjb250ZW50cyI6YnJlYWs7ZGVmYXVsdDp3ZT0hMX1icmVhaztjYXNlInBpdm90dGFibGUiOmNhc2UicGl2b3RjYWNoZSI6c3dpdGNoKGNbM10pe2Nhc2UiaW1tZWRpYXRlaXRlbXNvbmRyb3AiOmJyZWFrO2Nhc2Uic2hvd3BhZ2VtdWx0aXBsZWl0ZW1sYWJlbCI6YnJlYWs7Y2FzZSJjb21wYWN0cm93aW5kZW50IjpicmVhaztjYXNlImxvY2F0aW9uIjpicmVhaztjYXNlInBpdm90ZmllbGQiOmJyZWFrO2Nhc2Uib3JpZW50YXRpb24iOmJyZWFrO2Nhc2UibGF5b3V0Zm9ybSI6YnJlYWs7Y2FzZSJsYXlvdXRzdWJ0b3RhbGxvY2F0aW9uIjpicmVhaztjYXNlImxheW91dGNvbXBhY3Ryb3ciOmJyZWFrO2Nhc2UicG9zaXRpb24iOmJyZWFrO2Nhc2UicGl2b3RpdGVtIjpicmVhaztjYXNlImRhdGF0eXBlIjpicmVhaztjYXNlImRhdGFmaWVsZCI6YnJlYWs7Y2FzZSJzb3VyY2VuYW1lIjpicmVhaztjYXNlInBhcmVudGZpZWxkIjpicmVhaztjYXNlInB0bGluZWl0ZW1zIjpicmVhaztjYXNlInB0bGluZWl0ZW0iOmJyZWFrO2Nhc2UiY291bnRvZnNhbWVpdGVtcyI6YnJlYWs7Y2FzZSJpdGVtIjpicmVhaztjYXNlIml0ZW10eXBlIjpicmVhaztjYXNlInB0c291cmNlIjpicmVhaztjYXNlImNhY2hlaW5kZXgiOmJyZWFrO2Nhc2UiY29uc29saWRhdGlvbnJlZmVyZW5jZSI6YnJlYWs7Y2FzZSJmaWxlbmFtZSI6YnJlYWs7Y2FzZSJyZWZlcmVuY2UiOmJyZWFrO2Nhc2Uibm9jb2x1bW5ncmFuZCI6YnJlYWs7Y2FzZSJub3Jvd2dyYW5kIjpicmVhaztjYXNlImJsYW5rbGluZWFmdGVyaXRlbXMiOmJyZWFrO2Nhc2UiaGlkZGVuIjpicmVhaztjYXNlInN1YnRvdGFsIjpicmVhaztjYXNlImJhc2VmaWVsZCI6YnJlYWs7Y2FzZSJtYXBjaGlsZGl0ZW1zIjpicmVhaztjYXNlImZ1bmN0aW9uIjpicmVhaztjYXNlInJlZnJlc2hvbmZpbGVvcGVuIjpicmVhaztjYXNlInByaW50c2V0dGl0bGVzIjpicmVhaztjYXNlIm1lcmdlbGFiZWxzIjpicmVhaztjYXNlImRlZmF1bHR2ZXJzaW9uIjpicmVhaztjYXNlInJlZnJlc2huYW1lIjpicmVhaztjYXNlInJlZnJlc2hkYXRlIjpicmVhaztjYXNlInJlZnJlc2hkYXRlY29weSI6YnJlYWs7Y2FzZSJ2ZXJzaW9ubGFzdHJlZnJlc2giOmJyZWFrO2Nhc2UidmVyc2lvbmxhc3R1cGRhdGUiOmJyZWFrO2Nhc2UidmVyc2lvbnVwZGF0ZWFibGVtaW4iOmJyZWFrO2Nhc2UidmVyc2lvbnJlZnJlc2hhYmxlbWluIjpicmVhaztjYXNlImNhbGN1bGF0aW9uIjpicmVhaztkZWZhdWx0OndlPSExfWJyZWFrO2Nhc2UicGFnZWJyZWFrcyI6c3dpdGNoKGNbM10pe2Nhc2UiY29sYnJlYWtzIjpicmVhaztjYXNlImNvbGJyZWFrIjpicmVhaztjYXNlInJvd2JyZWFrcyI6YnJlYWs7Y2FzZSJyb3dicmVhayI6YnJlYWs7Y2FzZSJjb2xzdGFydCI6YnJlYWs7Y2FzZSJjb2xlbmQiOmJyZWFrO2Nhc2Uicm93ZW5kIjpicmVhaztkZWZhdWx0OndlPSExfWJyZWFrO2Nhc2UiYXV0b2ZpbHRlciI6c3dpdGNoKGNbM10pe2Nhc2UiYXV0b2ZpbHRlcmNvbHVtbiI6YnJlYWs7Y2FzZSJhdXRvZmlsdGVyY29uZGl0aW9uIjpicmVhaztjYXNlImF1dG9maWx0ZXJhbmQiOmJyZWFrO2Nhc2UiYXV0b2ZpbHRlcm9yIjpicmVhaztkZWZhdWx0OndlPSExfWJyZWFrO2Nhc2UicXVlcnl0YWJsZSI6c3dpdGNoKGNbM10pe2Nhc2UiaWQiOmJyZWFrO2Nhc2UiYXV0b2Zvcm1hdGZvbnQiOmJyZWFrO2Nhc2UiYXV0b2Zvcm1hdHBhdHRlcm4iOmJyZWFrO2Nhc2UicXVlcnlzb3VyY2UiOmJyZWFrO2Nhc2UicXVlcnl0eXBlIjpicmVhaztjYXNlImVuYWJsZXJlZGlyZWN0aW9ucyI6YnJlYWs7Y2FzZSJyZWZyZXNoZWRpbnhsOSI6YnJlYWs7Y2FzZSJ1cmxzdHJpbmciOmJyZWFrO2Nhc2UiaHRtbHRhYmxlcyI6YnJlYWs7Y2FzZSJjb25uZWN0aW9uIjpicmVhaztjYXNlImNvbW1hbmR0ZXh0IjpicmVhaztjYXNlInJlZnJlc2hpbmZvIjpicmVhaztjYXNlIm5vdGl0bGVzIjpicmVhaztjYXNlIm5leHRpZCI6YnJlYWs7Y2FzZSJjb2x1bW5pbmZvIjpicmVhaztjYXNlIm92ZXJ3cml0ZWNlbGxzIjpicmVhaztjYXNlImRvbm90cHJvbXB0Zm9yZmlsZSI6YnJlYWs7Y2FzZSJ0ZXh0d2l6YXJkc2V0dGluZ3MiOmJyZWFrO2Nhc2Uic291cmNlIjpicmVhaztjYXNlIm51bWJlciI6YnJlYWs7Y2FzZSJkZWNpbWFsIjpicmVhaztjYXNlInRob3VzYW5kc2VwYXJhdG9yIjpicmVhaztjYXNlInRyYWlsaW5nbWludXNudW1iZXJzIjpicmVhaztjYXNlImZvcm1hdHNldHRpbmdzIjpicmVhaztjYXNlImZpZWxkdHlwZSI6YnJlYWs7Y2FzZSJkZWxpbWl0ZXJzIjpicmVhaztjYXNlInRhYiI6YnJlYWs7Y2FzZSJjb21tYSI6YnJlYWs7Y2FzZSJhdXRvZm9ybWF0bmFtZSI6YnJlYWs7Y2FzZSJ2ZXJzaW9ubGFzdGVkaXQiOmJyZWFrO2Nhc2UidmVyc2lvbmxhc3RyZWZyZXNoIjpicmVhaztkZWZhdWx0OndlPSExfWJyZWFrO2Nhc2UiZGF0YXZhbGlkYXRpb24iOnN3aXRjaChjWzNdKXtjYXNlInJhbmdlIjpicmVhaztjYXNlInR5cGUiOmJyZWFrO2Nhc2UibWluIjpicmVhaztjYXNlIm1heCI6YnJlYWs7Y2FzZSJzb3J0IjpicmVhaztjYXNlImRlc2NlbmRpbmciOmJyZWFrO2Nhc2Uib3JkZXIiOmJyZWFrO2Nhc2UiY2FzZXNlbnNpdGl2ZSI6YnJlYWs7Y2FzZSJ2YWx1ZSI6YnJlYWs7Y2FzZSJlcnJvcnN0eWxlIjpicmVhaztjYXNlImVycm9ybWVzc2FnZSI6YnJlYWs7Y2FzZSJlcnJvcnRpdGxlIjpicmVhaztjYXNlImlucHV0bWVzc2FnZSI6YnJlYWs7Y2FzZSJpbnB1dHRpdGxlIjpicmVhaztjYXNlImNvbWJvaGlkZSI6YnJlYWs7Y2FzZSJpbnB1dGhpZGUiOmJyZWFrO2Nhc2UiY29uZGl0aW9uIjpicmVhaztjYXNlInF1YWxpZmllciI6YnJlYWs7Y2FzZSJ1c2VibGFuayI6YnJlYWs7Y2FzZSJ2YWx1ZTEiOmJyZWFrO2Nhc2UidmFsdWUyIjpicmVhaztjYXNlImZvcm1hdCI6YnJlYWs7Y2FzZSJjZWxscmFuZ2VsaXN0IjpicmVhaztkZWZhdWx0OndlPSExfWJyZWFrO2Nhc2Uic29ydGluZyI6Y2FzZSJjb25kaXRpb25hbGZvcm1hdHRpbmciOnN3aXRjaChjWzNdKXtjYXNlInJhbmdlIjpicmVhaztjYXNlInR5cGUiOmJyZWFrO2Nhc2UibWluIjpicmVhaztjYXNlIm1heCI6YnJlYWs7Y2FzZSJzb3J0IjpicmVhaztjYXNlImRlc2NlbmRpbmciOmJyZWFrO2Nhc2Uib3JkZXIiOmJyZWFrO2Nhc2UiY2FzZXNlbnNpdGl2ZSI6YnJlYWs7Y2FzZSJ2YWx1ZSI6YnJlYWs7Y2FzZSJlcnJvcnN0eWxlIjpicmVhaztjYXNlImVycm9ybWVzc2FnZSI6YnJlYWs7Y2FzZSJlcnJvcnRpdGxlIjpicmVhaztjYXNlImNlbGxyYW5nZWxpc3QiOmJyZWFrO2Nhc2UiaW5wdXRtZXNzYWdlIjpicmVhaztjYXNlImlucHV0dGl0bGUiOmJyZWFrO2Nhc2UiY29tYm9oaWRlIjpicmVhaztjYXNlImlucHV0aGlkZSI6YnJlYWs7Y2FzZSJjb25kaXRpb24iOmJyZWFrO2Nhc2UicXVhbGlmaWVyIjpicmVhaztjYXNlInVzZWJsYW5rIjpicmVhaztjYXNlInZhbHVlMSI6YnJlYWs7Y2FzZSJ2YWx1ZTIiOmJyZWFrO2Nhc2UiZm9ybWF0IjpicmVhaztkZWZhdWx0OndlPSExfWJyZWFrO2Nhc2UibWFwaW5mbyI6Y2FzZSJzY2hlbWEiOmNhc2UiZGF0YSI6c3dpdGNoKGNbM10pe2Nhc2UibWFwIjpicmVhaztjYXNlImVudHJ5IjpicmVhaztjYXNlInJhbmdlIjpicmVhaztjYXNlInhwYXRoIjpicmVhaztjYXNlImZpZWxkIjpicmVhaztjYXNlInhzZHR5cGUiOmJyZWFrO2Nhc2UiZmlsdGVyb24iOmJyZWFrO2Nhc2UiYWdncmVnYXRlIjpicmVhaztjYXNlImVsZW1lbnR0eXBlIjpicmVhaztjYXNlImF0dHJpYnV0ZXR5cGUiOmJyZWFrO2Nhc2Uic2NoZW1hIjpjYXNlImVsZW1lbnQiOmNhc2UiY29tcGxleHR5cGUiOmNhc2UiZGF0YXR5cGUiOmNhc2UiYWxsIjpjYXNlImF0dHJpYnV0ZSI6Y2FzZSJleHRlbmRzIjpicmVhaztjYXNlInJvdyI6YnJlYWs7ZGVmYXVsdDp3ZT0hMX1icmVhaztjYXNlInNtYXJ0dGFncyI6YnJlYWs7ZGVmYXVsdDp3ZT0hMTticmVha31pZih3ZXx8Y1szXS5tYXRjaCgvIVxbQ0RBVEEvKSlicmVhaztpZighZltmLmxlbmd0aC0xXVsxXSl0aHJvdyJVbnJlY29nbml6ZWQgdGFnOiAiK2NbM10rInwiK2Yuam9pbigifCIpO2lmKGZbZi5sZW5ndGgtMV1bMF09PT0iY3VzdG9tZG9jdW1lbnRwcm9wZXJ0aWVzIil7aWYoY1swXS5zbGljZSgtMik9PT0iLz4iKWJyZWFrO2NbMV09PT0iLyI/ZHgoRyxLLEosbi5zbGljZShQLGMuaW5kZXgpKTooSj1jLFA9Yy5pbmRleCtjWzBdLmxlbmd0aCk7YnJlYWt9aWYoci5XVEYpdGhyb3ciVW5yZWNvZ25pemVkIHRhZzogIitjWzNdKyJ8IitmLmpvaW4oInwiKX12YXIgYWU9e307cmV0dXJuIXIuYm9va1NoZWV0cyYmIXIuYm9va1Byb3BzJiYoYWUuU2hlZXRzPWwpLGFlLlNoZWV0TmFtZXM9aCxhZS5Xb3JrYm9vaz1SLGFlLlNTRj1YZShkZSksYWUuUHJvcHM9eixhZS5DdXN0cHJvcHM9RyxhZX1mdW5jdGlvbiBpMChlLGEpe3N3aXRjaCh4MChhPWF8fHt9KSxhLnR5cGV8fCJiYXNlNjQiKXtjYXNlImJhc2U2NCI6cmV0dXJuIHMwKGZyKGUpLGEpO2Nhc2UiYmluYXJ5IjpjYXNlImJ1ZmZlciI6Y2FzZSJmaWxlIjpyZXR1cm4gczAoZSxhKTtjYXNlImFycmF5IjpyZXR1cm4gczAoWnIoZSksYSl9fWZ1bmN0aW9uIF94KGUpe3ZhciBhPXt9LHI9ZS5jb250ZW50O2lmKHIubD0yOCxhLkFuc2lVc2VyVHlwZT1yLnJlYWRfc2hpZnQoMCwibHBzdHItYW5zaSIpLGEuQW5zaUNsaXBib2FyZEZvcm1hdD1SYyhyKSxyLmxlbmd0aC1yLmw8PTQpcmV0dXJuIGE7dmFyIG49ci5yZWFkX3NoaWZ0KDQpO2lmKG49PTB8fG4+NDB8fChyLmwtPTQsYS5SZXNlcnZlZDE9ci5yZWFkX3NoaWZ0KDAsImxwc3RyLWFuc2kiKSxyLmxlbmd0aC1yLmw8PTQpfHwobj1yLnJlYWRfc2hpZnQoNCksbiE9PTE5MDc1MDU2NTIpfHwoYS5Vbmljb2RlQ2xpcGJvYXJkRm9ybWF0PUljKHIpLG49ci5yZWFkX3NoaWZ0KDQpLG49PTB8fG4+NDApKXJldHVybiBhO3IubC09NCxhLlJlc2VydmVkMj1yLnJlYWRfc2hpZnQoMCwibHB3c3RyIil9dmFyIEV4PVs2MCwxMDg0LDIwNjYsMjE2NSwyMTc1XTtmdW5jdGlvbiBUeChlLGEscixuLHQpe3ZhciBzPW4saT1bXSxjPXIuc2xpY2Uoci5sLHIubCtzKTtpZih0JiZ0LmVuYyYmdC5lbmMuaW5zaXR1JiZjLmxlbmd0aD4wKXN3aXRjaChlKXtjYXNlIDk6Y2FzZSA1MjE6Y2FzZSAxMDMzOmNhc2UgMjA1NzpjYXNlIDQ3OmNhc2UgNDA1OmNhc2UgMjI1OmNhc2UgNDA2OmNhc2UgMzEyOmNhc2UgNDA0OmNhc2UgMTA6YnJlYWs7Y2FzZSAxMzM6YnJlYWs7ZGVmYXVsdDp0LmVuYy5pbnNpdHUoYyl9aS5wdXNoKGMpLHIubCs9cztmb3IodmFyIGY9TnIocixyLmwpLG89YzBbZl0sbD0wO28hPW51bGwmJkV4LmluZGV4T2YoZik+LTE7KXM9TnIocixyLmwrMiksbD1yLmwrNCxmPT0yMDY2P2wrPTQ6KGY9PTIxNjV8fGY9PTIxNzUpJiYobCs9MTIpLGM9ci5zbGljZShsLHIubCs0K3MpLGkucHVzaChjKSxyLmwrPTQrcyxvPWMwW2Y9TnIocixyLmwpXTt2YXIgaD1XcihpKTskZShoLDApO3ZhciB4PTA7aC5sZW5zPVtdO2Zvcih2YXIgZD0wO2Q8aS5sZW5ndGg7KytkKWgubGVucy5wdXNoKHgpLHgrPWlbZF0ubGVuZ3RoO2lmKGgubGVuZ3RoPG4pdGhyb3ciWExTIFJlY29yZCAweCIrZS50b1N0cmluZygxNikrIiBUcnVuY2F0ZWQ6ICIraC5sZW5ndGgrIiA8ICIrbjtyZXR1cm4gYS5mKGgsaC5sZW5ndGgsdCl9ZnVuY3Rpb24gRHIoZSxhLHIpe2lmKGUudCE9PSJ6IiYmZS5YRil7dmFyIG49MDt0cnl7bj1lLnp8fGUuWEYubnVtRm10SWR8fDAsYS5jZWxsTkYmJihlLno9ZGVbbl0pfWNhdGNoKHMpe2lmKGEuV1RGKXRocm93IHN9aWYoIWF8fGEuY2VsbFRleHQhPT0hMSl0cnl7ZS50PT09ImUiP2Uudz1lLnd8fGlhW2Uudl06bj09PTB8fG49PSJHZW5lcmFsIj9lLnQ9PT0ibiI/KGUudnwwKT09PWUudj9lLnc9ZS52LnRvU3RyaW5nKDEwKTplLnc9RmEoZS52KTplLnc9UXIoZS52KTplLnc9eHIobixlLnYse2RhdGUxOTA0OiEhcixkYXRlTkY6YSYmYS5kYXRlTkZ9KX1jYXRjaChzKXtpZihhLldURil0aHJvdyBzfWlmKGEuY2VsbERhdGVzJiZuJiZlLnQ9PSJuIiYmeGEoZGVbbl18fFN0cmluZyhuKSkpe3ZhciB0PXFyKGUudik7dCYmKGUudD0iZCIsZS52PW5ldyBEYXRlKHQueSx0Lm0tMSx0LmQsdC5ILHQuTSx0LlMsdC51KSl9fX1mdW5jdGlvbiB3dChlLGEscil7cmV0dXJue3Y6ZSxpeGZlOmEsdDpyfX1mdW5jdGlvbiBreChlLGEpe3ZhciByPXtvcHRzOnt9fSxuPXt9LHQ9YS5kZW5zZT9bXTp7fSxzPXt9LGk9e30sYz1udWxsLGY9W10sbz0iIixsPXt9LGgseD0iIixkLHYsdSxnLEY9e30seT1bXSxfLE4sYj1bXSxJPVtdLEE9e1NoZWV0czpbXSxXQlByb3BzOntkYXRlMTkwNDohMX0sVmlld3M6W3t9XX0sVj17fSxEPWZ1bmN0aW9uKHZlKXtyZXR1cm4gdmU8OD9zYVt2ZV06dmU8NjQmJklbdmUtOF18fHNhW3ZlXX0sej1mdW5jdGlvbih2ZSxQZSxtcil7dmFyIFZlPVBlLlhGLmRhdGE7aWYoISghVmV8fCFWZS5wYXR0ZXJuVHlwZXx8IW1yfHwhbXIuY2VsbFN0eWxlcykpe1BlLnM9e30sUGUucy5wYXR0ZXJuVHlwZT1WZS5wYXR0ZXJuVHlwZTt2YXIgb2E7KG9hPUhhKEQoVmUuaWN2Rm9yZSkpKSYmKFBlLnMuZmdDb2xvcj17cmdiOm9hfSksKG9hPUhhKEQoVmUuaWN2QmFjaykpKSYmKFBlLnMuYmdDb2xvcj17cmdiOm9hfSl9fSxHPWZ1bmN0aW9uKHZlLFBlLG1yKXtpZighKGhlPjEpJiYhKG1yLnNoZWV0Um93cyYmdmUucj49bXIuc2hlZXRSb3dzKSl7aWYobXIuY2VsbFN0eWxlcyYmUGUuWEYmJlBlLlhGLmRhdGEmJnoodmUsUGUsbXIpLGRlbGV0ZSBQZS5peGZlLGRlbGV0ZSBQZS5YRixoPXZlLHg9dWUodmUpLCghaXx8IWkuc3x8IWkuZSkmJihpPXtzOntyOjAsYzowfSxlOntyOjAsYzowfX0pLHZlLnI8aS5zLnImJihpLnMucj12ZS5yKSx2ZS5jPGkucy5jJiYoaS5zLmM9dmUuYyksdmUucisxPmkuZS5yJiYoaS5lLnI9dmUucisxKSx2ZS5jKzE+aS5lLmMmJihpLmUuYz12ZS5jKzEpLG1yLmNlbGxGb3JtdWxhJiZQZS5mKXtmb3IodmFyIFZlPTA7VmU8eS5sZW5ndGg7KytWZSlpZighKHlbVmVdWzBdLnMuYz52ZS5jfHx5W1ZlXVswXS5zLnI+dmUucikmJiEoeVtWZV1bMF0uZS5jPHZlLmN8fHlbVmVdWzBdLmUucjx2ZS5yKSl7UGUuRj1fZSh5W1ZlXVswXSksKHlbVmVdWzBdLnMuYyE9dmUuY3x8eVtWZV1bMF0ucy5yIT12ZS5yKSYmZGVsZXRlIFBlLmYsUGUuZiYmKFBlLmY9IiIrcWUoeVtWZV1bMV0saSx2ZSxXLFApKTticmVha319bXIuZGVuc2U/KHRbdmUucl18fCh0W3ZlLnJdPVtdKSx0W3ZlLnJdW3ZlLmNdPVBlKTp0W3hdPVBlfX0sUD17ZW5jOiExLHNiY2NoOjAsc25hbWVzOltdLHNoYXJlZGY6RixhcnJheWY6eSxycnRhYmlkOltdLGxhc3R1c2VyOiIiLGJpZmY6OCxjb2RlcGFnZTowLHdpbmxvY2tlZDowLGNlbGxTdHlsZXM6ISFhJiYhIWEuY2VsbFN0eWxlcyxXVEY6ISFhJiYhIWEud3RmfTthLnBhc3N3b3JkJiYoUC5wYXNzd29yZD1hLnBhc3N3b3JkKTt2YXIgSixmZT1bXSxyZT1bXSxjZT1bXSxpZT1bXSxGZT0hMSxXPVtdO1cuU2hlZXROYW1lcz1QLnNuYW1lcyxXLnNoYXJlZGY9UC5zaGFyZWRmLFcuYXJyYXlmPVAuYXJyYXlmLFcubmFtZXM9W10sVy5YVEk9W107dmFyIGxlPTAsaGU9MCxTPTAsVT1bXSxSPVtdLE87UC5jb2RlcGFnZT0xMjAwLF9yKDEyMDApO2Zvcih2YXIgSz0hMTtlLmw8ZS5sZW5ndGgtMTspe3ZhciBlZT1lLmwsbmU9ZS5yZWFkX3NoaWZ0KDIpO2lmKG5lPT09MCYmbGU9PT0xMClicmVhazt2YXIgcT1lLmw9PT1lLmxlbmd0aD8wOmUucmVhZF9zaGlmdCgyKSxqPWMwW25lXTtpZihqJiZqLmYpe2lmKGEuYm9va1NoZWV0cyYmbGU9PT0xMzMmJm5lIT09MTMzKWJyZWFrO2lmKGxlPW5lLGoucj09PTJ8fGoucj09MTIpe3ZhciBUZT1lLnJlYWRfc2hpZnQoMik7aWYocS09MiwhUC5lbmMmJlRlIT09bmUmJigoVGUmMjU1KTw8OHxUZT4+OCkhPT1uZSl0aHJvdyBuZXcgRXJyb3IoInJ0IG1pc21hdGNoOiAiK1RlKyIhPSIrbmUpO2oucj09MTImJihlLmwrPTEwLHEtPTEwKX12YXIgQz17fTtpZihuZT09PTEwP0M9ai5mKGUscSxQKTpDPVR4KG5lLGosZSxxLFApLGhlPT0wJiZbOSw1MjEsMTAzMywyMDU3XS5pbmRleE9mKGxlKT09PS0xKWNvbnRpbnVlO3N3aXRjaChuZSl7Y2FzZSAzNDpyLm9wdHMuRGF0ZTE5MDQ9QS5XQlByb3BzLmRhdGUxOTA0PUM7YnJlYWs7Y2FzZSAxMzQ6ci5vcHRzLldyaXRlUHJvdGVjdD0hMDticmVhaztjYXNlIDQ3OmlmKFAuZW5jfHwoZS5sPTApLFAuZW5jPUMsIWEucGFzc3dvcmQpdGhyb3cgbmV3IEVycm9yKCJGaWxlIGlzIHBhc3N3b3JkLXByb3RlY3RlZCIpO2lmKEMudmFsaWQ9PW51bGwpdGhyb3cgbmV3IEVycm9yKCJFbmNyeXB0aW9uIHNjaGVtZSB1bnN1cHBvcnRlZCIpO2lmKCFDLnZhbGlkKXRocm93IG5ldyBFcnJvcigiUGFzc3dvcmQgaXMgaW5jb3JyZWN0Iik7YnJlYWs7Y2FzZSA5MjpQLmxhc3R1c2VyPUM7YnJlYWs7Y2FzZSA2Njp2YXIgSWU9TnVtYmVyKEMpO3N3aXRjaChJZSl7Y2FzZSAyMTAxMDpJZT0xMjAwO2JyZWFrO2Nhc2UgMzI3Njg6SWU9MWU0O2JyZWFrO2Nhc2UgMzI3Njk6SWU9MTI1MjticmVha31fcihQLmNvZGVwYWdlPUllKSxLPSEwO2JyZWFrO2Nhc2UgMzE3OlAucnJ0YWJpZD1DO2JyZWFrO2Nhc2UgMjU6UC53aW5sb2NrZWQ9QzticmVhaztjYXNlIDQzOTpyLm9wdHMuUmVmcmVzaEFsbD1DO2JyZWFrO2Nhc2UgMTI6ci5vcHRzLkNhbGNDb3VudD1DO2JyZWFrO2Nhc2UgMTY6ci5vcHRzLkNhbGNEZWx0YT1DO2JyZWFrO2Nhc2UgMTc6ci5vcHRzLkNhbGNJdGVyPUM7YnJlYWs7Y2FzZSAxMzpyLm9wdHMuQ2FsY01vZGU9QzticmVhaztjYXNlIDE0OnIub3B0cy5DYWxjUHJlY2lzaW9uPUM7YnJlYWs7Y2FzZSA5NTpyLm9wdHMuQ2FsY1NhdmVSZWNhbGM9QzticmVhaztjYXNlIDE1OlAuQ2FsY1JlZk1vZGU9QzticmVhaztjYXNlIDIyMTE6ci5vcHRzLkZ1bGxDYWxjPUM7YnJlYWs7Y2FzZSAxMjk6Qy5mRGlhbG9nJiYodFsiIXR5cGUiXT0iZGlhbG9nIiksQy5mQmVsb3d8fCgodFsiIW91dGxpbmUiXXx8KHRbIiFvdXRsaW5lIl09e30pKS5hYm92ZT0hMCksQy5mUmlnaHR8fCgodFsiIW91dGxpbmUiXXx8KHRbIiFvdXRsaW5lIl09e30pKS5sZWZ0PSEwKTticmVhaztjYXNlIDIyNDpiLnB1c2goQyk7YnJlYWs7Y2FzZSA0MzA6Vy5wdXNoKFtDXSksV1tXLmxlbmd0aC0xXS5YVEk9W107YnJlYWs7Y2FzZSAzNTpjYXNlIDU0NzpXW1cubGVuZ3RoLTFdLnB1c2goQyk7YnJlYWs7Y2FzZSAyNDpjYXNlIDUzNjpPPXtOYW1lOkMuTmFtZSxSZWY6cWUoQy5yZ2NlLGksbnVsbCxXLFApfSxDLml0YWI+MCYmKE8uU2hlZXQ9Qy5pdGFiLTEpLFcubmFtZXMucHVzaChPKSxXWzBdfHwoV1swXT1bXSxXWzBdLlhUST1bXSksV1tXLmxlbmd0aC0xXS5wdXNoKEMpLEMuTmFtZT09Il94bG5tLl9GaWx0ZXJEYXRhYmFzZSImJkMuaXRhYj4wJiZDLnJnY2UmJkMucmdjZVswXSYmQy5yZ2NlWzBdWzBdJiZDLnJnY2VbMF1bMF1bMF09PSJQdGdBcmVhM2QiJiYoUltDLml0YWItMV09e3JlZjpfZShDLnJnY2VbMF1bMF1bMV1bMl0pfSk7YnJlYWs7Y2FzZSAyMjpQLkV4dGVybkNvdW50PUM7YnJlYWs7Y2FzZSAyMzpXLmxlbmd0aD09MCYmKFdbMF09W10sV1swXS5YVEk9W10pLFdbVy5sZW5ndGgtMV0uWFRJPVdbVy5sZW5ndGgtMV0uWFRJLmNvbmNhdChDKSxXLlhUST1XLlhUSS5jb25jYXQoQyk7YnJlYWs7Y2FzZSAyMTk2OmlmKFAuYmlmZjw4KWJyZWFrO08hPW51bGwmJihPLkNvbW1lbnQ9Q1sxXSk7YnJlYWs7Y2FzZSAxODp0WyIhcHJvdGVjdCJdPUM7YnJlYWs7Y2FzZSAxOTpDIT09MCYmUC5XVEYmJmNvbnNvbGUuZXJyb3IoIlBhc3N3b3JkIHZlcmlmaWVyOiAiK0MpO2JyZWFrO2Nhc2UgMTMzOnNbQy5wb3NdPUMsUC5zbmFtZXMucHVzaChDLm5hbWUpO2JyZWFrO2Nhc2UgMTA6e2lmKC0taGUpYnJlYWs7aWYoaS5lKXtpZihpLmUucj4wJiZpLmUuYz4wKXtpZihpLmUuci0tLGkuZS5jLS0sdFsiIXJlZiJdPV9lKGkpLGEuc2hlZXRSb3dzJiZhLnNoZWV0Um93czw9aS5lLnIpe3ZhciBrZT1pLmUucjtpLmUucj1hLnNoZWV0Um93cy0xLHRbIiFmdWxscmVmIl09dFsiIXJlZiJdLHRbIiFyZWYiXT1fZShpKSxpLmUucj1rZX1pLmUucisrLGkuZS5jKyt9ZmUubGVuZ3RoPjAmJih0WyIhbWVyZ2VzIl09ZmUpLHJlLmxlbmd0aD4wJiYodFsiIW9iamVjdHMiXT1yZSksY2UubGVuZ3RoPjAmJih0WyIhY29scyJdPWNlKSxpZS5sZW5ndGg+MCYmKHRbIiFyb3dzIl09aWUpLEEuU2hlZXRzLnB1c2goVil9bz09PSIiP2w9dDpuW29dPXQsdD1hLmRlbnNlP1tdOnt9fWJyZWFrO2Nhc2UgOTpjYXNlIDUyMTpjYXNlIDEwMzM6Y2FzZSAyMDU3OntpZihQLmJpZmY9PT04JiYoUC5iaWZmPXs5OjIsNTIxOjMsMTAzMzo0fVtuZV18fHs1MTI6Miw3Njg6MywxMDI0OjQsMTI4MDo1LDE1MzY6OCwyOjIsNzoyfVtDLkJJRkZWZXJdfHw4KSxQLmJpZmZndWVzcz1DLkJJRkZWZXI9PTAsQy5CSUZGVmVyPT0wJiZDLmR0PT00MDk2JiYoUC5iaWZmPTUsSz0hMCxfcihQLmNvZGVwYWdlPTI4NTkxKSksUC5iaWZmPT04JiZDLkJJRkZWZXI9PTAmJkMuZHQ9PTE2JiYoUC5iaWZmPTIpLGhlKyspYnJlYWs7aWYodD1hLmRlbnNlP1tdOnt9LFAuYmlmZjw4JiYhSyYmKEs9ITAsX3IoUC5jb2RlcGFnZT1hLmNvZGVwYWdlfHwxMjUyKSksUC5iaWZmPDV8fEMuQklGRlZlcj09MCYmQy5kdD09NDA5Nil7bz09PSIiJiYobz0iU2hlZXQxIiksaT17czp7cjowLGM6MH0sZTp7cjowLGM6MH19O3ZhciB3ZT17cG9zOmUubC1xLG5hbWU6b307c1t3ZS5wb3NdPXdlLFAuc25hbWVzLnB1c2gobyl9ZWxzZSBvPShzW2VlXXx8e25hbWU6IiJ9KS5uYW1lO0MuZHQ9PTMyJiYodFsiIXR5cGUiXT0iY2hhcnQiKSxDLmR0PT02NCYmKHRbIiF0eXBlIl09Im1hY3JvIiksZmU9W10scmU9W10sUC5hcnJheWY9eT1bXSxjZT1bXSxpZT1bXSxGZT0hMSxWPXtIaWRkZW46KHNbZWVdfHx7aHM6MH0pLmhzLG5hbWU6b319YnJlYWs7Y2FzZSA1MTU6Y2FzZSAzOmNhc2UgMjp0WyIhdHlwZSJdPT0iY2hhcnQiJiYoYS5kZW5zZT8odFtDLnJdfHxbXSlbQy5jXTp0W3VlKHtjOkMuYyxyOkMucn0pXSkmJisrQy5jLF89e2l4ZmU6Qy5peGZlLFhGOmJbQy5peGZlXXx8e30sdjpDLnZhbCx0OiJuIn0sUz4wJiYoXy56PVVbXy5peGZlPj44JjYzXSksRHIoXyxhLHIub3B0cy5EYXRlMTkwNCksRyh7YzpDLmMscjpDLnJ9LF8sYSk7YnJlYWs7Y2FzZSA1OmNhc2UgNTE3Ol89e2l4ZmU6Qy5peGZlLFhGOmJbQy5peGZlXSx2OkMudmFsLHQ6Qy50fSxTPjAmJihfLno9VVtfLml4ZmU+PjgmNjNdKSxEcihfLGEsci5vcHRzLkRhdGUxOTA0KSxHKHtjOkMuYyxyOkMucn0sXyxhKTticmVhaztjYXNlIDYzODpfPXtpeGZlOkMuaXhmZSxYRjpiW0MuaXhmZV0sdjpDLnJrbnVtLHQ6Im4ifSxTPjAmJihfLno9VVtfLml4ZmU+PjgmNjNdKSxEcihfLGEsci5vcHRzLkRhdGUxOTA0KSxHKHtjOkMuYyxyOkMucn0sXyxhKTticmVhaztjYXNlIDE4OTpmb3IodmFyIHBlPUMuYztwZTw9Qy5DOysrcGUpe3ZhciBhZT1DLnJrcmVjW3BlLUMuY11bMF07Xz17aXhmZTphZSxYRjpiW2FlXSx2OkMucmtyZWNbcGUtQy5jXVsxXSx0OiJuIn0sUz4wJiYoXy56PVVbXy5peGZlPj44JjYzXSksRHIoXyxhLHIub3B0cy5EYXRlMTkwNCksRyh7YzpwZSxyOkMucn0sXyxhKX1icmVhaztjYXNlIDY6Y2FzZSA1MTg6Y2FzZSAxMDMwOntpZihDLnZhbD09IlN0cmluZyIpe2M9QzticmVha31pZihfPXd0KEMudmFsLEMuY2VsbC5peGZlLEMudHQpLF8uWEY9YltfLml4ZmVdLGEuY2VsbEZvcm11bGEpe3ZhciBOZT1DLmZvcm11bGE7aWYoTmUmJk5lWzBdJiZOZVswXVswXSYmTmVbMF1bMF1bMF09PSJQdGdFeHAiKXt2YXIgZ3I9TmVbMF1bMF1bMV1bMF0sT3I9TmVbMF1bMF1bMV1bMV0sQnI9dWUoe3I6Z3IsYzpPcn0pO0ZbQnJdP18uZj0iIitxZShDLmZvcm11bGEsaSxDLmNlbGwsVyxQKTpfLkY9KChhLmRlbnNlPyh0W2dyXXx8W10pW09yXTp0W0JyXSl8fHt9KS5GfWVsc2UgXy5mPSIiK3FlKEMuZm9ybXVsYSxpLEMuY2VsbCxXLFApfVM+MCYmKF8uej1VW18uaXhmZT4+OCY2M10pLERyKF8sYSxyLm9wdHMuRGF0ZTE5MDQpLEcoQy5jZWxsLF8sYSksYz1DfWJyZWFrO2Nhc2UgNzpjYXNlIDUxOTppZihjKWMudmFsPUMsXz13dChDLGMuY2VsbC5peGZlLCJzIiksXy5YRj1iW18uaXhmZV0sYS5jZWxsRm9ybXVsYSYmKF8uZj0iIitxZShjLmZvcm11bGEsaSxjLmNlbGwsVyxQKSksUz4wJiYoXy56PVVbXy5peGZlPj44JjYzXSksRHIoXyxhLHIub3B0cy5EYXRlMTkwNCksRyhjLmNlbGwsXyxhKSxjPW51bGw7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIlN0cmluZyByZWNvcmQgZXhwZWN0cyBGb3JtdWxhIik7YnJlYWs7Y2FzZSAzMzpjYXNlIDU0NTp7eS5wdXNoKEMpO3ZhciBKYT11ZShDWzBdLnMpO2lmKGQ9YS5kZW5zZT8odFtDWzBdLnMucl18fFtdKVtDWzBdLnMuY106dFtKYV0sYS5jZWxsRm9ybXVsYSYmZCl7aWYoIWN8fCFKYXx8IWQpYnJlYWs7ZC5mPSIiK3FlKENbMV0saSxDWzBdLFcsUCksZC5GPV9lKENbMF0pfX1icmVhaztjYXNlIDEyMTI6e2lmKCFhLmNlbGxGb3JtdWxhKWJyZWFrO2lmKHgpe2lmKCFjKWJyZWFrO0ZbdWUoYy5jZWxsKV09Q1swXSxkPWEuZGVuc2U/KHRbYy5jZWxsLnJdfHxbXSlbYy5jZWxsLmNdOnRbdWUoYy5jZWxsKV0sKGR8fHt9KS5mPSIiK3FlKENbMF0saSxoLFcsUCl9fWJyZWFrO2Nhc2UgMjUzOl89d3QoZltDLmlzc3RdLnQsQy5peGZlLCJzIiksZltDLmlzc3RdLmgmJihfLmg9ZltDLmlzc3RdLmgpLF8uWEY9YltfLml4ZmVdLFM+MCYmKF8uej1VW18uaXhmZT4+OCY2M10pLERyKF8sYSxyLm9wdHMuRGF0ZTE5MDQpLEcoe2M6Qy5jLHI6Qy5yfSxfLGEpO2JyZWFrO2Nhc2UgNTEzOmEuc2hlZXRTdHVicyYmKF89e2l4ZmU6Qy5peGZlLFhGOmJbQy5peGZlXSx0OiJ6In0sUz4wJiYoXy56PVVbXy5peGZlPj44JjYzXSksRHIoXyxhLHIub3B0cy5EYXRlMTkwNCksRyh7YzpDLmMscjpDLnJ9LF8sYSkpO2JyZWFrO2Nhc2UgMTkwOmlmKGEuc2hlZXRTdHVicylmb3IodmFyIFlyPUMuYztZcjw9Qy5DOysrWXIpe3ZhciBocj1DLml4ZmVbWXItQy5jXTtfPXtpeGZlOmhyLFhGOmJbaHJdLHQ6InoifSxTPjAmJihfLno9VVtfLml4ZmU+PjgmNjNdKSxEcihfLGEsci5vcHRzLkRhdGUxOTA0KSxHKHtjOllyLHI6Qy5yfSxfLGEpfWJyZWFrO2Nhc2UgMjE0OmNhc2UgNTE2OmNhc2UgNDpfPXd0KEMudmFsLEMuaXhmZSwicyIpLF8uWEY9YltfLml4ZmVdLFM+MCYmKF8uej1VW18uaXhmZT4+OCY2M10pLERyKF8sYSxyLm9wdHMuRGF0ZTE5MDQpLEcoe2M6Qy5jLHI6Qy5yfSxfLGEpO2JyZWFrO2Nhc2UgMDpjYXNlIDUxMjpoZT09PTEmJihpPUMpO2JyZWFrO2Nhc2UgMjUyOmY9QzticmVhaztjYXNlIDEwNTQ6aWYoUC5iaWZmPT00KXtVW1MrK109Q1sxXTtmb3IodmFyIGJyPTA7YnI8UysxNjMmJmRlW2JyXSE9Q1sxXTsrK2JyKTticj49MTYzJiZlYShDWzFdLFMrMTYzKX1lbHNlIGVhKENbMV0sQ1swXSk7YnJlYWs7Y2FzZSAzMDp7VVtTKytdPUM7Zm9yKHZhciBqcj0wO2pyPFMrMTYzJiZkZVtqcl0hPUM7Kytqcik7anI+PTE2MyYmZWEoQyxTKzE2Myl9YnJlYWs7Y2FzZSAyMjk6ZmU9ZmUuY29uY2F0KEMpO2JyZWFrO2Nhc2UgOTM6cmVbQy5jbW9bMF1dPVAubGFzdG9iaj1DO2JyZWFrO2Nhc2UgNDM4OlAubGFzdG9iai5UeE89QzticmVhaztjYXNlIDEyNzpQLmxhc3RvYmouSW1EYXRhPUM7YnJlYWs7Y2FzZSA0NDA6Zm9yKGc9Q1swXS5zLnI7Zzw9Q1swXS5lLnI7KytnKWZvcih1PUNbMF0ucy5jO3U8PUNbMF0uZS5jOysrdSlkPWEuZGVuc2U/KHRbZ118fFtdKVt1XTp0W3VlKHtjOnUscjpnfSldLGQmJihkLmw9Q1sxXSk7YnJlYWs7Y2FzZSAyMDQ4OmZvcihnPUNbMF0ucy5yO2c8PUNbMF0uZS5yOysrZylmb3IodT1DWzBdLnMuYzt1PD1DWzBdLmUuYzsrK3UpZD1hLmRlbnNlPyh0W2ddfHxbXSlbdV06dFt1ZSh7Yzp1LHI6Z30pXSxkJiZkLmwmJihkLmwuVG9vbHRpcD1DWzFdKTticmVhaztjYXNlIDI4OntpZihQLmJpZmY8PTUmJlAuYmlmZj49MilicmVhaztkPWEuZGVuc2U/KHRbQ1swXS5yXXx8W10pW0NbMF0uY106dFt1ZShDWzBdKV07dmFyIFphPXJlW0NbMl1dO2R8fChhLmRlbnNlPyh0W0NbMF0ucl18fCh0W0NbMF0ucl09W10pLGQ9dFtDWzBdLnJdW0NbMF0uY109e3Q6InoifSk6ZD10W3VlKENbMF0pXT17dDoieiJ9LGkuZS5yPU1hdGgubWF4KGkuZS5yLENbMF0uciksaS5zLnI9TWF0aC5taW4oaS5zLnIsQ1swXS5yKSxpLmUuYz1NYXRoLm1heChpLmUuYyxDWzBdLmMpLGkucy5jPU1hdGgubWluKGkucy5jLENbMF0uYykpLGQuY3x8KGQuYz1bXSksdj17YTpDWzFdLHQ6WmEuVHhPLnR9LGQuYy5wdXNoKHYpfWJyZWFrO2Nhc2UgMjE3MzpYbChiW0MuaXhmZV0sQy5leHQpO2JyZWFrO2Nhc2UgMTI1OntpZighUC5jZWxsU3R5bGVzKWJyZWFrO2Zvcig7Qy5lPj1DLnM7KWNlW0MuZS0tXT17d2lkdGg6Qy53LzI1NixsZXZlbDpDLmxldmVsfHwwLGhpZGRlbjohIShDLmZsYWdzJjEpfSxGZXx8KEZlPSEwLGUwKEMudy8yNTYpKSxfYShjZVtDLmUrMV0pfWJyZWFrO2Nhc2UgNTIwOnt2YXIgaXI9e307Qy5sZXZlbCE9bnVsbCYmKGllW0Mucl09aXIsaXIubGV2ZWw9Qy5sZXZlbCksQy5oaWRkZW4mJihpZVtDLnJdPWlyLGlyLmhpZGRlbj0hMCksQy5ocHQmJihpZVtDLnJdPWlyLGlyLmhwdD1DLmhwdCxpci5ocHg9VmEoQy5ocHQpKX1icmVhaztjYXNlIDM4OmNhc2UgMzk6Y2FzZSA0MDpjYXNlIDQxOnRbIiFtYXJnaW5zIl18fHphKHRbIiFtYXJnaW5zIl09e30pLHRbIiFtYXJnaW5zIl1bezM4OiJsZWZ0IiwzOToicmlnaHQiLDQwOiJ0b3AiLDQxOiJib3R0b20ifVtuZV1dPUM7YnJlYWs7Y2FzZSAxNjE6dFsiIW1hcmdpbnMiXXx8emEodFsiIW1hcmdpbnMiXT17fSksdFsiIW1hcmdpbnMiXS5oZWFkZXI9Qy5oZWFkZXIsdFsiIW1hcmdpbnMiXS5mb290ZXI9Qy5mb290ZXI7YnJlYWs7Y2FzZSA1NzQ6Qy5SVEwmJihBLlZpZXdzWzBdLlJUTD0hMCk7YnJlYWs7Y2FzZSAxNDY6ST1DO2JyZWFrO2Nhc2UgMjE5ODpKPUM7YnJlYWs7Y2FzZSAxNDA6Tj1DO2JyZWFrO2Nhc2UgNDQyOm8/Vi5Db2RlTmFtZT1DfHxWLm5hbWU6QS5XQlByb3BzLkNvZGVOYW1lPUN8fCJUaGlzV29ya2Jvb2siO2JyZWFrfX1lbHNlIGp8fGNvbnNvbGUuZXJyb3IoIk1pc3NpbmcgSW5mbyBmb3IgWExTIFJlY29yZCAweCIrbmUudG9TdHJpbmcoMTYpKSxlLmwrPXF9cmV0dXJuIHIuU2hlZXROYW1lcz1TcihzKS5zb3J0KGZ1bmN0aW9uKFJyLHZlKXtyZXR1cm4gTnVtYmVyKFJyKS1OdW1iZXIodmUpfSkubWFwKGZ1bmN0aW9uKFJyKXtyZXR1cm4gc1tScl0ubmFtZX0pLGEuYm9va1NoZWV0c3x8KHIuU2hlZXRzPW4pLCFyLlNoZWV0TmFtZXMubGVuZ3RoJiZsWyIhcmVmIl0/KHIuU2hlZXROYW1lcy5wdXNoKCJTaGVldDEiKSxyLlNoZWV0cyYmKHIuU2hlZXRzLlNoZWV0MT1sKSk6ci5QcmVhbWJsZT1sLHIuU2hlZXRzJiZSLmZvckVhY2goZnVuY3Rpb24oUnIsdmUpe3IuU2hlZXRzW3IuU2hlZXROYW1lc1t2ZV1dWyIhYXV0b2ZpbHRlciJdPVJyfSksci5TdHJpbmdzPWYsci5TU0Y9WGUoZGUpLFAuZW5jJiYoci5FbmNyeXB0aW9uPVAuZW5jKSxKJiYoci5UaGVtZXM9Siksci5NZXRhZGF0YT17fSxOIT09dm9pZCAwJiYoci5NZXRhZGF0YS5Db3VudHJ5PU4pLFcubmFtZXMubGVuZ3RoPjAmJihBLk5hbWVzPVcubmFtZXMpLHIuV29ya2Jvb2s9QSxyfXZhciBYcz17U0k6ImUwODU5ZmYyZjk0ZjY4MTBhYjkxMDgwMDJiMjdiM2Q5IixEU0k6IjAyZDVjZGQ1OWMyZTFiMTA5Mzk3MDgwMDJiMmNmOWFlIixVREk6IjA1ZDVjZGQ1OWMyZTFiMTA5Mzk3MDgwMDJiMmNmOWFlIn07ZnVuY3Rpb24gd3goZSxhLHIpe3ZhciBuPW1lLmZpbmQoZSwiLyFEb2N1bWVudFN1bW1hcnlJbmZvcm1hdGlvbiIpO2lmKG4mJm4uc2l6ZT4wKXRyeXt2YXIgdD1qbihuLGJjLFhzLkRTSSk7Zm9yKHZhciBzIGluIHQpYVtzXT10W3NdfWNhdGNoKG8pe2lmKHIuV1RGKXRocm93IG99dmFyIGk9bWUuZmluZChlLCIvIVN1bW1hcnlJbmZvcm1hdGlvbiIpO2lmKGkmJmkuc2l6ZT4wKXRyeXt2YXIgYz1qbihpLFVjLFhzLlNJKTtmb3IodmFyIGYgaW4gYylhW2ZdPT1udWxsJiYoYVtmXT1jW2ZdKX1jYXRjaChvKXtpZihyLldURil0aHJvdyBvfWEuSGVhZGluZ1BhaXJzJiZhLlRpdGxlc09mUGFydHMmJihXbihhLkhlYWRpbmdQYWlycyxhLlRpdGxlc09mUGFydHMsYSxyKSxkZWxldGUgYS5IZWFkaW5nUGFpcnMsZGVsZXRlIGEuVGl0bGVzT2ZQYXJ0cyl9ZnVuY3Rpb24gJHMoZSxhKXthfHwoYT17fSkseDAoYSksQTAoKSxhLmNvZGVwYWdlJiZDdChhLmNvZGVwYWdlKTt2YXIgcixuO2lmKGUuRnVsbFBhdGhzKXtpZihtZS5maW5kKGUsIi9lbmNyeXB0aW9uIikpdGhyb3cgbmV3IEVycm9yKCJGaWxlIGlzIHBhc3N3b3JkLXByb3RlY3RlZCIpO3I9bWUuZmluZChlLCIhQ29tcE9iaiIpLG49bWUuZmluZChlLCIvV29ya2Jvb2siKXx8bWUuZmluZChlLCIvQm9vayIpfWVsc2V7c3dpdGNoKGEudHlwZSl7Y2FzZSJiYXNlNjQiOmU9RXIoZnIoZSkpO2JyZWFrO2Nhc2UiYmluYXJ5IjplPUVyKGUpO2JyZWFrO2Nhc2UiYnVmZmVyIjpicmVhaztjYXNlImFycmF5IjpBcnJheS5pc0FycmF5KGUpfHwoZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlKSk7YnJlYWt9JGUoZSwwKSxuPXtjb250ZW50OmV9fXZhciB0LHM7aWYociYmX3gociksYS5ib29rUHJvcHMmJiFhLmJvb2tTaGVldHMpdD17fTtlbHNle3ZhciBpPWdlPyJidWZmZXIiOiJhcnJheSI7aWYobiYmbi5jb250ZW50KXQ9a3gobi5jb250ZW50LGEpO2Vsc2UgaWYoKHM9bWUuZmluZChlLCJQZXJmZWN0T2ZmaWNlX01BSU4iKSkmJnMuY29udGVudCl0PVVhLnRvX3dvcmtib29rKHMuY29udGVudCwoYS50eXBlPWksYSkpO2Vsc2UgaWYoKHM9bWUuZmluZChlLCJOYXRpdmVDb250ZW50X01BSU4iKSkmJnMuY29udGVudCl0PVVhLnRvX3dvcmtib29rKHMuY29udGVudCwoYS50eXBlPWksYSkpO2Vsc2UgdGhyb3cocz1tZS5maW5kKGUsIk1OMCIpKSYmcy5jb250ZW50P25ldyBFcnJvcigiVW5zdXBwb3J0ZWQgV29ya3MgNCBmb3IgTWFjIGZpbGUiKTpuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIFdvcmtib29rIHN0cmVhbSIpO2EuYm9va1ZCQSYmZS5GdWxsUGF0aHMmJm1lLmZpbmQoZSwiL19WQkFfUFJPSkVDVF9DVVIvVkJBL2RpciIpJiYodC52YmFyYXc9ZjEoZSkpfXZhciBjPXt9O3JldHVybiBlLkZ1bGxQYXRocyYmd3goZSxjLGEpLHQuUHJvcHM9dC5DdXN0cHJvcHM9YyxhLmJvb2tGaWxlcyYmKHQuY2ZiPWUpLHR9dmFyIEF0PXswOntmOm51fSwxOntmOmZ1fSwyOntmOmd1fSwzOntmOnV1fSw0OntmOmx1fSw1OntmOnB1fSw2OntmOkV1fSw3OntmOmR1fSw4OntmOkZ1fSw5OntmOkF1fSwxMDp7ZjprdX0sMTE6e2Y6d3V9LDEyOntmOm91fSwxMzp7ZjptdX0sMTQ6e2Y6eHV9LDE1OntmOmh1fSwxNjp7ZjpCc30sMTc6e2Y6VHV9LDE4OntmOnZ1fSwxOTp7ZjpXdH0sMjA6e30sMjE6e30sMjI6e30sMjM6e30sMjQ6e30sMjU6e30sMjY6e30sMjc6e30sMjg6e30sMjk6e30sMzA6e30sMzE6e30sMzI6e30sMzM6e30sMzQ6e30sMzU6e1Q6MX0sMzY6e1Q6LTF9LDM3OntUOjF9LDM4OntUOi0xfSwzOTp7ZjpxdX0sNDA6e30sNDI6e30sNDM6e2Y6a2x9LDQ0OntmOlRsfSw0NTp7Zjp3bH0sNDY6e2Y6Rmx9LDQ3OntmOkFsfSw0ODp7fSw0OTp7ZjpBY30sNTA6e30sNTE6e2Y6emx9LDUyOntUOjF9LDUzOntUOi0xfSw1NDp7VDoxfSw1NTp7VDotMX0sNTY6e1Q6MX0sNTc6e1Q6LTF9LDU4Ont9LDU5Ont9LDYwOntmOmxzfSw2Mjp7ZjpfdX0sNjM6e2Y6Wmx9LDY0OntmOlB1fSw2NTp7fSw2Njp7fSw2Nzp7fSw2ODp7fSw2OTp7fSw3MDp7fSwxMjg6e30sMTI5OntUOjF9LDEzMDp7VDotMX0sMTMxOntUOjEsZjpZZSxwOjB9LDEzMjp7VDotMX0sMTMzOntUOjF9LDEzNDp7VDotMX0sMTM1OntUOjF9LDEzNjp7VDotMX0sMTM3OntUOjEsZjpOdX0sMTM4OntUOi0xfSwxMzk6e1Q6MX0sMTQwOntUOi0xfSwxNDE6e1Q6MX0sMTQyOntUOi0xfSwxNDM6e1Q6MX0sMTQ0OntUOi0xfSwxNDU6e1Q6MX0sMTQ2OntUOi0xfSwxNDc6e2Y6Y3V9LDE0ODp7ZjpzdSxwOjE2fSwxNTE6e2Y6eXV9LDE1Mjp7fSwxNTM6e2Y6SnV9LDE1NDp7fSwxNTU6e30sMTU2OntmOmp1fSwxNTc6e30sMTU4Ont9LDE1OTp7VDoxLGY6Vm99LDE2MDp7VDotMX0sMTYxOntUOjEsZjpuYX0sMTYyOntUOi0xfSwxNjM6e1Q6MX0sMTY0OntUOi0xfSwxNjU6e1Q6MX0sMTY2OntUOi0xfSwxNjc6e30sMTY4Ont9LDE2OTp7fSwxNzA6e30sMTcxOnt9LDE3Mjp7VDoxfSwxNzM6e1Q6LTF9LDE3NDp7fSwxNzU6e30sMTc2OntmOlN1fSwxNzc6e1Q6MX0sMTc4OntUOi0xfSwxNzk6e1Q6MX0sMTgwOntUOi0xfSwxODE6e1Q6MX0sMTgyOntUOi0xfSwxODM6e1Q6MX0sMTg0OntUOi0xfSwxODU6e1Q6MX0sMTg2OntUOi0xfSwxODc6e1Q6MX0sMTg4OntUOi0xfSwxODk6e1Q6MX0sMTkwOntUOi0xfSwxOTE6e1Q6MX0sMTkyOntUOi0xfSwxOTM6e1Q6MX0sMTk0OntUOi0xfSwxOTU6e1Q6MX0sMTk2OntUOi0xfSwxOTc6e1Q6MX0sMTk4OntUOi0xfSwxOTk6e1Q6MX0sMjAwOntUOi0xfSwyMDE6e1Q6MX0sMjAyOntUOi0xfSwyMDM6e1Q6MX0sMjA0OntUOi0xfSwyMDU6e1Q6MX0sMjA2OntUOi0xfSwyMDc6e1Q6MX0sMjA4OntUOi0xfSwyMDk6e1Q6MX0sMjEwOntUOi0xfSwyMTE6e1Q6MX0sMjEyOntUOi0xfSwyMTM6e1Q6MX0sMjE0OntUOi0xfSwyMTU6e1Q6MX0sMjE2OntUOi0xfSwyMTc6e1Q6MX0sMjE4OntUOi0xfSwyMTk6e1Q6MX0sMjIwOntUOi0xfSwyMjE6e1Q6MX0sMjIyOntUOi0xfSwyMjM6e1Q6MX0sMjI0OntUOi0xfSwyMjU6e1Q6MX0sMjI2OntUOi0xfSwyMjc6e1Q6MX0sMjI4OntUOi0xfSwyMjk6e1Q6MX0sMjMwOntUOi0xfSwyMzE6e1Q6MX0sMjMyOntUOi0xfSwyMzM6e1Q6MX0sMjM0OntUOi0xfSwyMzU6e1Q6MX0sMjM2OntUOi0xfSwyMzc6e1Q6MX0sMjM4OntUOi0xfSwyMzk6e1Q6MX0sMjQwOntUOi0xfSwyNDE6e1Q6MX0sMjQyOntUOi0xfSwyNDM6e1Q6MX0sMjQ0OntUOi0xfSwyNDU6e1Q6MX0sMjQ2OntUOi0xfSwyNDc6e1Q6MX0sMjQ4OntUOi0xfSwyNDk6e1Q6MX0sMjUwOntUOi0xfSwyNTE6e1Q6MX0sMjUyOntUOi0xfSwyNTM6e1Q6MX0sMjU0OntUOi0xfSwyNTU6e1Q6MX0sMjU2OntUOi0xfSwyNTc6e1Q6MX0sMjU4OntUOi0xfSwyNTk6e1Q6MX0sMjYwOntUOi0xfSwyNjE6e1Q6MX0sMjYyOntUOi0xfSwyNjM6e1Q6MX0sMjY0OntUOi0xfSwyNjU6e1Q6MX0sMjY2OntUOi0xfSwyNjc6e1Q6MX0sMjY4OntUOi0xfSwyNjk6e1Q6MX0sMjcwOntUOi0xfSwyNzE6e1Q6MX0sMjcyOntUOi0xfSwyNzM6e1Q6MX0sMjc0OntUOi0xfSwyNzU6e1Q6MX0sMjc2OntUOi0xfSwyNzc6e30sMjc4OntUOjF9LDI3OTp7VDotMX0sMjgwOntUOjF9LDI4MTp7VDotMX0sMjgyOntUOjF9LDI4Mzp7VDoxfSwyODQ6e1Q6LTF9LDI4NTp7VDoxfSwyODY6e1Q6LTF9LDI4Nzp7VDoxfSwyODg6e1Q6LTF9LDI4OTp7VDoxfSwyOTA6e1Q6LTF9LDI5MTp7VDoxfSwyOTI6e1Q6LTF9LDI5Mzp7VDoxfSwyOTQ6e1Q6LTF9LDI5NTp7VDoxfSwyOTY6e1Q6LTF9LDI5Nzp7VDoxfSwyOTg6e1Q6LTF9LDI5OTp7VDoxfSwzMDA6e1Q6LTF9LDMwMTp7VDoxfSwzMDI6e1Q6LTF9LDMwMzp7VDoxfSwzMDQ6e1Q6LTF9LDMwNTp7VDoxfSwzMDY6e1Q6LTF9LDMwNzp7VDoxfSwzMDg6e1Q6LTF9LDMwOTp7VDoxfSwzMTA6e1Q6LTF9LDMxMTp7VDoxfSwzMTI6e1Q6LTF9LDMxMzp7VDotMX0sMzE0OntUOjF9LDMxNTp7VDotMX0sMzE2OntUOjF9LDMxNzp7VDotMX0sMzE4OntUOjF9LDMxOTp7VDotMX0sMzIwOntUOjF9LDMyMTp7VDotMX0sMzIyOntUOjF9LDMyMzp7VDotMX0sMzI0OntUOjF9LDMyNTp7VDotMX0sMzI2OntUOjF9LDMyNzp7VDotMX0sMzI4OntUOjF9LDMyOTp7VDotMX0sMzMwOntUOjF9LDMzMTp7VDotMX0sMzMyOntUOjF9LDMzMzp7VDotMX0sMzM0OntUOjF9LDMzNTp7ZjokbH0sMzM2OntUOi0xfSwzMzc6e2Y6S2wsVDoxfSwzMzg6e1Q6LTF9LDMzOTp7VDoxfSwzNDA6e1Q6LTF9LDM0MTp7VDoxfSwzNDI6e1Q6LTF9LDM0Mzp7VDoxfSwzNDQ6e1Q6LTF9LDM0NTp7VDoxfSwzNDY6e1Q6LTF9LDM0Nzp7VDoxfSwzNDg6e1Q6LTF9LDM0OTp7VDoxfSwzNTA6e1Q6LTF9LDM1MTp7fSwzNTI6e30sMzUzOntUOjF9LDM1NDp7VDotMX0sMzU1OntmOlh0fSwzNTc6e30sMzU4Ont9LDM1OTp7fSwzNjA6e1Q6MX0sMzYxOnt9LDM2Mjp7Zjpmc30sMzYzOnt9LDM2NDp7fSwzNjY6e30sMzY3Ont9LDM2ODp7fSwzNjk6e30sMzcwOnt9LDM3MTp7fSwzNzI6e1Q6MX0sMzczOntUOi0xfSwzNzQ6e1Q6MX0sMzc1OntUOi0xfSwzNzY6e1Q6MX0sMzc3OntUOi0xfSwzNzg6e1Q6MX0sMzc5OntUOi0xfSwzODA6e1Q6MX0sMzgxOntUOi0xfSwzODI6e1Q6MX0sMzgzOntUOi0xfSwzODQ6e1Q6MX0sMzg1OntUOi0xfSwzODY6e1Q6MX0sMzg3OntUOi0xfSwzODg6e1Q6MX0sMzg5OntUOi0xfSwzOTA6e1Q6MX0sMzkxOntUOi0xfSwzOTI6e1Q6MX0sMzkzOntUOi0xfSwzOTQ6e1Q6MX0sMzk1OntUOi0xfSwzOTY6e30sMzk3Ont9LDM5ODp7fSwzOTk6e30sNDAwOnt9LDQwMTp7VDoxfSw0MDM6e30sNDA0Ont9LDQwNTp7fSw0MDY6e30sNDA3Ont9LDQwODp7fSw0MDk6e30sNDEwOnt9LDQxMTp7fSw0MTI6e30sNDEzOnt9LDQxNDp7fSw0MTU6e30sNDE2Ont9LDQxNzp7fSw0MTg6e30sNDE5Ont9LDQyMDp7fSw0MjE6e30sNDIyOntUOjF9LDQyMzp7VDoxfSw0MjQ6e1Q6LTF9LDQyNTp7VDotMX0sNDI2OntmOkR1fSw0Mjc6e2Y6T3V9LDQyODp7fSw0Mjk6e1Q6MX0sNDMwOntUOi0xfSw0MzE6e1Q6MX0sNDMyOntUOi0xfSw0MzM6e1Q6MX0sNDM0OntUOi0xfSw0MzU6e1Q6MX0sNDM2OntUOi0xfSw0Mzc6e1Q6MX0sNDM4OntUOi0xfSw0Mzk6e1Q6MX0sNDQwOntUOi0xfSw0NDE6e1Q6MX0sNDQyOntUOi0xfSw0NDM6e1Q6MX0sNDQ0OntUOi0xfSw0NDU6e1Q6MX0sNDQ2OntUOi0xfSw0NDc6e1Q6MX0sNDQ4OntUOi0xfSw0NDk6e1Q6MX0sNDUwOntUOi0xfSw0NTE6e1Q6MX0sNDUyOntUOi0xfSw0NTM6e1Q6MX0sNDU0OntUOi0xfSw0NTU6e1Q6MX0sNDU2OntUOi0xfSw0NTc6e1Q6MX0sNDU4OntUOi0xfSw0NTk6e1Q6MX0sNDYwOntUOi0xfSw0NjE6e1Q6MX0sNDYyOntUOi0xfSw0NjM6e1Q6MX0sNDY0OntUOi0xfSw0NjU6e1Q6MX0sNDY2OntUOi0xfSw0Njc6e1Q6MX0sNDY4OntUOi0xfSw0Njk6e1Q6MX0sNDcwOntUOi0xfSw0NzE6e30sNDcyOnt9LDQ3Mzp7VDoxfSw0NzQ6e1Q6LTF9LDQ3NTp7fSw0NzY6e2Y6SXV9LDQ3Nzp7fSw0Nzg6e30sNDc5OntUOjF9LDQ4MDp7VDotMX0sNDgxOntUOjF9LDQ4Mjp7VDotMX0sNDgzOntUOjF9LDQ4NDp7VDotMX0sNDg1OntmOml1fSw0ODY6e1Q6MX0sNDg3OntUOi0xfSw0ODg6e1Q6MX0sNDg5OntUOi0xfSw0OTA6e1Q6MX0sNDkxOntUOi0xfSw0OTI6e1Q6MX0sNDkzOntUOi0xfSw0OTQ6e2Y6Q3V9LDQ5NTp7VDoxfSw0OTY6e1Q6LTF9LDQ5Nzp7VDoxfSw0OTg6e1Q6LTF9LDQ5OTp7fSw1MDA6e1Q6MX0sNTAxOntUOi0xfSw1MDI6e1Q6MX0sNTAzOntUOi0xfSw1MDQ6e30sNTA1OntUOjF9LDUwNjp7VDotMX0sNTA3Ont9LDUwODp7VDoxfSw1MDk6e1Q6LTF9LDUxMDp7VDoxfSw1MTE6e1Q6LTF9LDUxMjp7fSw1MTM6e30sNTE0OntUOjF9LDUxNTp7VDotMX0sNTE2OntUOjF9LDUxNzp7VDotMX0sNTE4OntUOjF9LDUxOTp7VDotMX0sNTIwOntUOjF9LDUyMTp7VDotMX0sNTIyOnt9LDUyMzp7fSw1MjQ6e30sNTI1Ont9LDUyNjp7fSw1Mjc6e30sNTI4OntUOjF9LDUyOTp7VDotMX0sNTMwOntUOjF9LDUzMTp7VDotMX0sNTMyOntUOjF9LDUzMzp7VDotMX0sNTM0Ont9LDUzNTp7fSw1MzY6e30sNTM3Ont9LDUzODp7VDoxfSw1Mzk6e1Q6LTF9LDU0MDp7VDoxfSw1NDE6e1Q6LTF9LDU0Mjp7VDoxfSw1NDg6e30sNTQ5Ont9LDU1MDp7ZjpYdH0sNTUxOnt9LDU1Mjp7fSw1NTM6e30sNTU0OntUOjF9LDU1NTp7VDotMX0sNTU2OntUOjF9LDU1Nzp7VDotMX0sNTU4OntUOjF9LDU1OTp7VDotMX0sNTYwOntUOjF9LDU2MTp7VDotMX0sNTYyOnt9LDU2NDp7fSw1NjU6e1Q6MX0sNTY2OntUOi0xfSw1Njk6e1Q6MX0sNTcwOntUOi0xfSw1NzI6e30sNTczOntUOjF9LDU3NDp7VDotMX0sNTc3Ont9LDU3ODp7fSw1Nzk6e30sNTgwOnt9LDU4MTp7fSw1ODI6e30sNTgzOnt9LDU4NDp7fSw1ODU6e30sNTg2Ont9LDU4Nzp7fSw1ODg6e1Q6LTF9LDU4OTp7fSw1OTA6e1Q6MX0sNTkxOntUOi0xfSw1OTI6e1Q6MX0sNTkzOntUOi0xfSw1OTQ6e1Q6MX0sNTk1OntUOi0xfSw1OTY6e30sNTk3OntUOjF9LDU5ODp7VDotMX0sNTk5OntUOjF9LDYwMDp7VDotMX0sNjAxOntUOjF9LDYwMjp7VDotMX0sNjAzOntUOjF9LDYwNDp7VDotMX0sNjA1OntUOjF9LDYwNjp7VDotMX0sNjA3Ont9LDYwODp7VDoxfSw2MDk6e1Q6LTF9LDYxMDp7fSw2MTE6e1Q6MX0sNjEyOntUOi0xfSw2MTM6e1Q6MX0sNjE0OntUOi0xfSw2MTU6e1Q6MX0sNjE2OntUOi0xfSw2MTc6e1Q6MX0sNjE4OntUOi0xfSw2MTk6e1Q6MX0sNjIwOntUOi0xfSw2MjU6e30sNjI2OntUOjF9LDYyNzp7VDotMX0sNjI4OntUOjF9LDYyOTp7VDotMX0sNjMwOntUOjF9LDYzMTp7VDotMX0sNjMyOntmOnMxfSw2MzM6e1Q6MX0sNjM0OntUOi0xfSw2MzU6e1Q6MSxmOm4xfSw2MzY6e1Q6LTF9LDYzNzp7ZjpTY30sNjM4OntUOjF9LDYzOTp7fSw2NDA6e1Q6LTF9LDY0MTp7VDoxfSw2NDI6e1Q6LTF9LDY0Mzp7VDoxfSw2NDQ6e30sNjQ1OntUOi0xfSw2NDY6e1Q6MX0sNjQ4OntUOjF9LDY0OTp7fSw2NTA6e1Q6LTF9LDY1MTp7ZjpIdX0sNjUyOnt9LDY1Mzp7VDoxfSw2NTQ6e1Q6LTF9LDY1NTp7VDoxfSw2NTY6e1Q6LTF9LDY1Nzp7VDoxfSw2NTg6e1Q6LTF9LDY1OTp7fSw2NjA6e1Q6MX0sNjYxOnt9LDY2Mjp7VDotMX0sNjYzOnt9LDY2NDp7VDoxfSw2NjU6e30sNjY2OntUOi0xfSw2Njc6e30sNjY4Ont9LDY2OTp7fSw2NzE6e1Q6MX0sNjcyOntUOi0xfSw2NzM6e1Q6MX0sNjc0OntUOi0xfSw2NzU6e30sNjc2Ont9LDY3Nzp7fSw2Nzg6e30sNjc5Ont9LDY4MDp7fSw2ODE6e30sMTAyNDp7fSwxMDI1Ont9LDEwMjY6e1Q6MX0sMTAyNzp7VDotMX0sMTAyODp7VDoxfSwxMDI5OntUOi0xfSwxMDMwOnt9LDEwMzE6e1Q6MX0sMTAzMjp7VDotMX0sMTAzMzp7VDoxfSwxMDM0OntUOi0xfSwxMDM1Ont9LDEwMzY6e30sMTAzNzp7fSwxMDM4OntUOjF9LDEwMzk6e1Q6LTF9LDEwNDA6e30sMTA0MTp7VDoxfSwxMDQyOntUOi0xfSwxMDQzOnt9LDEwNDQ6e30sMTA0NTp7fSwxMDQ2OntUOjF9LDEwNDc6e1Q6LTF9LDEwNDg6e1Q6MX0sMTA0OTp7VDotMX0sMTA1MDp7fSwxMDUxOntUOjF9LDEwNTI6e1Q6MX0sMTA1Mzp7ZjpMdX0sMTA1NDp7VDoxfSwxMDU1Ont9LDEwNTY6e1Q6MX0sMTA1Nzp7VDotMX0sMTA1ODp7VDoxfSwxMDU5OntUOi0xfSwxMDYxOnt9LDEwNjI6e1Q6MX0sMTA2Mzp7VDotMX0sMTA2NDp7VDoxfSwxMDY1OntUOi0xfSwxMDY2OntUOjF9LDEwNjc6e1Q6LTF9LDEwNjg6e1Q6MX0sMTA2OTp7VDotMX0sMTA3MDp7VDoxfSwxMDcxOntUOi0xfSwxMDcyOntUOjF9LDEwNzM6e1Q6LTF9LDEwNzU6e1Q6MX0sMTA3Njp7VDotMX0sMTA3Nzp7VDoxfSwxMDc4OntUOi0xfSwxMDc5OntUOjF9LDEwODA6e1Q6LTF9LDEwODE6e1Q6MX0sMTA4Mjp7VDotMX0sMTA4Mzp7VDoxfSwxMDg0OntUOi0xfSwxMDg1Ont9LDEwODY6e1Q6MX0sMTA4Nzp7VDotMX0sMTA4ODp7VDoxfSwxMDg5OntUOi0xfSwxMDkwOntUOjF9LDEwOTE6e1Q6LTF9LDEwOTI6e1Q6MX0sMTA5Mzp7VDotMX0sMTA5NDp7VDoxfSwxMDk1OntUOi0xfSwxMDk2Ont9LDEwOTc6e1Q6MX0sMTA5ODp7fSwxMDk5OntUOi0xfSwxMTAwOntUOjF9LDExMDE6e1Q6LTF9LDExMDI6e30sMTEwMzp7fSwxMTA0Ont9LDExMDU6e30sMTExMTp7fSwxMTEyOnt9LDExMTM6e1Q6MX0sMTExNDp7VDotMX0sMTExNTp7VDoxfSwxMTE2OntUOi0xfSwxMTE3Ont9LDExMTg6e1Q6MX0sMTExOTp7VDotMX0sMTEyMDp7VDoxfSwxMTIxOntUOi0xfSwxMTIyOntUOjF9LDExMjM6e1Q6LTF9LDExMjQ6e1Q6MX0sMTEyNTp7VDotMX0sMTEyNjp7fSwxMTI4OntUOjF9LDExMjk6e1Q6LTF9LDExMzA6e30sMTEzMTp7VDoxfSwxMTMyOntUOi0xfSwxMTMzOntUOjF9LDExMzQ6e1Q6LTF9LDExMzU6e1Q6MX0sMTEzNjp7VDotMX0sMTEzNzp7VDoxfSwxMTM4OntUOi0xfSwxMTM5OntUOjF9LDExNDA6e1Q6LTF9LDExNDE6e30sMTE0Mjp7VDoxfSwxMTQzOntUOi0xfSwxMTQ0OntUOjF9LDExNDU6e1Q6LTF9LDExNDY6e30sMTE0Nzp7VDoxfSwxMTQ4OntUOi0xfSwxMTQ5OntUOjF9LDExNTA6e1Q6LTF9LDExNTI6e1Q6MX0sMTE1Mzp7VDotMX0sMTE1NDp7VDotMX0sMTE1NTp7VDotMX0sMTE1Njp7VDotMX0sMTE1Nzp7VDoxfSwxMTU4OntUOi0xfSwxMTU5OntUOjF9LDExNjA6e1Q6LTF9LDExNjE6e1Q6MX0sMTE2Mjp7VDotMX0sMTE2Mzp7VDoxfSwxMTY0OntUOi0xfSwxMTY1OntUOjF9LDExNjY6e1Q6LTF9LDExNjc6e1Q6MX0sMTE2ODp7VDotMX0sMTE2OTp7VDoxfSwxMTcwOntUOi0xfSwxMTcxOnt9LDExNzI6e1Q6MX0sMTE3Mzp7VDotMX0sMTE3Nzp7fSwxMTc4OntUOjF9LDExODA6e30sMTE4MTp7fSwxMTgyOnt9LDIwNDg6e1Q6MX0sMjA0OTp7VDotMX0sMjA1MDp7fSwyMDUxOntUOjF9LDIwNTI6e1Q6LTF9LDIwNTM6e30sMjA1NDp7fSwyMDU1OntUOjF9LDIwNTY6e1Q6LTF9LDIwNTc6e1Q6MX0sMjA1ODp7VDotMX0sMjA2MDp7fSwyMDY3Ont9LDIwNjg6e1Q6MX0sMjA2OTp7VDotMX0sMjA3MDp7fSwyMDcxOnt9LDIwNzI6e1Q6MX0sMjA3Mzp7VDotMX0sMjA3NTp7fSwyMDc2Ont9LDIwNzc6e1Q6MX0sMjA3ODp7VDotMX0sMjA3OTp7fSwyMDgwOntUOjF9LDIwODE6e1Q6LTF9LDIwODI6e30sMjA4Mzp7VDoxfSwyMDg0OntUOi0xfSwyMDg1OntUOjF9LDIwODY6e1Q6LTF9LDIwODc6e1Q6MX0sMjA4ODp7VDotMX0sMjA4OTp7VDoxfSwyMDkwOntUOi0xfSwyMDkxOnt9LDIwOTI6e30sMjA5Mzp7VDoxfSwyMDk0OntUOi0xfSwyMDk1Ont9LDIwOTY6e1Q6MX0sMjA5Nzp7VDotMX0sMjA5ODp7VDoxfSwyMDk5OntUOi0xfSwyMTAwOntUOjF9LDIxMDE6e1Q6LTF9LDIxMDI6e30sMjEwMzp7VDoxfSwyMTA0OntUOi0xfSwyMTA1Ont9LDIxMDY6e1Q6MX0sMjEwNzp7VDotMX0sMjEwODp7fSwyMTA5OntUOjF9LDIxMTA6e1Q6LTF9LDIxMTE6e1Q6MX0sMjExMjp7VDotMX0sMjExMzp7VDoxfSwyMTE0OntUOi0xfSwyMTE1Ont9LDIxMTY6e30sMjExNzp7fSwyMTE4OntUOjF9LDIxMTk6e1Q6LTF9LDIxMjA6e30sMjEyMTp7VDoxfSwyMTIyOntUOi0xfSwyMTIzOntUOjF9LDIxMjQ6e1Q6LTF9LDIxMjU6e30sMjEyNjp7VDoxfSwyMTI3OntUOi0xfSwyMTI4Ont9LDIxMjk6e1Q6MX0sMjEzMDp7VDotMX0sMjEzMTp7VDoxfSwyMTMyOntUOi0xfSwyMTMzOntUOjF9LDIxMzQ6e30sMjEzNTp7fSwyMTM2Ont9LDIxMzc6e1Q6MX0sMjEzODp7VDotMX0sMjEzOTp7VDoxfSwyMTQwOntUOi0xfSwyMTQxOnt9LDMwNzI6e30sMzA3Mzp7fSw0MDk2OntUOjF9LDQwOTc6e1Q6LTF9LDUwMDI6e1Q6MX0sNTAwMzp7VDotMX0sNTA4MTp7VDoxfSw1MDgyOntUOi0xfSw1MDgzOnt9LDUwODQ6e1Q6MX0sNTA4NTp7VDotMX0sNTA4Njp7VDoxfSw1MDg3OntUOi0xfSw1MDg4Ont9LDUwODk6e30sNTA5MDp7fSw1MDkyOntUOjF9LDUwOTM6e1Q6LTF9LDUwOTQ6e30sNTA5NTp7VDoxfSw1MDk2OntUOi0xfSw1MDk3Ont9LDUwOTk6e30sNjU1MzU6e246IiJ9fSxjMD17Njp7ZjphMH0sMTA6e2Y6JHJ9LDEyOntmOk1lfSwxMzp7ZjpNZX0sMTQ6e2Y6UmV9LDE1OntmOlJlfSwxNjp7ZjpKZX0sMTc6e2Y6UmV9LDE4OntmOlJlfSwxOTp7ZjpNZX0sMjA6e2Y6c3N9LDIxOntmOnNzfSwyMzp7Zjpmc30sMjQ6e2Y6Y3N9LDI1OntmOlJlfSwyNjp7fSwyNzp7fSwyODp7Zjpyb30sMjk6e30sMzQ6e2Y6UmV9LDM1OntmOmlzfSwzODp7ZjpKZX0sMzk6e2Y6SmV9LDQwOntmOkplfSw0MTp7ZjpKZX0sNDI6e2Y6UmV9LDQzOntmOlJlfSw0Nzp7ZjppbH0sNDk6e2Y6TWZ9LDUxOntmOk1lfSw2MDp7fSw2MTp7ZjpOZn0sNjQ6e2Y6UmV9LDY1OntmOkxmfSw2Njp7ZjpNZX0sNzc6e30sODA6e30sODE6e30sODI6e30sODU6e2Y6TWV9LDg5Ont9LDkwOnt9LDkxOnt9LDkyOntmOkZmfSw5Mzp7Zjp0b30sOTQ6e30sOTU6e2Y6UmV9LDk2Ont9LDk3Ont9LDk5OntmOlJlfSwxMjU6e2Y6bHN9LDEyODp7Zjp6Zn0sMTI5OntmOlNmfSwxMzA6e2Y6TWV9LDEzMTp7ZjpSZX0sMTMyOntmOlJlfSwxMzM6e2Y6Q2Z9LDEzNDp7fSwxNDA6e2Y6b299LDE0MTp7ZjpNZX0sMTQ0Ont9LDE0Njp7Zjpob30sMTUxOnt9LDE1Mjp7fSwxNTM6e30sMTU0Ont9LDE1NTp7fSwxNTY6e2Y6TWV9LDE1Nzp7fSwxNTg6e30sMTYwOntmOmdvfSwxNjE6e2Y6eG99LDE3NDp7fSwxNzU6e30sMTc2Ont9LDE3Nzp7fSwxNzg6e30sMTgwOnt9LDE4MTp7fSwxODI6e30sMTg0Ont9LDE4NTp7fSwxODk6e2Y6V2Z9LDE5MDp7ZjpHZn0sMTkzOntmOiRyfSwxOTc6e30sMTk4Ont9LDE5OTp7fSwyMDA6e30sMjAxOnt9LDIwMjp7ZjpSZX0sMjAzOnt9LDIwNDp7fSwyMDU6e30sMjA2Ont9LDIwNzp7fSwyMDg6e30sMjA5Ont9LDIxMDp7fSwyMTE6e30sMjEzOnt9LDIxNTp7fSwyMTY6e30sMjE3Ont9LDIxODp7ZjpNZX0sMjIwOnt9LDIyMTp7ZjpSZX0sMjIyOnt9LDIyNDp7ZjokZn0sMjI1OntmOkFmfSwyMjY6e2Y6JHJ9LDIyNzp7fSwyMjk6e2Y6YW99LDIzMzp7fSwyMzU6e30sMjM2Ont9LDIzNzp7fSwyMzk6e30sMjQwOnt9LDI0MTp7fSwyNDI6e30sMjQ0Ont9LDI0NTp7fSwyNDY6e30sMjQ3Ont9LDI0ODp7fSwyNDk6e30sMjUxOnt9LDI1Mjp7Zjp5Zn0sMjUzOntmOkJmfSwyNTU6e2Y6RGZ9LDI1Njp7fSwyNTk6e30sMjkwOnt9LDMxMTp7fSwzMTI6e30sMzE1Ont9LDMxNzp7ZjpKbn0sMzE4Ont9LDMxOTp7fSwzMjA6e30sMzMwOnt9LDMzMTp7fSwzMzM6e30sMzM0Ont9LDMzNTp7fSwzMzY6e30sMzM3Ont9LDMzODp7fSwzMzk6e30sMzQwOnt9LDM1MTp7fSwzNTI6e2Y6UmV9LDM1Mzp7Zjokcn0sNDAxOnt9LDQwMjp7fSw0MDM6e30sNDA0Ont9LDQwNTp7fSw0MDY6e30sNDA3Ont9LDQwODp7fSw0MjU6e30sNDI2Ont9LDQyNzp7fSw0Mjg6e30sNDI5Ont9LDQzMDp7ZjpZZn0sNDMxOntmOlJlfSw0MzI6e30sNDMzOnt9LDQzNDp7fSw0Mzc6e30sNDM4OntmOmlvfSw0Mzk6e2Y6UmV9LDQ0MDp7Zjpjb30sNDQxOnt9LDQ0Mjp7ZjpCYX0sNDQzOnt9LDQ0NDp7ZjpNZX0sNDQ1Ont9LDQ0Njp7fSw0NDg6e2Y6JHJ9LDQ0OTp7ZjpJZixyOjJ9LDQ1MDp7Zjokcn0sNTEyOntmOnRzfSw1MTM6e2Y6cG99LDUxNTp7ZjpLZn0sNTE2OntmOmJmfSw1MTc6e2Y6bnN9LDUxOTp7Zjptb30sNTIwOntmOk9mfSw1MjM6e30sNTQ1OntmOm9zfSw1NDk6e2Y6YXN9LDU2Njp7fSw1NzQ6e2Y6UGZ9LDYzODp7ZjpWZn0sNjU5Ont9LDEwNDg6e30sMTA1NDp7ZjpVZn0sMTA4NDp7fSwxMjEyOntmOnFmfSwyMDQ4OntmOmZvfSwyMDQ5Ont9LDIwNTA6e30sMjA1MTp7fSwyMDUyOnt9LDIwNTM6e30sMjA1NDp7fSwyMDU1Ont9LDIwNTY6e30sMjA1Nzp7Zjp2dH0sMjA1ODp7fSwyMDU5Ont9LDIwNjA6e30sMjA2MTp7fSwyMDYyOnt9LDIwNjM6e30sMjA2NDp7fSwyMDY2Ont9LDIwNjc6e30sMjEyODp7fSwyMTI5Ont9LDIxMzA6e30sMjEzMTp7fSwyMTMyOnt9LDIxMzM6e30sMjEzNDp7fSwyMTM1Ont9LDIxMzY6e30sMjEzNzp7fSwyMTM4Ont9LDIxNDY6e30sMjE0Nzp7cjoxMn0sMjE0ODp7fSwyMTQ5Ont9LDIxNTA6e30sMjE1MTp7Zjokcn0sMjE1Mjp7fSwyMTU0Ont9LDIxNTU6e30sMjE1Njp7fSwyMTYxOnt9LDIxNjI6e30sMjE2NDp7fSwyMTY1Ont9LDIxNjY6e30sMjE2Nzp7fSwyMTY4Ont9LDIxNjk6e30sMjE3MDp7fSwyMTcxOnt9LDIxNzI6e2Y6dW8scjoxMn0sMjE3Mzp7ZjpHbCxyOjEyfSwyMTc0Ont9LDIxNzU6e30sMjE4MDp7fSwyMTgxOnt9LDIxODI6e30sMjE4Mzp7fSwyMTg0Ont9LDIxODU6e30sMjE4Njp7fSwyMTg3Ont9LDIxODg6e2Y6UmUscjoxMn0sMjE4OTp7fSwyMTkwOntyOjEyfSwyMTkxOnt9LDIxOTI6e30sMjE5NDp7fSwyMTk1Ont9LDIxOTY6e2Y6WmYscjoxMn0sMjE5Nzp7fSwyMTk4OntmOkJsLHI6MTJ9LDIxOTk6e30sMjIwMDp7fSwyMjAxOnt9LDIyMDI6e2Y6UWYscjoxMn0sMjIwMzp7Zjokcn0sMjIwNDp7fSwyMjA1Ont9LDIyMDY6e30sMjIwNzp7fSwyMjExOntmOlJmfSwyMjEyOnt9LDIyMTM6e30sMjIxNDp7fSwyMjE1Ont9LDQwOTc6e30sNDA5ODp7fSw0MDk5Ont9LDQxMDI6e30sNDEwMzp7fSw0MTA1Ont9LDQxMDY6e30sNDEwNzp7fSw0MTA4Ont9LDQxMDk6e30sNDExNjp7fSw0MTE3Ont9LDQxMTg6e30sNDExOTp7fSw0MTIwOnt9LDQxMjE6e30sNDEyMjp7fSw0MTIzOnt9LDQxMjQ6e30sNDEyNTp7fSw0MTI2Ont9LDQxMjc6e30sNDEyODp7fSw0MTI5Ont9LDQxMzA6e30sNDEzMjp7fSw0MTMzOnt9LDQxMzQ6e2Y6TWV9LDQxMzU6e30sNDE0Njp7fSw0MTQ3Ont9LDQxNDg6e30sNDE0OTp7fSw0MTU0Ont9LDQxNTY6e30sNDE1Nzp7fSw0MTU4Ont9LDQxNTk6e30sNDE2MDp7fSw0MTYxOnt9LDQxNjM6e30sNDE2NDp7Zjp2b30sNDE2NTp7fSw0MTY2Ont9LDQxNjg6e30sNDE3MDp7fSw0MTcxOnt9LDQxNzQ6e30sNDE3NTp7fSw0MTc2Ont9LDQxNzc6e30sNDE4Nzp7fSw0MTg4OntmOmxvfSw0MTg5Ont9LDQxOTE6e30sNDE5Mjp7fSw0MTkzOnt9LDQxOTQ6e30sNDE5NTp7fSw0MTk2Ont9LDQxOTc6e30sNDE5ODp7fSw0MTk5Ont9LDQyMDA6e30sMDp7Zjp0c30sMTp7fSwyOntmOmtvfSwzOntmOlRvfSw0OntmOkVvfSw1OntmOm5zfSw3OntmOndvfSw4Ont9LDk6e2Y6dnR9LDExOnt9LDIyOntmOk1lfSwzMDp7ZjpIZn0sMzE6e30sMzI6e30sMzM6e2Y6b3N9LDM2Ont9LDM3OntmOmFzfSw1MDp7ZjpBb30sNjI6e30sNTI6e30sNjc6e30sNjg6e2Y6TWV9LDY5Ont9LDg2Ont9LDEyNjp7fSwxMjc6e2Y6X299LDEzNTp7fSwxMzY6e30sMTM3Ont9LDE0NTp7fSwxNDg6e30sMTQ5Ont9LDE1MDp7fSwxNjk6e30sMTcxOnt9LDE4ODp7fSwxOTE6e30sMTkyOnt9LDE5NDp7fSwxOTU6e30sMjE0OntmOkZvfSwyMjM6e30sMjM0Ont9LDM1NDp7fSw0MjE6e30sNTE4OntmOmEwfSw1MjE6e2Y6dnR9LDUzNjp7Zjpjc30sNTQ3OntmOmlzfSw1NjE6e30sNTc5Ont9LDEwMzA6e2Y6YTB9LDEwMzM6e2Y6dnR9LDEwOTE6e30sMjE1Nzp7fSwyMTYzOnt9LDIxNzc6e30sMjI0MDp7fSwyMjQxOnt9LDIyNDI6e30sMjI0Mzp7fSwyMjQ0Ont9LDIyNDU6e30sMjI0Njp7fSwyMjQ3Ont9LDIyNDg6e30sMjI0OTp7fSwyMjUwOnt9LDIyNTE6e30sMjI2Mjp7cjoxMn0sMjkyODI6e319O2Z1bmN0aW9uIEFyKGUsYSxyLG4pe3ZhciB0PWE7aWYoIWlzTmFOKHQpKXt2YXIgcz0ocnx8W10pLmxlbmd0aHx8MCxpPWUubmV4dCg0KTtpLndyaXRlX3NoaWZ0KDIsdCksaS53cml0ZV9zaGlmdCgyLHMpLHM+MCYmRG4ocikmJmUucHVzaChyKX19ZnVuY3Rpb24genMoZSxhKXt2YXIgcj1hfHx7fSxuPXIuZGVuc2U/W106e307ZT1lLnJlcGxhY2UoLzwhLS0uKj8tLT4vZywiIik7dmFyIHQ9ZS5tYXRjaCgvPHRhYmxlL2kpO2lmKCF0KXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBIVE1MOiBjb3VsZCBub3QgZmluZCA8dGFibGU+Iik7dmFyIHM9ZS5tYXRjaCgvPFwvdGFibGUvaSksaT10LmluZGV4LGM9cyYmcy5pbmRleHx8ZS5sZW5ndGgsZj16aShlLnNsaWNlKGksYyksLyg6Pzx0cltePl0qPikvaSwiPHRyPiIpLG89LTEsbD0wLGg9MCx4PTAsZD17czp7cjoxZTcsYzoxZTd9LGU6e3I6MCxjOjB9fSx2PVtdO2ZvcihpPTA7aTxmLmxlbmd0aDsrK2kpe3ZhciB1PWZbaV0udHJpbSgpLGc9dS5zbGljZSgwLDMpLnRvTG93ZXJDYXNlKCk7aWYoZz09Ijx0ciIpe2lmKCsrbyxyLnNoZWV0Um93cyYmci5zaGVldFJvd3M8PW8pey0tbzticmVha31sPTA7Y29udGludWV9aWYoIShnIT0iPHRkIiYmZyE9Ijx0aCIpKXt2YXIgRj11LnNwbGl0KC88XC90W2RoXT4vaSk7Zm9yKGM9MDtjPEYubGVuZ3RoOysrYyl7dmFyIHk9RltjXS50cmltKCk7aWYoeS5tYXRjaCgvPHRbZGhdL2kpKXtmb3IodmFyIF89eSxOPTA7Xy5jaGFyQXQoMCk9PSI8IiYmKE49Xy5pbmRleE9mKCI+IikpPi0xOylfPV8uc2xpY2UoTisxKTtmb3IodmFyIGI9MDtiPHYubGVuZ3RoOysrYil7dmFyIEk9dltiXTtJLnMuYz09bCYmSS5zLnI8byYmbzw9SS5lLnImJihsPUkuZS5jKzEsYj0tMSl9dmFyIEE9b2UoeS5zbGljZSgwLHkuaW5kZXhPZigiPiIpKSk7eD1BLmNvbHNwYW4/K0EuY29sc3BhbjoxLCgoaD0rQS5yb3dzcGFuKT4xfHx4PjEpJiZ2LnB1c2goe3M6e3I6byxjOmx9LGU6e3I6bysoaHx8MSktMSxjOmwreC0xfX0pO3ZhciBWPUEudHx8QVsiZGF0YS10Il18fCIiO2lmKCFfLmxlbmd0aCl7bCs9eDtjb250aW51ZX1pZihfPWxuKF8pLGQucy5yPm8mJihkLnMucj1vKSxkLmUucjxvJiYoZC5lLnI9byksZC5zLmM+bCYmKGQucy5jPWwpLGQuZS5jPGwmJihkLmUuYz1sKSwhXy5sZW5ndGgpe2wrPXg7Y29udGludWV9dmFyIEQ9e3Q6InMiLHY6X307ci5yYXd8fCFfLnRyaW0oKS5sZW5ndGh8fFY9PSJzInx8KF89PT0iVFJVRSI/RD17dDoiYiIsdjohMH06Xz09PSJGQUxTRSI/RD17dDoiYiIsdjohMX06aXNOYU4oa3IoXykpP2lzTmFOKGRhKF8pLmdldERhdGUoKSl8fChEPXt0OiJkIix2OldlKF8pfSxyLmNlbGxEYXRlc3x8KEQ9e3Q6Im4iLHY6dHIoRC52KX0pLEQuej1yLmRhdGVORnx8ZGVbMTRdKTpEPXt0OiJuIix2OmtyKF8pfSksci5kZW5zZT8obltvXXx8KG5bb109W10pLG5bb11bbF09RCk6blt1ZSh7cjpvLGM6bH0pXT1ELGwrPXh9fX19cmV0dXJuIG5bIiFyZWYiXT1fZShkKSx2Lmxlbmd0aCYmKG5bIiFtZXJnZXMiXT12KSxufWZ1bmN0aW9uIEF4KGUsYSxyLG4pe2Zvcih2YXIgdD1lWyIhbWVyZ2VzIl18fFtdLHM9W10saT1hLnMuYztpPD1hLmUuYzsrK2kpe2Zvcih2YXIgYz0wLGY9MCxvPTA7bzx0Lmxlbmd0aDsrK28paWYoISh0W29dLnMucj5yfHx0W29dLnMuYz5pKSYmISh0W29dLmUucjxyfHx0W29dLmUuYzxpKSl7aWYodFtvXS5zLnI8cnx8dFtvXS5zLmM8aSl7Yz0tMTticmVha31jPXRbb10uZS5yLXRbb10ucy5yKzEsZj10W29dLmUuYy10W29dLnMuYysxO2JyZWFrfWlmKCEoYzwwKSl7dmFyIGw9dWUoe3IsYzppfSksaD1uLmRlbnNlPyhlW3JdfHxbXSlbaV06ZVtsXSx4PWgmJmgudiE9bnVsbCYmKGguaHx8UHQoaC53fHwoTHIoaCksaC53KXx8IiIpKXx8IiIsZD17fTtjPjEmJihkLnJvd3NwYW49YyksZj4xJiYoZC5jb2xzcGFuPWYpLG4uZWRpdGFibGU/eD0nPHNwYW4gY29udGVudGVkaXRhYmxlPSJ0cnVlIj4nK3grIjwvc3Bhbj4iOmgmJihkWyJkYXRhLXQiXT1oJiZoLnR8fCJ6IixoLnYhPW51bGwmJihkWyJkYXRhLXYiXT1oLnYpLGgueiE9bnVsbCYmKGRbImRhdGEteiJdPWgueiksaC5sJiYoaC5sLlRhcmdldHx8IiMiKS5jaGFyQXQoMCkhPSIjIiYmKHg9JzxhIGhyZWY9IicraC5sLlRhcmdldCsnIj4nK3grIjwvYT4iKSksZC5pZD0obi5pZHx8InNqcyIpKyItIitsLHMucHVzaChmYygidGQiLHgsZCkpfX12YXIgdj0iPHRyPiI7cmV0dXJuIHYrcy5qb2luKCIiKSsiPC90cj4ifXZhciBGeD0nPGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNldD0idXRmLTgiLz48dGl0bGU+U2hlZXRKUyBUYWJsZSBFeHBvcnQ8L3RpdGxlPjwvaGVhZD48Ym9keT4nLFN4PSI8L2JvZHk+PC9odG1sPiI7ZnVuY3Rpb24gQ3goZSxhKXt2YXIgcj1lLm1hdGNoKC88dGFibGVbXHNcU10qPz5bXHNcU10qPzxcL3RhYmxlPi9naSk7aWYoIXJ8fHIubGVuZ3RoPT0wKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBIVE1MOiBjb3VsZCBub3QgZmluZCA8dGFibGU+Iik7aWYoci5sZW5ndGg9PTEpcmV0dXJuIFhyKHpzKHJbMF0sYSksYSk7dmFyIG49bTAoKTtyZXR1cm4gci5mb3JFYWNoKGZ1bmN0aW9uKHQscyl7XzAobix6cyh0LGEpLCJTaGVldCIrKHMrMSkpfSksbn1mdW5jdGlvbiB5eChlLGEscil7dmFyIG49W107cmV0dXJuIG4uam9pbigiIikrIjx0YWJsZSIrKHImJnIuaWQ/JyBpZD0iJytyLmlkKyciJzoiIikrIj4ifWZ1bmN0aW9uIER4KGUsYSl7dmFyIHI9YXx8e30sbj1yLmhlYWRlciE9bnVsbD9yLmhlYWRlcjpGeCx0PXIuZm9vdGVyIT1udWxsP3IuZm9vdGVyOlN4LHM9W25dLGk9cGEoZVsiIXJlZiJdKTtyLmRlbnNlPUFycmF5LmlzQXJyYXkoZSkscy5wdXNoKHl4KGUsaSxyKSk7Zm9yKHZhciBjPWkucy5yO2M8PWkuZS5yOysrYylzLnB1c2goQXgoZSxpLGMscikpO3JldHVybiBzLnB1c2goIjwvdGFibGU+Iit0KSxzLmpvaW4oIiIpfWZ1bmN0aW9uIEtzKGUsYSxyKXt2YXIgbj1yfHx7fSx0PTAscz0wO2lmKG4ub3JpZ2luIT1udWxsKWlmKHR5cGVvZiBuLm9yaWdpbj09Im51bWJlciIpdD1uLm9yaWdpbjtlbHNle3ZhciBpPXR5cGVvZiBuLm9yaWdpbj09InN0cmluZyI/bnIobi5vcmlnaW4pOm4ub3JpZ2luO3Q9aS5yLHM9aS5jfXZhciBjPWEuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRyIiksZj1NYXRoLm1pbihuLnNoZWV0Um93c3x8MWU3LGMubGVuZ3RoKSxvPXtzOntyOjAsYzowfSxlOntyOnQsYzpzfX07aWYoZVsiIXJlZiJdKXt2YXIgbD1wYShlWyIhcmVmIl0pO28ucy5yPU1hdGgubWluKG8ucy5yLGwucy5yKSxvLnMuYz1NYXRoLm1pbihvLnMuYyxsLnMuYyksby5lLnI9TWF0aC5tYXgoby5lLnIsbC5lLnIpLG8uZS5jPU1hdGgubWF4KG8uZS5jLGwuZS5jKSx0PT0tMSYmKG8uZS5yPXQ9bC5lLnIrMSl9dmFyIGg9W10seD0wLGQ9ZVsiIXJvd3MiXXx8KGVbIiFyb3dzIl09W10pLHY9MCx1PTAsZz0wLEY9MCx5PTAsXz0wO2ZvcihlWyIhY29scyJdfHwoZVsiIWNvbHMiXT1bXSk7djxjLmxlbmd0aCYmdTxmOysrdil7dmFyIE49Y1t2XTtpZihqcyhOKSl7aWYobi5kaXNwbGF5KWNvbnRpbnVlO2RbdV09e2hpZGRlbjohMH19dmFyIGI9Ti5jaGlsZHJlbjtmb3IoZz1GPTA7ZzxiLmxlbmd0aDsrK2cpe3ZhciBJPWJbZ107aWYoIShuLmRpc3BsYXkmJmpzKEkpKSl7dmFyIEE9SS5oYXNBdHRyaWJ1dGUoImRhdGEtdiIpP0kuZ2V0QXR0cmlidXRlKCJkYXRhLXYiKTpJLmhhc0F0dHJpYnV0ZSgidiIpP0kuZ2V0QXR0cmlidXRlKCJ2Iik6bG4oSS5pbm5lckhUTUwpLFY9SS5nZXRBdHRyaWJ1dGUoImRhdGEteiIpfHxJLmdldEF0dHJpYnV0ZSgieiIpO2Zvcih4PTA7eDxoLmxlbmd0aDsrK3gpe3ZhciBEPWhbeF07RC5zLmM9PUYrcyYmRC5zLnI8dSt0JiZ1K3Q8PUQuZS5yJiYoRj1ELmUuYysxLXMseD0tMSl9Xz0rSS5nZXRBdHRyaWJ1dGUoImNvbHNwYW4iKXx8MSwoKHk9K0kuZ2V0QXR0cmlidXRlKCJyb3dzcGFuIil8fDEpPjF8fF8+MSkmJmgucHVzaCh7czp7cjp1K3QsYzpGK3N9LGU6e3I6dSt0Kyh5fHwxKS0xLGM6RitzKyhffHwxKS0xfX0pO3ZhciB6PXt0OiJzIix2OkF9LEc9SS5nZXRBdHRyaWJ1dGUoImRhdGEtdCIpfHxJLmdldEF0dHJpYnV0ZSgidCIpfHwiIjtBIT1udWxsJiYoQS5sZW5ndGg9PTA/ei50PUd8fCJ6IjpuLnJhd3x8QS50cmltKCkubGVuZ3RoPT0wfHxHPT0icyJ8fChBPT09IlRSVUUiP3o9e3Q6ImIiLHY6ITB9OkE9PT0iRkFMU0UiP3o9e3Q6ImIiLHY6ITF9OmlzTmFOKGtyKEEpKT9pc05hTihkYShBKS5nZXREYXRlKCkpfHwoej17dDoiZCIsdjpXZShBKX0sbi5jZWxsRGF0ZXN8fCh6PXt0OiJuIix2OnRyKHoudil9KSx6Lno9bi5kYXRlTkZ8fGRlWzE0XSk6ej17dDoibiIsdjprcihBKX0pKSx6Lno9PT12b2lkIDAmJlYhPW51bGwmJih6Lno9Vik7dmFyIFA9IiIsSj1JLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJBIik7aWYoSiYmSi5sZW5ndGgpZm9yKHZhciBmZT0wO2ZlPEoubGVuZ3RoJiYhKEpbZmVdLmhhc0F0dHJpYnV0ZSgiaHJlZiIpJiYoUD1KW2ZlXS5nZXRBdHRyaWJ1dGUoImhyZWYiKSxQLmNoYXJBdCgwKSE9IiMiKSk7KytmZSk7UCYmUC5jaGFyQXQoMCkhPSIjIiYmKHoubD17VGFyZ2V0OlB9KSxuLmRlbnNlPyhlW3UrdF18fChlW3UrdF09W10pLGVbdSt0XVtGK3NdPXopOmVbdWUoe2M6RitzLHI6dSt0fSldPXosby5lLmM8RitzJiYoby5lLmM9RitzKSxGKz1ffX0rK3V9cmV0dXJuIGgubGVuZ3RoJiYoZVsiIW1lcmdlcyJdPShlWyIhbWVyZ2VzIl18fFtdKS5jb25jYXQoaCkpLG8uZS5yPU1hdGgubWF4KG8uZS5yLHUtMSt0KSxlWyIhcmVmIl09X2UobyksdT49ZiYmKGVbIiFmdWxscmVmIl09X2UoKG8uZS5yPWMubGVuZ3RoLXYrdS0xK3QsbykpKSxlfWZ1bmN0aW9uIFlzKGUsYSl7dmFyIHI9YXx8e30sbj1yLmRlbnNlP1tdOnt9O3JldHVybiBLcyhuLGUsYSl9ZnVuY3Rpb24gT3goZSxhKXtyZXR1cm4gWHIoWXMoZSxhKSxhKX1mdW5jdGlvbiBqcyhlKXt2YXIgYT0iIixyPVJ4KGUpO3JldHVybiByJiYoYT1yKGUpLmdldFByb3BlcnR5VmFsdWUoImRpc3BsYXkiKSksYXx8KGE9ZS5zdHlsZSYmZS5zdHlsZS5kaXNwbGF5KSxhPT09Im5vbmUifWZ1bmN0aW9uIFJ4KGUpe3JldHVybiBlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcmJnR5cGVvZiBlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZT09ImZ1bmN0aW9uIj9lLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZTp0eXBlb2YgZ2V0Q29tcHV0ZWRTdHlsZT09ImZ1bmN0aW9uIj9nZXRDb21wdXRlZFN0eWxlOm51bGx9ZnVuY3Rpb24gSXgoZSl7dmFyIGE9ZS5yZXBsYWNlKC9bXHRcclxuXS9nLCIgIikudHJpbSgpLnJlcGxhY2UoLyArL2csIiAiKS5yZXBsYWNlKC88dGV4dDpzXC8+L2csIiAiKS5yZXBsYWNlKC88dGV4dDpzIHRleHQ6Yz0iKFxkKykiXC8+L2csZnVuY3Rpb24obix0KXtyZXR1cm4gQXJyYXkocGFyc2VJbnQodCwxMCkrMSkuam9pbigiICIpfSkucmVwbGFjZSgvPHRleHQ6dGFiW14+XSpcLz4vZywiCSIpLnJlcGxhY2UoLzx0ZXh0OmxpbmUtYnJlYWtcLz4vZyxgCmApLHI9RWUoYS5yZXBsYWNlKC88W14+XSo+L2csIiIpKTtyZXR1cm5bcl19dmFyIEpzPXtkYXk6WyJkIiwiZGQiXSxtb250aDpbIm0iLCJtbSJdLHllYXI6WyJ5IiwieXkiXSxob3VyczpbImgiLCJoaCJdLG1pbnV0ZXM6WyJtIiwibW0iXSxzZWNvbmRzOlsicyIsInNzIl0sImFtLXBtIjpbIkEvUCIsIkFNL1BNIl0sImRheS1vZi13ZWVrIjpbImRkZCIsImRkZGQiXSxlcmE6WyJlIiwiZWUiXSxxdWFydGVyOlsiXFxRbSIsJ21cXCJ0aCBxdWFydGVyIiddfTtmdW5jdGlvbiBacyhlLGEpe3ZhciByPWF8fHt9LG49TXQoZSksdD1bXSxzLGksYz17bmFtZToiIn0sZj0iIixvPTAsbCxoLHg9e30sZD1bXSx2PXIuZGVuc2U/W106e30sdSxnLEY9e3ZhbHVlOiIifSx5PSIiLF89MCxOPVtdLGI9LTEsST0tMSxBPXtzOntyOjFlNixjOjFlN30sZTp7cjowLGM6MH19LFY9MCxEPXt9LHo9W10sRz17fSxQPTAsSj0wLGZlPVtdLHJlPTEsY2U9MSxpZT1bXSxGZT17TmFtZXM6W119LFc9e30sbGU9WyIiLCIiXSxoZT1bXSxTPXt9LFU9IiIsUj0wLE89ITEsSz0hMSxlZT0wO2ZvcihEYS5sYXN0SW5kZXg9MCxuPW4ucmVwbGFjZSgvPCEtLShbXHNcU10qPyktLT4vbWcsIiIpLnJlcGxhY2UoLzwhRE9DVFlQRVteXFtdKlxbW15cXV0qXF0+L2dtLCIiKTt1PURhLmV4ZWMobik7KXN3aXRjaCh1WzNdPXVbM10ucmVwbGFjZSgvXy4qJC8sIiIpKXtjYXNlInRhYmxlIjpjYXNlIuW3peS9nOihqCI6dVsxXT09PSIvIj8oQS5lLmM+PUEucy5jJiZBLmUucj49QS5zLnI/dlsiIXJlZiJdPV9lKEEpOnZbIiFyZWYiXT0iQTE6QTEiLHIuc2hlZXRSb3dzPjAmJnIuc2hlZXRSb3dzPD1BLmUuciYmKHZbIiFmdWxscmVmIl09dlsiIXJlZiJdLEEuZS5yPXIuc2hlZXRSb3dzLTEsdlsiIXJlZiJdPV9lKEEpKSx6Lmxlbmd0aCYmKHZbIiFtZXJnZXMiXT16KSxmZS5sZW5ndGgmJih2WyIhcm93cyJdPWZlKSxsLm5hbWU9bC7lkI3np7B8fGwubmFtZSx0eXBlb2YgSlNPTjwidSImJkpTT04uc3RyaW5naWZ5KGwpLGQucHVzaChsLm5hbWUpLHhbbC5uYW1lXT12LEs9ITEpOnVbMF0uY2hhckF0KHVbMF0ubGVuZ3RoLTIpIT09Ii8iJiYobD1vZSh1WzBdLCExKSxiPUk9LTEsQS5zLnI9QS5zLmM9MWU3LEEuZS5yPUEuZS5jPTAsdj1yLmRlbnNlP1tdOnt9LHo9W10sZmU9W10sSz0hMCk7YnJlYWs7Y2FzZSJ0YWJsZS1yb3ctZ3JvdXAiOnVbMV09PT0iLyI/LS1WOisrVjticmVhaztjYXNlInRhYmxlLXJvdyI6Y2FzZSLooYwiOmlmKHVbMV09PT0iLyIpe2IrPXJlLHJlPTE7YnJlYWt9aWYoaD1vZSh1WzBdLCExKSxoLuihjOWPtz9iPWgu6KGM5Y+3LTE6Yj09LTEmJihiPTApLHJlPStoWyJudW1iZXItcm93cy1yZXBlYXRlZCJdfHwxLHJlPDEwKWZvcihlZT0wO2VlPHJlOysrZWUpVj4wJiYoZmVbYitlZV09e2xldmVsOlZ9KTtJPS0xO2JyZWFrO2Nhc2UiY292ZXJlZC10YWJsZS1jZWxsIjp1WzFdIT09Ii8iJiYrK0ksci5zaGVldFN0dWJzJiYoci5kZW5zZT8odltiXXx8KHZbYl09W10pLHZbYl1bSV09e3Q6InoifSk6dlt1ZSh7cjpiLGM6SX0pXT17dDoieiJ9KSx5PSIiLE49W107YnJlYWs7Y2FzZSJ0YWJsZS1jZWxsIjpjYXNlIuaVsOaNriI6aWYodVswXS5jaGFyQXQodVswXS5sZW5ndGgtMik9PT0iLyIpKytJLEY9b2UodVswXSwhMSksY2U9cGFyc2VJbnQoRlsibnVtYmVyLWNvbHVtbnMtcmVwZWF0ZWQiXXx8IjEiLDEwKSxnPXt0OiJ6Iix2Om51bGx9LEYuZm9ybXVsYSYmci5jZWxsRm9ybXVsYSE9ITEmJihnLmY9UHMoRWUoRi5mb3JtdWxhKSkpLChGLuaVsOaNruexu+Wei3x8RlsidmFsdWUtdHlwZSJdKT09InN0cmluZyImJihnLnQ9InMiLGcudj1FZShGWyJzdHJpbmctdmFsdWUiXXx8IiIpLHIuZGVuc2U/KHZbYl18fCh2W2JdPVtdKSx2W2JdW0ldPWcpOnZbdWUoe3I6YixjOkl9KV09ZyksSSs9Y2UtMTtlbHNlIGlmKHVbMV0hPT0iLyIpeysrSSx5PSIiLF89MCxOPVtdLGNlPTE7dmFyIG5lPXJlP2IrcmUtMTpiO2lmKEk+QS5lLmMmJihBLmUuYz1JKSxJPEEucy5jJiYoQS5zLmM9SSksYjxBLnMuciYmKEEucy5yPWIpLG5lPkEuZS5yJiYoQS5lLnI9bmUpLEY9b2UodVswXSwhMSksaGU9W10sUz17fSxnPXt0OkYu5pWw5o2u57G75Z6LfHxGWyJ2YWx1ZS10eXBlIl0sdjpudWxsfSxyLmNlbGxGb3JtdWxhKWlmKEYuZm9ybXVsYSYmKEYuZm9ybXVsYT1FZShGLmZvcm11bGEpKSxGWyJudW1iZXItbWF0cml4LWNvbHVtbnMtc3Bhbm5lZCJdJiZGWyJudW1iZXItbWF0cml4LXJvd3Mtc3Bhbm5lZCJdJiYoUD1wYXJzZUludChGWyJudW1iZXItbWF0cml4LXJvd3Mtc3Bhbm5lZCJdLDEwKXx8MCxKPXBhcnNlSW50KEZbIm51bWJlci1tYXRyaXgtY29sdW1ucy1zcGFubmVkIl0sMTApfHwwLEc9e3M6e3I6YixjOkl9LGU6e3I6YitQLTEsYzpJK0otMX19LGcuRj1fZShHKSxpZS5wdXNoKFtHLGcuRl0pKSxGLmZvcm11bGEpZy5mPVBzKEYuZm9ybXVsYSk7ZWxzZSBmb3IoZWU9MDtlZTxpZS5sZW5ndGg7KytlZSliPj1pZVtlZV1bMF0ucy5yJiZiPD1pZVtlZV1bMF0uZS5yJiZJPj1pZVtlZV1bMF0ucy5jJiZJPD1pZVtlZV1bMF0uZS5jJiYoZy5GPWllW2VlXVsxXSk7c3dpdGNoKChGWyJudW1iZXItY29sdW1ucy1zcGFubmVkIl18fEZbIm51bWJlci1yb3dzLXNwYW5uZWQiXSkmJihQPXBhcnNlSW50KEZbIm51bWJlci1yb3dzLXNwYW5uZWQiXSwxMCl8fDAsSj1wYXJzZUludChGWyJudW1iZXItY29sdW1ucy1zcGFubmVkIl0sMTApfHwwLEc9e3M6e3I6YixjOkl9LGU6e3I6YitQLTEsYzpJK0otMX19LHoucHVzaChHKSksRlsibnVtYmVyLWNvbHVtbnMtcmVwZWF0ZWQiXSYmKGNlPXBhcnNlSW50KEZbIm51bWJlci1jb2x1bW5zLXJlcGVhdGVkIl0sMTApKSxnLnQpe2Nhc2UiYm9vbGVhbiI6Zy50PSJiIixnLnY9U2UoRlsiYm9vbGVhbi12YWx1ZSJdKTticmVhaztjYXNlImZsb2F0IjpnLnQ9Im4iLGcudj1wYXJzZUZsb2F0KEYudmFsdWUpO2JyZWFrO2Nhc2UicGVyY2VudGFnZSI6Zy50PSJuIixnLnY9cGFyc2VGbG9hdChGLnZhbHVlKTticmVhaztjYXNlImN1cnJlbmN5IjpnLnQ9Im4iLGcudj1wYXJzZUZsb2F0KEYudmFsdWUpO2JyZWFrO2Nhc2UiZGF0ZSI6Zy50PSJkIixnLnY9V2UoRlsiZGF0ZS12YWx1ZSJdKSxyLmNlbGxEYXRlc3x8KGcudD0ibiIsZy52PXRyKGcudikpLGcuej0ibS9kL3l5IjticmVhaztjYXNlInRpbWUiOmcudD0ibiIsZy52PUdpKEZbInRpbWUtdmFsdWUiXSkvODY0MDAsci5jZWxsRGF0ZXMmJihnLnQ9ImQiLGcudj1pdChnLnYpKSxnLno9IkhIOk1NOlNTIjticmVhaztjYXNlIm51bWJlciI6Zy50PSJuIixnLnY9cGFyc2VGbG9hdChGLuaVsOaNruaVsOWAvCk7YnJlYWs7ZGVmYXVsdDppZihnLnQ9PT0ic3RyaW5nInx8Zy50PT09InRleHQifHwhZy50KWcudD0icyIsRlsic3RyaW5nLXZhbHVlIl0hPW51bGwmJih5PUVlKEZbInN0cmluZy12YWx1ZSJdKSxOPVtdKTtlbHNlIHRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgdmFsdWUgdHlwZSAiK2cudCl9fWVsc2V7aWYoTz0hMSxnLnQ9PT0icyImJihnLnY9eXx8IiIsTi5sZW5ndGgmJihnLlI9TiksTz1fPT0wKSxXLlRhcmdldCYmKGcubD1XKSxoZS5sZW5ndGg+MCYmKGcuYz1oZSxoZT1bXSkseSYmci5jZWxsVGV4dCE9PSExJiYoZy53PXkpLE8mJihnLnQ9InoiLGRlbGV0ZSBnLnYpLCghT3x8ci5zaGVldFN0dWJzKSYmIShyLnNoZWV0Um93cyYmci5zaGVldFJvd3M8PWIpKWZvcih2YXIgcT0wO3E8cmU7KytxKXtpZihjZT1wYXJzZUludChGWyJudW1iZXItY29sdW1ucy1yZXBlYXRlZCJdfHwiMSIsMTApLHIuZGVuc2UpZm9yKHZbYitxXXx8KHZbYitxXT1bXSksdltiK3FdW0ldPXE9PTA/ZzpYZShnKTstLWNlPjA7KXZbYitxXVtJK2NlXT1YZShnKTtlbHNlIGZvcih2W3VlKHtyOmIrcSxjOkl9KV09ZzstLWNlPjA7KXZbdWUoe3I6YitxLGM6SStjZX0pXT1YZShnKTtBLmUuYzw9SSYmKEEuZS5jPUkpfWNlPXBhcnNlSW50KEZbIm51bWJlci1jb2x1bW5zLXJlcGVhdGVkIl18fCIxIiwxMCksSSs9Y2UtMSxjZT0wLGc9e30seT0iIixOPVtdfVc9e307YnJlYWs7Y2FzZSJkb2N1bWVudCI6Y2FzZSJkb2N1bWVudC1jb250ZW50IjpjYXNlIueUteWtkOihqOagvOaWh+ahoyI6Y2FzZSJzcHJlYWRzaGVldCI6Y2FzZSLkuLvkvZMiOmNhc2Uic2NyaXB0cyI6Y2FzZSJzdHlsZXMiOmNhc2UiZm9udC1mYWNlLWRlY2xzIjpjYXNlIm1hc3Rlci1zdHlsZXMiOmlmKHVbMV09PT0iLyIpe2lmKChzPXQucG9wKCkpWzBdIT09dVszXSl0aHJvdyJCYWQgc3RhdGU6ICIrc31lbHNlIHVbMF0uY2hhckF0KHVbMF0ubGVuZ3RoLTIpIT09Ii8iJiZ0LnB1c2goW3VbM10sITBdKTticmVhaztjYXNlImFubm90YXRpb24iOmlmKHVbMV09PT0iLyIpe2lmKChzPXQucG9wKCkpWzBdIT09dVszXSl0aHJvdyJCYWQgc3RhdGU6ICIrcztTLnQ9eSxOLmxlbmd0aCYmKFMuUj1OKSxTLmE9VSxoZS5wdXNoKFMpfWVsc2UgdVswXS5jaGFyQXQodVswXS5sZW5ndGgtMikhPT0iLyImJnQucHVzaChbdVszXSwhMV0pO1U9IiIsUj0wLHk9IiIsXz0wLE49W107YnJlYWs7Y2FzZSJjcmVhdG9yIjp1WzFdPT09Ii8iP1U9bi5zbGljZShSLHUuaW5kZXgpOlI9dS5pbmRleCt1WzBdLmxlbmd0aDticmVhaztjYXNlIm1ldGEiOmNhc2Ui5YWD5pWw5o2uIjpjYXNlInNldHRpbmdzIjpjYXNlImNvbmZpZy1pdGVtLXNldCI6Y2FzZSJjb25maWctaXRlbS1tYXAtaW5kZXhlZCI6Y2FzZSJjb25maWctaXRlbS1tYXAtZW50cnkiOmNhc2UiY29uZmlnLWl0ZW0tbWFwLW5hbWVkIjpjYXNlInNoYXBlcyI6Y2FzZSJmcmFtZSI6Y2FzZSJ0ZXh0LWJveCI6Y2FzZSJpbWFnZSI6Y2FzZSJkYXRhLXBpbG90LXRhYmxlcyI6Y2FzZSJsaXN0LXN0eWxlIjpjYXNlImZvcm0iOmNhc2UiZGRlLWxpbmtzIjpjYXNlImV2ZW50LWxpc3RlbmVycyI6Y2FzZSJjaGFydCI6aWYodVsxXT09PSIvIil7aWYoKHM9dC5wb3AoKSlbMF0hPT11WzNdKXRocm93IkJhZCBzdGF0ZTogIitzfWVsc2UgdVswXS5jaGFyQXQodVswXS5sZW5ndGgtMikhPT0iLyImJnQucHVzaChbdVszXSwhMV0pO3k9IiIsXz0wLE49W107YnJlYWs7Y2FzZSJzY2llbnRpZmljLW51bWJlciI6YnJlYWs7Y2FzZSJjdXJyZW5jeS1zeW1ib2wiOmJyZWFrO2Nhc2UiY3VycmVuY3ktc3R5bGUiOmJyZWFrO2Nhc2UibnVtYmVyLXN0eWxlIjpjYXNlInBlcmNlbnRhZ2Utc3R5bGUiOmNhc2UiZGF0ZS1zdHlsZSI6Y2FzZSJ0aW1lLXN0eWxlIjppZih1WzFdPT09Ii8iKXtpZihEW2MubmFtZV09Ziwocz10LnBvcCgpKVswXSE9PXVbM10pdGhyb3ciQmFkIHN0YXRlOiAiK3N9ZWxzZSB1WzBdLmNoYXJBdCh1WzBdLmxlbmd0aC0yKSE9PSIvIiYmKGY9IiIsYz1vZSh1WzBdLCExKSx0LnB1c2goW3VbM10sITBdKSk7YnJlYWs7Y2FzZSJzY3JpcHQiOmJyZWFrO2Nhc2UibGlicmFyaWVzIjpicmVhaztjYXNlImF1dG9tYXRpYy1zdHlsZXMiOmJyZWFrO2Nhc2UiZGVmYXVsdC1zdHlsZSI6Y2FzZSJwYWdlLWxheW91dCI6YnJlYWs7Y2FzZSJzdHlsZSI6YnJlYWs7Y2FzZSJtYXAiOmJyZWFrO2Nhc2UiZm9udC1mYWNlIjpicmVhaztjYXNlInBhcmFncmFwaC1wcm9wZXJ0aWVzIjpicmVhaztjYXNlInRhYmxlLXByb3BlcnRpZXMiOmJyZWFrO2Nhc2UidGFibGUtY29sdW1uLXByb3BlcnRpZXMiOmJyZWFrO2Nhc2UidGFibGUtcm93LXByb3BlcnRpZXMiOmJyZWFrO2Nhc2UidGFibGUtY2VsbC1wcm9wZXJ0aWVzIjpicmVhaztjYXNlIm51bWJlciI6c3dpdGNoKHRbdC5sZW5ndGgtMV1bMF0pe2Nhc2UidGltZS1zdHlsZSI6Y2FzZSJkYXRlLXN0eWxlIjppPW9lKHVbMF0sITEpLGYrPUpzW3VbM11dW2kuc3R5bGU9PT0ibG9uZyI/MTowXTticmVha31icmVhaztjYXNlImZyYWN0aW9uIjpicmVhaztjYXNlImRheSI6Y2FzZSJtb250aCI6Y2FzZSJ5ZWFyIjpjYXNlImVyYSI6Y2FzZSJkYXktb2Ytd2VlayI6Y2FzZSJ3ZWVrLW9mLXllYXIiOmNhc2UicXVhcnRlciI6Y2FzZSJob3VycyI6Y2FzZSJtaW51dGVzIjpjYXNlInNlY29uZHMiOmNhc2UiYW0tcG0iOnN3aXRjaCh0W3QubGVuZ3RoLTFdWzBdKXtjYXNlInRpbWUtc3R5bGUiOmNhc2UiZGF0ZS1zdHlsZSI6aT1vZSh1WzBdLCExKSxmKz1Kc1t1WzNdXVtpLnN0eWxlPT09ImxvbmciPzE6MF07YnJlYWt9YnJlYWs7Y2FzZSJib29sZWFuLXN0eWxlIjpicmVhaztjYXNlImJvb2xlYW4iOmJyZWFrO2Nhc2UidGV4dC1zdHlsZSI6YnJlYWs7Y2FzZSJ0ZXh0IjppZih1WzBdLnNsaWNlKC0yKT09PSIvPiIpYnJlYWs7aWYodVsxXT09PSIvIilzd2l0Y2godFt0Lmxlbmd0aC0xXVswXSl7Y2FzZSJudW1iZXItc3R5bGUiOmNhc2UiZGF0ZS1zdHlsZSI6Y2FzZSJ0aW1lLXN0eWxlIjpmKz1uLnNsaWNlKG8sdS5pbmRleCk7YnJlYWt9ZWxzZSBvPXUuaW5kZXgrdVswXS5sZW5ndGg7YnJlYWs7Y2FzZSJuYW1lZC1yYW5nZSI6aT1vZSh1WzBdLCExKSxsZT10MChpWyJjZWxsLXJhbmdlLWFkZHJlc3MiXSk7dmFyIGo9e05hbWU6aS5uYW1lLFJlZjpsZVswXSsiISIrbGVbMV19O0smJihqLlNoZWV0PWQubGVuZ3RoKSxGZS5OYW1lcy5wdXNoKGopO2JyZWFrO2Nhc2UidGV4dC1jb250ZW50IjpicmVhaztjYXNlInRleHQtcHJvcGVydGllcyI6YnJlYWs7Y2FzZSJlbWJlZGRlZC10ZXh0IjpicmVhaztjYXNlImJvZHkiOmNhc2Ui55S15a2Q6KGo5qC8IjpicmVhaztjYXNlImZvcm1zIjpicmVhaztjYXNlInRhYmxlLWNvbHVtbiI6YnJlYWs7Y2FzZSJ0YWJsZS1oZWFkZXItcm93cyI6YnJlYWs7Y2FzZSJ0YWJsZS1yb3dzIjpicmVhaztjYXNlInRhYmxlLWNvbHVtbi1ncm91cCI6YnJlYWs7Y2FzZSJ0YWJsZS1oZWFkZXItY29sdW1ucyI6YnJlYWs7Y2FzZSJ0YWJsZS1jb2x1bW5zIjpicmVhaztjYXNlIm51bGwtZGF0ZSI6YnJlYWs7Y2FzZSJncmFwaGljLXByb3BlcnRpZXMiOmJyZWFrO2Nhc2UiY2FsY3VsYXRpb24tc2V0dGluZ3MiOmJyZWFrO2Nhc2UibmFtZWQtZXhwcmVzc2lvbnMiOmJyZWFrO2Nhc2UibGFiZWwtcmFuZ2UiOmJyZWFrO2Nhc2UibGFiZWwtcmFuZ2VzIjpicmVhaztjYXNlIm5hbWVkLWV4cHJlc3Npb24iOmJyZWFrO2Nhc2Uic29ydCI6YnJlYWs7Y2FzZSJzb3J0LWJ5IjpicmVhaztjYXNlInNvcnQtZ3JvdXBzIjpicmVhaztjYXNlInRhYiI6YnJlYWs7Y2FzZSJsaW5lLWJyZWFrIjpicmVhaztjYXNlInNwYW4iOmJyZWFrO2Nhc2UicCI6Y2FzZSLmlofmnKzkuLIiOmlmKFsibWFzdGVyLXN0eWxlcyJdLmluZGV4T2YodFt0Lmxlbmd0aC0xXVswXSk+LTEpYnJlYWs7aWYodVsxXT09PSIvIiYmKCFGfHwhRlsic3RyaW5nLXZhbHVlIl0pKXt2YXIgVGU9SXgobi5zbGljZShfLHUuaW5kZXgpKTt5PSh5Lmxlbmd0aD4wP3krYApgOiIiKStUZVswXX1lbHNlIG9lKHVbMF0sITEpLF89dS5pbmRleCt1WzBdLmxlbmd0aDticmVhaztjYXNlInMiOmJyZWFrO2Nhc2UiZGF0YWJhc2UtcmFuZ2UiOmlmKHVbMV09PT0iLyIpYnJlYWs7dHJ5e2xlPXQwKG9lKHVbMF0pWyJ0YXJnZXQtcmFuZ2UtYWRkcmVzcyJdKSx4W2xlWzBdXVsiIWF1dG9maWx0ZXIiXT17cmVmOmxlWzFdfX1jYXRjaHt9YnJlYWs7Y2FzZSJkYXRlIjpicmVhaztjYXNlIm9iamVjdCI6YnJlYWs7Y2FzZSJ0aXRsZSI6Y2FzZSLmoIfpopgiOmJyZWFrO2Nhc2UiZGVzYyI6YnJlYWs7Y2FzZSJiaW5hcnktZGF0YSI6YnJlYWs7Y2FzZSJ0YWJsZS1zb3VyY2UiOmJyZWFrO2Nhc2Uic2NlbmFyaW8iOmJyZWFrO2Nhc2UiaXRlcmF0aW9uIjpicmVhaztjYXNlImNvbnRlbnQtdmFsaWRhdGlvbnMiOmJyZWFrO2Nhc2UiY29udGVudC12YWxpZGF0aW9uIjpicmVhaztjYXNlImhlbHAtbWVzc2FnZSI6YnJlYWs7Y2FzZSJlcnJvci1tZXNzYWdlIjpicmVhaztjYXNlImRhdGFiYXNlLXJhbmdlcyI6YnJlYWs7Y2FzZSJmaWx0ZXIiOmJyZWFrO2Nhc2UiZmlsdGVyLWFuZCI6YnJlYWs7Y2FzZSJmaWx0ZXItb3IiOmJyZWFrO2Nhc2UiZmlsdGVyLWNvbmRpdGlvbiI6YnJlYWs7Y2FzZSJsaXN0LWxldmVsLXN0eWxlLWJ1bGxldCI6YnJlYWs7Y2FzZSJsaXN0LWxldmVsLXN0eWxlLW51bWJlciI6YnJlYWs7Y2FzZSJsaXN0LWxldmVsLXByb3BlcnRpZXMiOmJyZWFrO2Nhc2Uic2VuZGVyLWZpcnN0bmFtZSI6Y2FzZSJzZW5kZXItbGFzdG5hbWUiOmNhc2Uic2VuZGVyLWluaXRpYWxzIjpjYXNlInNlbmRlci10aXRsZSI6Y2FzZSJzZW5kZXItcG9zaXRpb24iOmNhc2Uic2VuZGVyLWVtYWlsIjpjYXNlInNlbmRlci1waG9uZS1wcml2YXRlIjpjYXNlInNlbmRlci1mYXgiOmNhc2Uic2VuZGVyLWNvbXBhbnkiOmNhc2Uic2VuZGVyLXBob25lLXdvcmsiOmNhc2Uic2VuZGVyLXN0cmVldCI6Y2FzZSJzZW5kZXItY2l0eSI6Y2FzZSJzZW5kZXItcG9zdGFsLWNvZGUiOmNhc2Uic2VuZGVyLWNvdW50cnkiOmNhc2Uic2VuZGVyLXN0YXRlLW9yLXByb3ZpbmNlIjpjYXNlImF1dGhvci1uYW1lIjpjYXNlImF1dGhvci1pbml0aWFscyI6Y2FzZSJjaGFwdGVyIjpjYXNlImZpbGUtbmFtZSI6Y2FzZSJ0ZW1wbGF0ZS1uYW1lIjpjYXNlInNoZWV0LW5hbWUiOmJyZWFrO2Nhc2UiZXZlbnQtbGlzdGVuZXIiOmJyZWFrO2Nhc2UiaW5pdGlhbC1jcmVhdG9yIjpjYXNlImNyZWF0aW9uLWRhdGUiOmNhc2UicHJpbnQtZGF0ZSI6Y2FzZSJnZW5lcmF0b3IiOmNhc2UiZG9jdW1lbnQtc3RhdGlzdGljIjpjYXNlInVzZXItZGVmaW5lZCI6Y2FzZSJlZGl0aW5nLWR1cmF0aW9uIjpjYXNlImVkaXRpbmctY3ljbGVzIjpicmVhaztjYXNlImNvbmZpZy1pdGVtIjpicmVhaztjYXNlInBhZ2UtbnVtYmVyIjpicmVhaztjYXNlInBhZ2UtY291bnQiOmJyZWFrO2Nhc2UidGltZSI6YnJlYWs7Y2FzZSJjZWxsLXJhbmdlLXNvdXJjZSI6YnJlYWs7Y2FzZSJkZXRlY3RpdmUiOmJyZWFrO2Nhc2Uib3BlcmF0aW9uIjpicmVhaztjYXNlImhpZ2hsaWdodGVkLXJhbmdlIjpicmVhaztjYXNlImRhdGEtcGlsb3QtdGFibGUiOmNhc2Uic291cmNlLWNlbGwtcmFuZ2UiOmNhc2Uic291cmNlLXNlcnZpY2UiOmNhc2UiZGF0YS1waWxvdC1maWVsZCI6Y2FzZSJkYXRhLXBpbG90LWxldmVsIjpjYXNlImRhdGEtcGlsb3Qtc3VidG90YWxzIjpjYXNlImRhdGEtcGlsb3Qtc3VidG90YWwiOmNhc2UiZGF0YS1waWxvdC1tZW1iZXJzIjpjYXNlImRhdGEtcGlsb3QtbWVtYmVyIjpjYXNlImRhdGEtcGlsb3QtZGlzcGxheS1pbmZvIjpjYXNlImRhdGEtcGlsb3Qtc29ydC1pbmZvIjpjYXNlImRhdGEtcGlsb3QtbGF5b3V0LWluZm8iOmNhc2UiZGF0YS1waWxvdC1maWVsZC1yZWZlcmVuY2UiOmNhc2UiZGF0YS1waWxvdC1ncm91cHMiOmNhc2UiZGF0YS1waWxvdC1ncm91cCI6Y2FzZSJkYXRhLXBpbG90LWdyb3VwLW1lbWJlciI6YnJlYWs7Y2FzZSJyZWN0IjpicmVhaztjYXNlImRkZS1jb25uZWN0aW9uLWRlY2xzIjpjYXNlImRkZS1jb25uZWN0aW9uLWRlY2wiOmNhc2UiZGRlLWxpbmsiOmNhc2UiZGRlLXNvdXJjZSI6YnJlYWs7Y2FzZSJwcm9wZXJ0aWVzIjpicmVhaztjYXNlInByb3BlcnR5IjpicmVhaztjYXNlImEiOmlmKHVbMV0hPT0iLyIpe2lmKFc9b2UodVswXSwhMSksIVcuaHJlZilicmVhaztXLlRhcmdldD1FZShXLmhyZWYpLGRlbGV0ZSBXLmhyZWYsVy5UYXJnZXQuY2hhckF0KDApPT0iIyImJlcuVGFyZ2V0LmluZGV4T2YoIi4iKT4tMT8obGU9dDAoVy5UYXJnZXQuc2xpY2UoMSkpLFcuVGFyZ2V0PSIjIitsZVswXSsiISIrbGVbMV0pOlcuVGFyZ2V0Lm1hdGNoKC9eXC5cLltcXFwvXS8pJiYoVy5UYXJnZXQ9Vy5UYXJnZXQuc2xpY2UoMykpfWJyZWFrO2Nhc2UidGFibGUtcHJvdGVjdGlvbiI6YnJlYWs7Y2FzZSJkYXRhLXBpbG90LWdyYW5kLXRvdGFsIjpicmVhaztjYXNlIm9mZmljZS1kb2N1bWVudC1jb21tb24tYXR0cnMiOmJyZWFrO2RlZmF1bHQ6c3dpdGNoKHVbMl0pe2Nhc2UiZGM6IjpjYXNlImNhbGNleHQ6IjpjYXNlImxvZXh0OiI6Y2FzZSJvb286IjpjYXNlImNoYXJ0b29vOiI6Y2FzZSJkcmF3OiI6Y2FzZSJzdHlsZToiOmNhc2UiY2hhcnQ6IjpjYXNlImZvcm06IjpjYXNlInVvZjoiOmNhc2Ui6KGoOiI6Y2FzZSLlrZc6IjpicmVhaztkZWZhdWx0OmlmKHIuV1RGKXRocm93IG5ldyBFcnJvcih1KX19dmFyIEM9e1NoZWV0czp4LFNoZWV0TmFtZXM6ZCxXb3JrYm9vazpGZX07cmV0dXJuIHIuYm9va1NoZWV0cyYmZGVsZXRlIEMuU2hlZXRzLEN9ZnVuY3Rpb24gcXMoZSxhKXthPWF8fHt9LGRyKGUsIk1FVEEtSU5GL21hbmlmZXN0LnhtbCIpJiZ6YyhMZShlLCJNRVRBLUlORi9tYW5pZmVzdC54bWwiKSxhKTt2YXIgcj1vcihlLCJjb250ZW50LnhtbCIpO2lmKCFyKXRocm93IG5ldyBFcnJvcigiTWlzc2luZyBjb250ZW50LnhtbCBpbiBPRFMgLyBVT0YgZmlsZSIpO3ZhciBuPVpzKEFlKHIpLGEpO3JldHVybiBkcihlLCJtZXRhLnhtbCIpJiYobi5Qcm9wcz1WbihMZShlLCJtZXRhLnhtbCIpKSksbn1mdW5jdGlvbiBRcyhlLGEpe3JldHVybiBacyhlLGEpfS8qISBzaGVldGpzIChDKSAyMDEzLXByZXNlbnQgU2hlZXRKUyAtLSBodHRwOi8vc2hlZXRqcy5jb20gKi9mdW5jdGlvbiBmMChlKXtyZXR1cm4gbmV3IERhdGFWaWV3KGUuYnVmZmVyLGUuYnl0ZU9mZnNldCxlLmJ5dGVMZW5ndGgpfWZ1bmN0aW9uIG8wKGUpe3JldHVybiB0eXBlb2YgVGV4dERlY29kZXI8InUiP25ldyBUZXh0RGVjb2RlcigpLmRlY29kZShlKTpBZShacihlKSl9ZnVuY3Rpb24gbDAoZSl7dmFyIGE9ZS5yZWR1Y2UoZnVuY3Rpb24odCxzKXtyZXR1cm4gdCtzLmxlbmd0aH0sMCkscj1uZXcgVWludDhBcnJheShhKSxuPTA7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbih0KXtyLnNldCh0LG4pLG4rPXQubGVuZ3RofSkscn1mdW5jdGlvbiBlaShlKXtyZXR1cm4gZS09ZT4+MSYxNDMxNjU1NzY1LGU9KGUmODU4OTkzNDU5KSsoZT4+MiY4NTg5OTM0NTkpLChlKyhlPj40KSYyNTI2NDUxMzUpKjE2ODQzMDA5Pj4+MjR9ZnVuY3Rpb24gTngoZSxhKXtmb3IodmFyIHI9KGVbYSsxNV0mMTI3KTw8N3xlW2ErMTRdPj4xLG49ZVthKzE0XSYxLHQ9YSsxMzt0Pj1hOy0tdCluPW4qMjU2K2VbdF07cmV0dXJuKGVbYSsxNV0mMTI4Py1uOm4pKk1hdGgucG93KDEwLHItNjE3Nil9ZnVuY3Rpb24gWWEoZSxhKXt2YXIgcj1hP2FbMF06MCxuPWVbcl0mMTI3O2U6aWYoZVtyKytdPj0xMjgmJihufD0oZVtyXSYxMjcpPDw3LGVbcisrXTwxMjh8fChufD0oZVtyXSYxMjcpPDwxNCxlW3IrK108MTI4KXx8KG58PShlW3JdJjEyNyk8PDIxLGVbcisrXTwxMjgpfHwobis9KGVbcl0mMTI3KSpNYXRoLnBvdygyLDI4KSwrK3IsZVtyKytdPDEyOCl8fChuKz0oZVtyXSYxMjcpKk1hdGgucG93KDIsMzUpLCsrcixlW3IrK108MTI4KXx8KG4rPShlW3JdJjEyNykqTWF0aC5wb3coMiw0MiksKytyLGVbcisrXTwxMjgpKSlicmVhayBlO3JldHVybiBhJiYoYVswXT1yKSxufWZ1bmN0aW9uIEhlKGUpe3ZhciBhPTAscj1lW2FdJjEyNztlOmlmKGVbYSsrXT49MTI4KXtpZihyfD0oZVthXSYxMjcpPDw3LGVbYSsrXTwxMjh8fChyfD0oZVthXSYxMjcpPDwxNCxlW2ErK108MTI4KXx8KHJ8PShlW2FdJjEyNyk8PDIxLGVbYSsrXTwxMjgpKWJyZWFrIGU7cnw9KGVbYV0mMTI3KTw8Mjh9cmV0dXJuIHJ9ZnVuY3Rpb24gUWUoZSl7Zm9yKHZhciBhPVtdLHI9WzBdO3JbMF08ZS5sZW5ndGg7KXt2YXIgbj1yWzBdLHQ9WWEoZSxyKSxzPXQmNzt0PU1hdGguZmxvb3IodC84KTt2YXIgaT0wLGM7aWYodD09MClicmVhaztzd2l0Y2gocyl7Y2FzZSAwOntmb3IodmFyIGY9clswXTtlW3JbMF0rK10+PTEyODspO2M9ZS5zbGljZShmLHJbMF0pfWJyZWFrO2Nhc2UgNTppPTQsYz1lLnNsaWNlKHJbMF0sclswXStpKSxyWzBdKz1pO2JyZWFrO2Nhc2UgMTppPTgsYz1lLnNsaWNlKHJbMF0sclswXStpKSxyWzBdKz1pO2JyZWFrO2Nhc2UgMjppPVlhKGUsciksYz1lLnNsaWNlKHJbMF0sclswXStpKSxyWzBdKz1pO2JyZWFrO2Nhc2UgMzpjYXNlIDQ6ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlBCIFR5cGUgIi5jb25jYXQocywiIGZvciBGaWVsZCAiKS5jb25jYXQodCwiIGF0IG9mZnNldCAiKS5jb25jYXQobikpfXZhciBvPXtkYXRhOmMsdHlwZTpzfTthW3RdPT1udWxsP2FbdF09W29dOmFbdF0ucHVzaChvKX1yZXR1cm4gYX1mdW5jdGlvbiBoMChlLGEpe3JldHVybihlPT1udWxsP3ZvaWQgMDplLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gYShyLmRhdGEpfSkpfHxbXX1mdW5jdGlvbiBQeChlKXtmb3IodmFyIGEscj1bXSxuPVswXTtuWzBdPGUubGVuZ3RoOyl7dmFyIHQ9WWEoZSxuKSxzPVFlKGUuc2xpY2UoblswXSxuWzBdK3QpKTtuWzBdKz10O3ZhciBpPXtpZDpIZShzWzFdWzBdLmRhdGEpLG1lc3NhZ2VzOltdfTtzWzJdLmZvckVhY2goZnVuY3Rpb24oYyl7dmFyIGY9UWUoYy5kYXRhKSxvPUhlKGZbM11bMF0uZGF0YSk7aS5tZXNzYWdlcy5wdXNoKHttZXRhOmYsZGF0YTplLnNsaWNlKG5bMF0sblswXStvKX0pLG5bMF0rPW99KSwoYT1zWzNdKSE9bnVsbCYmYVswXSYmKGkubWVyZ2U9SGUoc1szXVswXS5kYXRhKT4+PjA+MCksci5wdXNoKGkpfXJldHVybiByfWZ1bmN0aW9uIEx4KGUsYSl7aWYoZSE9MCl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgU25hcHB5IGNodW5rIHR5cGUgIi5jb25jYXQoZSkpO2Zvcih2YXIgcj1bMF0sbj1ZYShhLHIpLHQ9W107clswXTxhLmxlbmd0aDspe3ZhciBzPWFbclswXV0mMztpZihzPT0wKXt2YXIgaT1hW3JbMF0rK10+PjI7aWYoaTw2MCkrK2k7ZWxzZXt2YXIgYz1pLTU5O2k9YVtyWzBdXSxjPjEmJihpfD1hW3JbMF0rMV08PDgpLGM+MiYmKGl8PWFbclswXSsyXTw8MTYpLGM+MyYmKGl8PWFbclswXSszXTw8MjQpLGk+Pj49MCxpKyssclswXSs9Y310LnB1c2goYS5zbGljZShyWzBdLHJbMF0raSkpLHJbMF0rPWk7Y29udGludWV9ZWxzZXt2YXIgZj0wLG89MDtpZihzPT0xPyhvPShhW3JbMF1dPj4yJjcpKzQsZj0oYVtyWzBdKytdJjIyNCk8PDMsZnw9YVtyWzBdKytdKToobz0oYVtyWzBdKytdPj4yKSsxLHM9PTI/KGY9YVtyWzBdXXxhW3JbMF0rMV08PDgsclswXSs9Mik6KGY9KGFbclswXV18YVtyWzBdKzFdPDw4fGFbclswXSsyXTw8MTZ8YVtyWzBdKzNdPDwyNCk+Pj4wLHJbMF0rPTQpKSx0PVtsMCh0KV0sZj09MCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgb2Zmc2V0IDAiKTtpZihmPnRbMF0ubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBvZmZzZXQgYmV5b25kIGxlbmd0aCIpO2lmKG8+PWYpZm9yKHQucHVzaCh0WzBdLnNsaWNlKC1mKSksby09ZjtvPj10W3QubGVuZ3RoLTFdLmxlbmd0aDspdC5wdXNoKHRbdC5sZW5ndGgtMV0pLG8tPXRbdC5sZW5ndGgtMV0ubGVuZ3RoO3QucHVzaCh0WzBdLnNsaWNlKC1mLC1mK28pKX19dmFyIGw9bDAodCk7aWYobC5sZW5ndGghPW4pdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIGxlbmd0aDogIi5jb25jYXQobC5sZW5ndGgsIiAhPSAiKS5jb25jYXQobikpO3JldHVybiBsfWZ1bmN0aW9uIE14KGUpe2Zvcih2YXIgYT1bXSxyPTA7cjxlLmxlbmd0aDspe3ZhciBuPWVbcisrXSx0PWVbcl18ZVtyKzFdPDw4fGVbcisyXTw8MTY7cis9MyxhLnB1c2goTHgobixlLnNsaWNlKHIscit0KSkpLHIrPXR9aWYociE9PWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiZGF0YSBpcyBub3QgYSB2YWxpZCBmcmFtZWQgc3RyZWFtISIpO3JldHVybiBsMChhKX1mdW5jdGlvbiBCeChlLGEscixuKXt2YXIgdD1mMChlKSxzPXQuZ2V0VWludDMyKDQsITApLGk9KG4+MT8xMjo4KStlaShzJihuPjE/MzQ3MDozOTgpKSo0LGM9LTEsZj0tMSxvPU5hTixsPW5ldyBEYXRlKDIwMDEsMCwxKTtzJjUxMiYmKGM9dC5nZXRVaW50MzIoaSwhMCksaSs9NCksaSs9ZWkocyYobj4xPzEyMjg4OjQwOTYpKSo0LHMmMTYmJihmPXQuZ2V0VWludDMyKGksITApLGkrPTQpLHMmMzImJihvPXQuZ2V0RmxvYXQ2NChpLCEwKSxpKz04KSxzJjY0JiYobC5zZXRUaW1lKGwuZ2V0VGltZSgpK3QuZ2V0RmxvYXQ2NChpLCEwKSoxZTMpLGkrPTgpO3ZhciBoO3N3aXRjaChlWzJdKXtjYXNlIDA6YnJlYWs7Y2FzZSAyOmg9e3Q6Im4iLHY6b307YnJlYWs7Y2FzZSAzOmg9e3Q6InMiLHY6YVtmXX07YnJlYWs7Y2FzZSA1Omg9e3Q6ImQiLHY6bH07YnJlYWs7Y2FzZSA2Omg9e3Q6ImIiLHY6bz4wfTticmVhaztjYXNlIDc6aD17dDoibiIsdjpvLzg2NDAwfTticmVhaztjYXNlIDg6aD17dDoiZSIsdjowfTticmVhaztjYXNlIDk6aWYoYz4tMSloPXt0OiJzIix2OnJbY119O2Vsc2UgaWYoZj4tMSloPXt0OiJzIix2OmFbZl19O2Vsc2UgaWYoIWlzTmFOKG8pKWg9e3Q6Im4iLHY6b307ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGNlbGwgdHlwZSAiLmNvbmNhdChlLnNsaWNlKDAsNCkpKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgY2VsbCB0eXBlICIuY29uY2F0KGUuc2xpY2UoMCw0KSkpfXJldHVybiBofWZ1bmN0aW9uIGJ4KGUsYSxyKXt2YXIgbj1mMChlKSx0PW4uZ2V0VWludDMyKDgsITApLHM9MTIsaT0tMSxjPS0xLGY9TmFOLG89TmFOLGw9bmV3IERhdGUoMjAwMSwwLDEpO3QmMSYmKGY9TngoZSxzKSxzKz0xNiksdCYyJiYobz1uLmdldEZsb2F0NjQocywhMCkscys9OCksdCY0JiYobC5zZXRUaW1lKGwuZ2V0VGltZSgpK24uZ2V0RmxvYXQ2NChzLCEwKSoxZTMpLHMrPTgpLHQmOCYmKGM9bi5nZXRVaW50MzIocywhMCkscys9NCksdCYxNiYmKGk9bi5nZXRVaW50MzIocywhMCkscys9NCk7dmFyIGg7c3dpdGNoKGVbMV0pe2Nhc2UgMDpicmVhaztjYXNlIDI6aD17dDoibiIsdjpmfTticmVhaztjYXNlIDM6aD17dDoicyIsdjphW2NdfTticmVhaztjYXNlIDU6aD17dDoiZCIsdjpsfTticmVhaztjYXNlIDY6aD17dDoiYiIsdjpvPjB9O2JyZWFrO2Nhc2UgNzpoPXt0OiJuIix2Om8vODY0MDB9O2JyZWFrO2Nhc2UgODpoPXt0OiJlIix2OjB9O2JyZWFrO2Nhc2UgOTppZihpPi0xKWg9e3Q6InMiLHY6cltpXX07ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGNlbGwgdHlwZSAiLmNvbmNhdChlWzFdLCIgOiAiKS5jb25jYXQodCYzMSwiIDogIikuY29uY2F0KGUuc2xpY2UoMCw0KSkpO2JyZWFrO2Nhc2UgMTA6aD17dDoibiIsdjpmfTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgY2VsbCB0eXBlICIuY29uY2F0KGVbMV0sIiA6ICIpLmNvbmNhdCh0JjMxLCIgOiAiKS5jb25jYXQoZS5zbGljZSgwLDQpKSl9cmV0dXJuIGh9ZnVuY3Rpb24gVXgoZSxhLHIpe3N3aXRjaChlWzBdKXtjYXNlIDA6Y2FzZSAxOmNhc2UgMjpjYXNlIDM6cmV0dXJuIEJ4KGUsYSxyLGVbMF0pO2Nhc2UgNTpyZXR1cm4gYngoZSxhLHIpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBwYXlsb2FkIHZlcnNpb24gIi5jb25jYXQoZVswXSkpfX1mdW5jdGlvbiBLcihlKXt2YXIgYT1RZShlKTtyZXR1cm4gWWEoYVsxXVswXS5kYXRhKX1mdW5jdGlvbiByaShlLGEpe3ZhciByPVFlKGEuZGF0YSksbj1IZShyWzFdWzBdLmRhdGEpLHQ9clszXSxzPVtdO3JldHVybih0fHxbXSkuZm9yRWFjaChmdW5jdGlvbihpKXt2YXIgYz1RZShpLmRhdGEpLGY9SGUoY1sxXVswXS5kYXRhKT4+PjA7c3dpdGNoKG4pe2Nhc2UgMTpzW2ZdPW8wKGNbM11bMF0uZGF0YSk7YnJlYWs7Y2FzZSA4Ont2YXIgbz1lW0tyKGNbOV1bMF0uZGF0YSldWzBdLGw9UWUoby5kYXRhKSxoPWVbS3IobFsxXVswXS5kYXRhKV1bMF0seD1IZShoLm1ldGFbMV1bMF0uZGF0YSk7aWYoeCE9MjAwMSl0aHJvdyBuZXcgRXJyb3IoIjIwMDAgdW5leHBlY3RlZCByZWZlcmVuY2UgdG8gIi5jb25jYXQoeCkpO3ZhciBkPVFlKGguZGF0YSk7c1tmXT1kWzNdLm1hcChmdW5jdGlvbih2KXtyZXR1cm4gbzAodi5kYXRhKX0pLmpvaW4oIiIpfWJyZWFrfX0pLHN9ZnVuY3Rpb24gSHgoZSxhKXt2YXIgcixuLHQscyxpLGMsZixvLGwsaCx4LGQsdix1LGc9UWUoZSksRj1IZShnWzFdWzBdLmRhdGEpPj4+MCx5PUhlKGdbMl1bMF0uZGF0YSk+Pj4wLF89KChuPShyPWdbOF0pPT1udWxsP3ZvaWQgMDpyWzBdKT09bnVsbD92b2lkIDA6bi5kYXRhKSYmSGUoZ1s4XVswXS5kYXRhKT4wfHwhMSxOLGI7aWYoKHM9KHQ9Z1s3XSk9PW51bGw/dm9pZCAwOnRbMF0pIT1udWxsJiZzLmRhdGEmJmEhPTApTj0oYz0oaT1nWzddKT09bnVsbD92b2lkIDA6aVswXSk9PW51bGw/dm9pZCAwOmMuZGF0YSxiPShvPShmPWdbNl0pPT1udWxsP3ZvaWQgMDpmWzBdKT09bnVsbD92b2lkIDA6by5kYXRhO2Vsc2UgaWYoKGg9KGw9Z1s0XSk9PW51bGw/dm9pZCAwOmxbMF0pIT1udWxsJiZoLmRhdGEmJmEhPTEpTj0oZD0oeD1nWzRdKT09bnVsbD92b2lkIDA6eFswXSk9PW51bGw/dm9pZCAwOmQuZGF0YSxiPSh1PSh2PWdbM10pPT1udWxsP3ZvaWQgMDp2WzBdKT09bnVsbD92b2lkIDA6dS5kYXRhO2Vsc2UgdGhyb3ciTlVNQkVSUyBUaWxlIG1pc3NpbmcgIi5jb25jYXQoYSwiIGNlbGwgc3RvcmFnZSIpO2Zvcih2YXIgST1fPzQ6MSxBPWYwKE4pLFY9W10sRD0wO0Q8Ti5sZW5ndGgvMjsrK0Qpe3ZhciB6PUEuZ2V0VWludDE2KEQqMiwhMCk7ejw2NTUzNSYmVi5wdXNoKFtELHpdKX1pZihWLmxlbmd0aCE9eSl0aHJvdyJFeHBlY3RlZCAiLmNvbmNhdCh5LCIgY2VsbHMsIGZvdW5kICIpLmNvbmNhdChWLmxlbmd0aCk7dmFyIEc9W107Zm9yKEQ9MDtEPFYubGVuZ3RoLTE7KytEKUdbVltEXVswXV09Yi5zdWJhcnJheShWW0RdWzFdKkksVltEKzFdWzFdKkkpO3JldHVybiBWLmxlbmd0aD49MSYmKEdbVltWLmxlbmd0aC0xXVswXV09Yi5zdWJhcnJheShWW1YubGVuZ3RoLTFdWzFdKkkpKSx7UjpGLGNlbGxzOkd9fWZ1bmN0aW9uIFZ4KGUsYSl7dmFyIHIsbj1RZShhLmRhdGEpLHQ9KHI9bj09bnVsbD92b2lkIDA6bls3XSkhPW51bGwmJnJbMF0/SGUobls3XVswXS5kYXRhKT4+PjA+MD8xOjA6LTEscz1oMChuWzVdLGZ1bmN0aW9uKGkpe3JldHVybiBIeChpLHQpfSk7cmV0dXJue25yb3dzOkhlKG5bNF1bMF0uZGF0YSk+Pj4wLGRhdGE6cy5yZWR1Y2UoZnVuY3Rpb24oaSxjKXtyZXR1cm4gaVtjLlJdfHwoaVtjLlJdPVtdKSxjLmNlbGxzLmZvckVhY2goZnVuY3Rpb24oZixvKXtpZihpW2MuUl1bb10pdGhyb3cgbmV3IEVycm9yKCJEdXBsaWNhdGUgY2VsbCByPSIuY29uY2F0KGMuUiwiIGM9IikuY29uY2F0KG8pKTtpW2MuUl1bb109Zn0pLGl9LFtdKX19ZnVuY3Rpb24gV3goZSxhLHIpe3ZhciBuLHQ9UWUoYS5kYXRhKSxzPXtzOntyOjAsYzowfSxlOntyOjAsYzowfX07aWYocy5lLnI9KEhlKHRbNl1bMF0uZGF0YSk+Pj4wKS0xLHMuZS5yPDApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHJvdyB2YXJpbnQgIi5jb25jYXQodFs2XVswXS5kYXRhKSk7aWYocy5lLmM9KEhlKHRbN11bMF0uZGF0YSk+Pj4wKS0xLHMuZS5jPDApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNvbCB2YXJpbnQgIi5jb25jYXQodFs3XVswXS5kYXRhKSk7clsiIXJlZiJdPV9lKHMpO3ZhciBpPVFlKHRbNF1bMF0uZGF0YSksYz1yaShlLGVbS3IoaVs0XVswXS5kYXRhKV1bMF0pLGY9KG49aVsxN10pIT1udWxsJiZuWzBdP3JpKGUsZVtLcihpWzE3XVswXS5kYXRhKV1bMF0pOltdLG89UWUoaVszXVswXS5kYXRhKSxsPTA7b1sxXS5mb3JFYWNoKGZ1bmN0aW9uKGgpe3ZhciB4PVFlKGguZGF0YSksZD1lW0tyKHhbMl1bMF0uZGF0YSldWzBdLHY9SGUoZC5tZXRhWzFdWzBdLmRhdGEpO2lmKHYhPTYwMDIpdGhyb3cgbmV3IEVycm9yKCI2MDAxIHVuZXhwZWN0ZWQgcmVmZXJlbmNlIHRvICIuY29uY2F0KHYpKTt2YXIgdT1WeChlLGQpO3UuZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGcsRil7Zy5mb3JFYWNoKGZ1bmN0aW9uKHksXyl7dmFyIE49dWUoe3I6bCtGLGM6X30pLGI9VXgoeSxjLGYpO2ImJihyW05dPWIpfSl9KSxsKz11Lm5yb3dzfSl9ZnVuY3Rpb24gR3goZSxhKXt2YXIgcj1RZShhLmRhdGEpLG49eyIhcmVmIjoiQTEifSx0PWVbS3IoclsyXVswXS5kYXRhKV0scz1IZSh0WzBdLm1ldGFbMV1bMF0uZGF0YSk7aWYocyE9NjAwMSl0aHJvdyBuZXcgRXJyb3IoIjYwMDAgdW5leHBlY3RlZCByZWZlcmVuY2UgdG8gIi5jb25jYXQocykpO3JldHVybiBXeChlLHRbMF0sbiksbn1mdW5jdGlvbiBYeChlLGEpe3ZhciByLG49UWUoYS5kYXRhKSx0PXtuYW1lOihyPW5bMV0pIT1udWxsJiZyWzBdP28wKG5bMV1bMF0uZGF0YSk6IiIsc2hlZXRzOltdfSxzPWgwKG5bMl0sS3IpO3JldHVybiBzLmZvckVhY2goZnVuY3Rpb24oaSl7ZVtpXS5mb3JFYWNoKGZ1bmN0aW9uKGMpe3ZhciBmPUhlKGMubWV0YVsxXVswXS5kYXRhKTtmPT02ZTMmJnQuc2hlZXRzLnB1c2goR3goZSxjKSl9KX0pLHR9ZnVuY3Rpb24gJHgoZSxhKXt2YXIgcj1tMCgpLG49UWUoYS5kYXRhKSx0PWgwKG5bMV0sS3IpO2lmKHQuZm9yRWFjaChmdW5jdGlvbihzKXtlW3NdLmZvckVhY2goZnVuY3Rpb24oaSl7dmFyIGM9SGUoaS5tZXRhWzFdWzBdLmRhdGEpO2lmKGM9PTIpe3ZhciBmPVh4KGUsaSk7Zi5zaGVldHMuZm9yRWFjaChmdW5jdGlvbihvLGwpe18wKHIsbyxsPT0wP2YubmFtZTpmLm5hbWUrIl8iK2wsITApfSl9fSl9KSxyLlNoZWV0TmFtZXMubGVuZ3RoPT0wKXRocm93IG5ldyBFcnJvcigiRW1wdHkgTlVNQkVSUyBmaWxlIik7cmV0dXJuIHJ9ZnVuY3Rpb24gdTAoZSl7dmFyIGEscixuLHQscz17fSxpPVtdO2lmKGUuRnVsbFBhdGhzLmZvckVhY2goZnVuY3Rpb24oZil7aWYoZi5tYXRjaCgvXC5pd3B2Mi8pKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgcGFzc3dvcmQgcHJvdGVjdGlvbiIpfSksZS5GaWxlSW5kZXguZm9yRWFjaChmdW5jdGlvbihmKXtpZihmLm5hbWUubWF0Y2goL1wuaXdhJC8pKXt2YXIgbzt0cnl7bz1NeChmLmNvbnRlbnQpfWNhdGNoKGgpe3JldHVybiBjb25zb2xlLmxvZygiPz8gIitmLmNvbnRlbnQubGVuZ3RoKyIgIisoaC5tZXNzYWdlfHxoKSl9dmFyIGw7dHJ5e2w9UHgobyl9Y2F0Y2goaCl7cmV0dXJuIGNvbnNvbGUubG9nKCIjIyAiKyhoLm1lc3NhZ2V8fGgpKX1sLmZvckVhY2goZnVuY3Rpb24oaCl7c1toLmlkXT1oLm1lc3NhZ2VzLGkucHVzaChoLmlkKX0pfX0pLCFpLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkZpbGUgaGFzIG5vIG1lc3NhZ2VzIik7dmFyIGM9KCh0PShuPShyPShhPXM9PW51bGw/dm9pZCAwOnNbMV0pPT1udWxsP3ZvaWQgMDphWzBdKT09bnVsbD92b2lkIDA6ci5tZXRhKT09bnVsbD92b2lkIDA6blsxXSk9PW51bGw/dm9pZCAwOnRbMF0uZGF0YSkmJkhlKHNbMV1bMF0ubWV0YVsxXVswXS5kYXRhKT09MSYmc1sxXVswXTtpZihjfHxpLmZvckVhY2goZnVuY3Rpb24oZil7c1tmXS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3ZhciBsPUhlKG8ubWV0YVsxXVswXS5kYXRhKT4+PjA7aWYobD09MSlpZighYyljPW87ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIkRvY3VtZW50IGhhcyBtdWx0aXBsZSByb290cyIpfSl9KSwhYyl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIERvY3VtZW50IHJvb3QiKTtyZXR1cm4gJHgocyxjKX1mdW5jdGlvbiB6eChlKXtyZXR1cm4gZnVuY3Rpb24ocil7Zm9yKHZhciBuPTA7biE9ZS5sZW5ndGg7KytuKXt2YXIgdD1lW25dO3JbdFswXV09PT12b2lkIDAmJihyW3RbMF1dPXRbMV0pLHRbMl09PT0ibiImJihyW3RbMF1dPU51bWJlcihyW3RbMF1dKSl9fX1mdW5jdGlvbiB4MChlKXt6eChbWyJjZWxsTkYiLCExXSxbImNlbGxIVE1MIiwhMF0sWyJjZWxsRm9ybXVsYSIsITBdLFsiY2VsbFN0eWxlcyIsITFdLFsiY2VsbFRleHQiLCEwXSxbImNlbGxEYXRlcyIsITFdLFsic2hlZXRTdHVicyIsITFdLFsic2hlZXRSb3dzIiwwLCJuIl0sWyJib29rRGVwcyIsITFdLFsiYm9va1NoZWV0cyIsITFdLFsiYm9va1Byb3BzIiwhMV0sWyJib29rRmlsZXMiLCExXSxbImJvb2tWQkEiLCExXSxbInBhc3N3b3JkIiwiIl0sWyJXVEYiLCExXV0pKGUpfWZ1bmN0aW9uIEt4KGUpe3JldHVybiBtYS5XUy5pbmRleE9mKGUpPi0xPyJzaGVldCI6ZT09bWEuQ1M/ImNoYXJ0IjplPT1tYS5EUz8iZGlhbG9nIjplPT1tYS5NUz8ibWFjcm8iOmUmJmUubGVuZ3RoP2U6InNoZWV0In1mdW5jdGlvbiBZeChlLGEpe2lmKCFlKXJldHVybiAwO3RyeXtlPWEubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLmlkfHwobi5pZD1uLnN0clJlbElEKSxbbi5uYW1lLGVbIiFpZCJdW24uaWRdLlRhcmdldCxLeChlWyIhaWQiXVtuLmlkXS5UeXBlKV19KX1jYXRjaHtyZXR1cm4gbnVsbH1yZXR1cm4hZXx8ZS5sZW5ndGg9PT0wP251bGw6ZX1mdW5jdGlvbiBqeChlLGEscixuLHQscyxpLGMsZixvLGwsaCl7dHJ5e3Nbbl09UGEob3IoZSxyLCEwKSxhKTt2YXIgeD1MZShlLGEpLGQ7c3dpdGNoKGMpe2Nhc2Uic2hlZXQiOmQ9cngoeCxhLHQsZixzW25dLG8sbCxoKTticmVhaztjYXNlImNoYXJ0IjppZihkPWF4KHgsYSx0LGYsc1tuXSxvLGwsaCksIWR8fCFkWyIhZHJhd2VsIl0pYnJlYWs7dmFyIHY9U2EoZFsiIWRyYXdlbCJdLlRhcmdldCxhKSx1PUt0KHYpLGc9ZTEob3IoZSx2LCEwKSxQYShvcihlLHUsITApLHYpKSxGPVNhKGcsdikseT1LdChGKTtkPWJ1KG9yKGUsRiwhMCksRixmLFBhKG9yKGUseSwhMCksRiksbyxkKTticmVhaztjYXNlIm1hY3JvIjpkPXR4KHgsYSx0LGYsc1tuXSxvLGwsaCk7YnJlYWs7Y2FzZSJkaWFsb2ciOmQ9bngoeCxhLHQsZixzW25dLG8sbCxoKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHNoZWV0IHR5cGUgIitjKX1pW25dPWQ7dmFyIF89W107cyYmc1tuXSYmU3Ioc1tuXSkuZm9yRWFjaChmdW5jdGlvbihOKXt2YXIgYj0iIjtpZihzW25dW05dLlR5cGU9PW1hLkNNTlQpe2I9U2Eoc1tuXVtOXS5UYXJnZXQsYSk7dmFyIEk9ZngoTGUoZSxiLCEwKSxiLGYpO2lmKCFJfHwhSS5sZW5ndGgpcmV0dXJuO0VzKGQsSSwhMSl9c1tuXVtOXS5UeXBlPT1tYS5UQ01OVCYmKGI9U2Eoc1tuXVtOXS5UYXJnZXQsYSksXz1fLmNvbmNhdChhMShMZShlLGIsITApLGYpKSl9KSxfJiZfLmxlbmd0aCYmRXMoZCxfLCEwLGYucGVvcGxlfHxbXSl9Y2F0Y2goTil7aWYoZi5XVEYpdGhyb3cgTn19ZnVuY3Rpb24gcHIoZSl7cmV0dXJuIGUuY2hhckF0KDApPT0iLyI/ZS5zbGljZSgxKTplfWZ1bmN0aW9uIEp4KGUsYSl7aWYoSzAoKSxhPWF8fHt9LHgwKGEpLGRyKGUsIk1FVEEtSU5GL21hbmlmZXN0LnhtbCIpfHxkcihlLCJvYmplY3RkYXRhLnhtbCIpKXJldHVybiBxcyhlLGEpO2lmKGRyKGUsIkluZGV4L0RvY3VtZW50Lml3YSIpKXtpZih0eXBlb2YgVWludDhBcnJheT4idSIpdGhyb3cgbmV3IEVycm9yKCJOVU1CRVJTIGZpbGUgcGFyc2luZyByZXF1aXJlcyBVaW50OEFycmF5IHN1cHBvcnQiKTtpZih0eXBlb2YgdTA8InUiKXtpZihlLkZpbGVJbmRleClyZXR1cm4gdTAoZSk7dmFyIHI9bWUudXRpbHMuY2ZiX25ldygpO3JldHVybiBybihlKS5mb3JFYWNoKGZ1bmN0aW9uKGZlKXtqaShyLGZlLFlpKGUsZmUpKX0pLHUwKHIpfXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgTlVNQkVSUyBmaWxlIil9aWYoIWRyKGUsIltDb250ZW50X1R5cGVzXS54bWwiKSl0aHJvdyBkcihlLCJpbmRleC54bWwuZ3oiKT9uZXcgRXJyb3IoIlVuc3VwcG9ydGVkIE5VTUJFUlMgMDggZmlsZSIpOmRyKGUsImluZGV4LnhtbCIpP25ldyBFcnJvcigiVW5zdXBwb3J0ZWQgTlVNQkVSUyAwOSBmaWxlIik6bmV3IEVycm9yKCJVbnN1cHBvcnRlZCBaSVAgZmlsZSIpO3ZhciBuPXJuKGUpLHQ9WGMob3IoZSwiW0NvbnRlbnRfVHlwZXNdLnhtbCIpKSxzPSExLGksYztpZih0Lndvcmtib29rcy5sZW5ndGg9PT0wJiYoYz0ieGwvd29ya2Jvb2sueG1sIixMZShlLGMsITApJiZ0Lndvcmtib29rcy5wdXNoKGMpKSx0Lndvcmtib29rcy5sZW5ndGg9PT0wKXtpZihjPSJ4bC93b3JrYm9vay5iaW4iLCFMZShlLGMsITApKXRocm93IG5ldyBFcnJvcigiQ291bGQgbm90IGZpbmQgd29ya2Jvb2siKTt0Lndvcmtib29rcy5wdXNoKGMpLHM9ITB9dC53b3JrYm9va3NbMF0uc2xpY2UoLTMpPT0iYmluIiYmKHM9ITApO3ZhciBmPXt9LG89e307aWYoIWEuYm9va1NoZWV0cyYmIWEuYm9va1Byb3BzKXtpZigkYT1bXSx0LnNzdCl0cnl7JGE9Y3goTGUoZSxwcih0LnNzdCkpLHQuc3N0LGEpfWNhdGNoKGZlKXtpZihhLldURil0aHJvdyBmZX1hLmNlbGxTdHlsZXMmJnQudGhlbWVzLmxlbmd0aCYmKGY9aXgob3IoZSx0LnRoZW1lc1swXS5yZXBsYWNlKC9eXC8vLCIiKSwhMCl8fCIiLHQudGhlbWVzWzBdLGEpKSx0LnN0eWxlJiYobz1zeChMZShlLHByKHQuc3R5bGUpKSx0LnN0eWxlLGYsYSkpfXQubGlua3MubWFwKGZ1bmN0aW9uKGZlKXt0cnl7dmFyIHJlPVBhKG9yKGUsS3QocHIoZmUpKSksZmUpO3JldHVybiBseChMZShlLHByKGZlKSkscmUsZmUsYSl9Y2F0Y2h7fX0pO3ZhciBsPWV4KExlKGUscHIodC53b3JrYm9va3NbMF0pKSx0Lndvcmtib29rc1swXSxhKSxoPXt9LHg9IiI7dC5jb3JlcHJvcHMubGVuZ3RoJiYoeD1MZShlLHByKHQuY29yZXByb3BzWzBdKSwhMCkseCYmKGg9Vm4oeCkpLHQuZXh0cHJvcHMubGVuZ3RoIT09MCYmKHg9TGUoZSxwcih0LmV4dHByb3BzWzBdKSwhMCkseCYmamMoeCxoLGEpKSk7dmFyIGQ9e307KCFhLmJvb2tTaGVldHN8fGEuYm9va1Byb3BzKSYmdC5jdXN0cHJvcHMubGVuZ3RoIT09MCYmKHg9b3IoZSxwcih0LmN1c3Rwcm9wc1swXSksITApLHgmJihkPVpjKHgsYSkpKTt2YXIgdj17fTtpZigoYS5ib29rU2hlZXRzfHxhLmJvb2tQcm9wcykmJihsLlNoZWV0cz9pPWwuU2hlZXRzLm1hcChmdW5jdGlvbihyZSl7cmV0dXJuIHJlLm5hbWV9KTpoLldvcmtzaGVldHMmJmguU2hlZXROYW1lcy5sZW5ndGg+MCYmKGk9aC5TaGVldE5hbWVzKSxhLmJvb2tQcm9wcyYmKHYuUHJvcHM9aCx2LkN1c3Rwcm9wcz1kKSxhLmJvb2tTaGVldHMmJnR5cGVvZiBpPCJ1IiYmKHYuU2hlZXROYW1lcz1pKSxhLmJvb2tTaGVldHM/di5TaGVldE5hbWVzOmEuYm9va1Byb3BzKSlyZXR1cm4gdjtpPXt9O3ZhciB1PXt9O2EuYm9va0RlcHMmJnQuY2FsY2NoYWluJiYodT1veChMZShlLHByKHQuY2FsY2NoYWluKSksdC5jYWxjY2hhaW4pKTt2YXIgZz0wLEY9e30seSxfO3t2YXIgTj1sLlNoZWV0cztoLldvcmtzaGVldHM9Ti5sZW5ndGgsaC5TaGVldE5hbWVzPVtdO2Zvcih2YXIgYj0wO2IhPU4ubGVuZ3RoOysrYiloLlNoZWV0TmFtZXNbYl09TltiXS5uYW1lfXZhciBJPXM/ImJpbiI6InhtbCIsQT10Lndvcmtib29rc1swXS5sYXN0SW5kZXhPZigiLyIpLFY9KHQud29ya2Jvb2tzWzBdLnNsaWNlKDAsQSsxKSsiX3JlbHMvIit0Lndvcmtib29rc1swXS5zbGljZShBKzEpKyIucmVscyIpLnJlcGxhY2UoL15cLy8sIiIpO2RyKGUsVil8fChWPSJ4bC9fcmVscy93b3JrYm9vay4iK0krIi5yZWxzIik7dmFyIEQ9UGEob3IoZSxWLCEwKSxWLnJlcGxhY2UoL19yZWxzLiovLCJzNXMiKSk7KHQubWV0YWRhdGF8fFtdKS5sZW5ndGg+PTEmJihhLnhsbWV0YT1oeChMZShlLHByKHQubWV0YWRhdGFbMF0pKSx0Lm1ldGFkYXRhWzBdLGEpKSwodC5wZW9wbGV8fFtdKS5sZW5ndGg+PTEmJihhLnBlb3BsZT10MShMZShlLHByKHQucGVvcGxlWzBdKSksYSkpLEQmJihEPVl4KEQsbC5TaGVldHMpKTt2YXIgej1MZShlLCJ4bC93b3Jrc2hlZXRzL3NoZWV0LnhtbCIsITApPzE6MDtlOmZvcihnPTA7ZyE9aC5Xb3Jrc2hlZXRzOysrZyl7dmFyIEc9InNoZWV0IjtpZihEJiZEW2ddPyh5PSJ4bC8iK0RbZ11bMV0ucmVwbGFjZSgvW1wvXT94bFwvLywiIiksZHIoZSx5KXx8KHk9RFtnXVsxXSksZHIoZSx5KXx8KHk9Vi5yZXBsYWNlKC9fcmVsc1wvLiokLywiIikrRFtnXVsxXSksRz1EW2ddWzJdKTooeT0ieGwvd29ya3NoZWV0cy9zaGVldCIrKGcrMS16KSsiLiIrSSx5PXkucmVwbGFjZSgvc2hlZXQwXC4vLCJzaGVldC4iKSksXz15LnJlcGxhY2UoL14oLiopKFwvKShbXlwvXSopJC8sIiQxL19yZWxzLyQzLnJlbHMiKSxhJiZhLnNoZWV0cyE9bnVsbClzd2l0Y2godHlwZW9mIGEuc2hlZXRzKXtjYXNlIm51bWJlciI6aWYoZyE9YS5zaGVldHMpY29udGludWUgZTticmVhaztjYXNlInN0cmluZyI6aWYoaC5TaGVldE5hbWVzW2ddLnRvTG93ZXJDYXNlKCkhPWEuc2hlZXRzLnRvTG93ZXJDYXNlKCkpY29udGludWUgZTticmVhaztkZWZhdWx0OmlmKEFycmF5LmlzQXJyYXkmJkFycmF5LmlzQXJyYXkoYS5zaGVldHMpKXtmb3IodmFyIFA9ITEsSj0wO0ohPWEuc2hlZXRzLmxlbmd0aDsrK0opdHlwZW9mIGEuc2hlZXRzW0pdPT0ibnVtYmVyIiYmYS5zaGVldHNbSl09PWcmJihQPTEpLHR5cGVvZiBhLnNoZWV0c1tKXT09InN0cmluZyImJmEuc2hlZXRzW0pdLnRvTG93ZXJDYXNlKCk9PWguU2hlZXROYW1lc1tnXS50b0xvd2VyQ2FzZSgpJiYoUD0xKTtpZighUCljb250aW51ZSBlfX1qeChlLHksXyxoLlNoZWV0TmFtZXNbZ10sZyxGLGksRyxhLGwsZixvKX1yZXR1cm4gdj17RGlyZWN0b3J5OnQsV29ya2Jvb2s6bCxQcm9wczpoLEN1c3Rwcm9wczpkLERlcHM6dSxTaGVldHM6aSxTaGVldE5hbWVzOmguU2hlZXROYW1lcyxTdHJpbmdzOiRhLFN0eWxlczpvLFRoZW1lczpmLFNTRjpYZShkZSl9LGEmJmEuYm9va0ZpbGVzJiYoZS5maWxlcz8odi5rZXlzPW4sdi5maWxlcz1lLmZpbGVzKToodi5rZXlzPVtdLHYuZmlsZXM9e30sZS5GdWxsUGF0aHMuZm9yRWFjaChmdW5jdGlvbihmZSxyZSl7ZmU9ZmUucmVwbGFjZSgvXlJvb3QgRW50cnlbXC9dLywiIiksdi5rZXlzLnB1c2goZmUpLHYuZmlsZXNbZmVdPWUuRmlsZUluZGV4W3JlXX0pKSksYSYmYS5ib29rVkJBJiYodC52YmEubGVuZ3RoPjA/di52YmFyYXc9TGUoZSxwcih0LnZiYVswXSksITApOnQuZGVmYXVsdHMmJnQuZGVmYXVsdHMuYmluPT09YzEmJih2LnZiYXJhdz1MZShlLCJ4bC92YmFQcm9qZWN0LmJpbiIsITApKSksdn1mdW5jdGlvbiBaeChlLGEpe3ZhciByPWF8fHt9LG49Ildvcmtib29rIix0PW1lLmZpbmQoZSxuKTt0cnl7aWYobj0iLyFEYXRhU3BhY2VzL1ZlcnNpb24iLHQ9bWUuZmluZChlLG4pLCF0fHwhdC5jb250ZW50KXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUgbWlzc2luZyAiK24pO2lmKEdvKHQuY29udGVudCksbj0iLyFEYXRhU3BhY2VzL0RhdGFTcGFjZU1hcCIsdD1tZS5maW5kKGUsbiksIXR8fCF0LmNvbnRlbnQpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBFbmNyeXB0ZWQgZmlsZSBtaXNzaW5nICIrbik7dmFyIHM9JG8odC5jb250ZW50KTtpZihzLmxlbmd0aCE9PTF8fHNbMF0uY29tcHMubGVuZ3RoIT09MXx8c1swXS5jb21wc1swXS50IT09MHx8c1swXS5uYW1lIT09IlN0cm9uZ0VuY3J5cHRpb25EYXRhU3BhY2UifHxzWzBdLmNvbXBzWzBdLnYhPT0iRW5jcnlwdGVkUGFja2FnZSIpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBFbmNyeXB0ZWQgZmlsZSBiYWQgIituKTtpZihuPSIvIURhdGFTcGFjZXMvRGF0YVNwYWNlSW5mby9TdHJvbmdFbmNyeXB0aW9uRGF0YVNwYWNlIix0PW1lLmZpbmQoZSxuKSwhdHx8IXQuY29udGVudCl0aHJvdyBuZXcgRXJyb3IoIkVDTUEtMzc2IEVuY3J5cHRlZCBmaWxlIG1pc3NpbmcgIituKTt2YXIgaT16byh0LmNvbnRlbnQpO2lmKGkubGVuZ3RoIT0xfHxpWzBdIT0iU3Ryb25nRW5jcnlwdGlvblRyYW5zZm9ybSIpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBFbmNyeXB0ZWQgZmlsZSBiYWQgIituKTtpZihuPSIvIURhdGFTcGFjZXMvVHJhbnNmb3JtSW5mby9TdHJvbmdFbmNyeXB0aW9uVHJhbnNmb3JtLyFQcmltYXJ5Iix0PW1lLmZpbmQoZSxuKSwhdHx8IXQuY29udGVudCl0aHJvdyBuZXcgRXJyb3IoIkVDTUEtMzc2IEVuY3J5cHRlZCBmaWxlIG1pc3NpbmcgIituKTtZbyh0LmNvbnRlbnQpfWNhdGNoe31pZihuPSIvRW5jcnlwdGlvbkluZm8iLHQ9bWUuZmluZChlLG4pLCF0fHwhdC5jb250ZW50KXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUgbWlzc2luZyAiK24pO3ZhciBjPWpvKHQuY29udGVudCk7aWYobj0iL0VuY3J5cHRlZFBhY2thZ2UiLHQ9bWUuZmluZChlLG4pLCF0fHwhdC5jb250ZW50KXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUgbWlzc2luZyAiK24pO2lmKGNbMF09PTQmJnR5cGVvZiBkZWNyeXB0X2FnaWxlPCJ1IilyZXR1cm4gZGVjcnlwdF9hZ2lsZShjWzFdLHQuY29udGVudCxyLnBhc3N3b3JkfHwiIixyKTtpZihjWzBdPT0yJiZ0eXBlb2YgZGVjcnlwdF9zdGQ3NjwidSIpcmV0dXJuIGRlY3J5cHRfc3RkNzYoY1sxXSx0LmNvbnRlbnQsci5wYXNzd29yZHx8IiIscik7dGhyb3cgbmV3IEVycm9yKCJGaWxlIGlzIHBhc3N3b3JkLXByb3RlY3RlZCIpfWZ1bmN0aW9uIGQwKGUsYSl7dmFyIHI9IiI7c3dpdGNoKChhfHx7fSkudHlwZXx8ImJhc2U2NCIpe2Nhc2UiYnVmZmVyIjpyZXR1cm5bZVswXSxlWzFdLGVbMl0sZVszXSxlWzRdLGVbNV0sZVs2XSxlWzddXTtjYXNlImJhc2U2NCI6cj1mcihlLnNsaWNlKDAsMTIpKTticmVhaztjYXNlImJpbmFyeSI6cj1lO2JyZWFrO2Nhc2UiYXJyYXkiOnJldHVybltlWzBdLGVbMV0sZVsyXSxlWzNdLGVbNF0sZVs1XSxlWzZdLGVbN11dO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiKyhhJiZhLnR5cGV8fCJ1bmRlZmluZWQiKSl9cmV0dXJuW3IuY2hhckNvZGVBdCgwKSxyLmNoYXJDb2RlQXQoMSksci5jaGFyQ29kZUF0KDIpLHIuY2hhckNvZGVBdCgzKSxyLmNoYXJDb2RlQXQoNCksci5jaGFyQ29kZUF0KDUpLHIuY2hhckNvZGVBdCg2KSxyLmNoYXJDb2RlQXQoNyldfWZ1bmN0aW9uIHF4KGUsYSl7cmV0dXJuIG1lLmZpbmQoZSwiRW5jcnlwdGVkUGFja2FnZSIpP1p4KGUsYSk6JHMoZSxhKX1mdW5jdGlvbiBReChlLGEpe3ZhciByLG49ZSx0PWF8fHt9O3JldHVybiB0LnR5cGV8fCh0LnR5cGU9Z2UmJkJ1ZmZlci5pc0J1ZmZlcihlKT8iYnVmZmVyIjoiYmFzZTY0Iikscj1hbihuLHQpLEp4KHIsdCl9ZnVuY3Rpb24gYWkoZSxhKXt2YXIgcj0wO2U6Zm9yKDtyPGUubGVuZ3RoOylzd2l0Y2goZS5jaGFyQ29kZUF0KHIpKXtjYXNlIDEwOmNhc2UgMTM6Y2FzZSAzMjorK3I7YnJlYWs7Y2FzZSA2MDpyZXR1cm4gaTAoZS5zbGljZShyKSxhKTtkZWZhdWx0OmJyZWFrIGV9cmV0dXJuIGJhLnRvX3dvcmtib29rKGUsYSl9ZnVuY3Rpb24gZWQoZSxhKXt2YXIgcj0iIixuPWQwKGUsYSk7c3dpdGNoKGEudHlwZSl7Y2FzZSJiYXNlNjQiOnI9ZnIoZSk7YnJlYWs7Y2FzZSJiaW5hcnkiOnI9ZTticmVhaztjYXNlImJ1ZmZlciI6cj1lLnRvU3RyaW5nKCJiaW5hcnkiKTticmVhaztjYXNlImFycmF5IjpyPXJhKGUpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiK2EudHlwZSl9cmV0dXJuIG5bMF09PTIzOSYmblsxXT09MTg3JiZuWzJdPT0xOTEmJihyPUFlKHIpKSxhLnR5cGU9ImJpbmFyeSIsYWkocixhKX1mdW5jdGlvbiByZChlLGEpe3ZhciByPWU7cmV0dXJuIGEudHlwZT09ImJhc2U2NCImJihyPWZyKHIpKSxyPXdhLnV0aWxzLmRlY29kZSgxMjAwLHIuc2xpY2UoMiksInN0ciIpLGEudHlwZT0iYmluYXJ5IixhaShyLGEpfWZ1bmN0aW9uIGFkKGUpe3JldHVybiBlLm1hdGNoKC9bXlx4MDAtXHg3Rl0vKT9DYShlKTplfWZ1bmN0aW9uIHYwKGUsYSxyLG4pe3JldHVybiBuPyhyLnR5cGU9InN0cmluZyIsYmEudG9fd29ya2Jvb2soZSxyKSk6YmEudG9fd29ya2Jvb2soYSxyKX1mdW5jdGlvbiBwMChlLGEpe0EwKCk7dmFyIHI9YXx8e307aWYodHlwZW9mIEFycmF5QnVmZmVyPCJ1IiYmZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXJldHVybiBwMChuZXcgVWludDhBcnJheShlKSwocj1YZShyKSxyLnR5cGU9ImFycmF5IixyKSk7dHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZlIGluc3RhbmNlb2YgVWludDhBcnJheSYmIXIudHlwZSYmKHIudHlwZT10eXBlb2YgRGVubzwidSI/ImJ1ZmZlciI6ImFycmF5Iik7dmFyIG49ZSx0PVswLDAsMCwwXSxzPSExO2lmKHIuY2VsbFN0eWxlcyYmKHIuY2VsbE5GPSEwLHIuc2hlZXRTdHVicz0hMCksVGE9e30sci5kYXRlTkYmJihUYS5kYXRlTkY9ci5kYXRlTkYpLHIudHlwZXx8KHIudHlwZT1nZSYmQnVmZmVyLmlzQnVmZmVyKGUpPyJidWZmZXIiOiJiYXNlNjQiKSxyLnR5cGU9PSJmaWxlIiYmKHIudHlwZT1nZT8iYnVmZmVyIjoiYmluYXJ5IixuPVZpKGUpLHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmIWdlJiYoci50eXBlPSJhcnJheSIpKSxyLnR5cGU9PSJzdHJpbmciJiYocz0hMCxyLnR5cGU9ImJpbmFyeSIsci5jb2RlcGFnZT02NTAwMSxuPWFkKGUpKSxyLnR5cGU9PSJhcnJheSImJnR5cGVvZiBVaW50OEFycmF5PCJ1IiYmZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkmJnR5cGVvZiBBcnJheUJ1ZmZlcjwidSIpe3ZhciBpPW5ldyBBcnJheUJ1ZmZlcigzKSxjPW5ldyBVaW50OEFycmF5KGkpO2lmKGMuZm9vPSJiYXIiLCFjLmZvbylyZXR1cm4gcj1YZShyKSxyLnR5cGU9ImFycmF5IixwMCh5dChuKSxyKX1zd2l0Y2goKHQ9ZDAobixyKSlbMF0pe2Nhc2UgMjA4OmlmKHRbMV09PT0yMDcmJnRbMl09PT0xNyYmdFszXT09PTIyNCYmdFs0XT09PTE2MSYmdFs1XT09PTE3NyYmdFs2XT09PTI2JiZ0WzddPT09MjI1KXJldHVybiBxeChtZS5yZWFkKG4scikscik7YnJlYWs7Y2FzZSA5OmlmKHRbMV08PTgpcmV0dXJuICRzKG4scik7YnJlYWs7Y2FzZSA2MDpyZXR1cm4gaTAobixyKTtjYXNlIDczOmlmKHRbMV09PT03MyYmdFsyXT09PTQyJiZ0WzNdPT09MCl0aHJvdyBuZXcgRXJyb3IoIlRJRkYgSW1hZ2UgRmlsZSBpcyBub3QgYSBzcHJlYWRzaGVldCIpO2lmKHRbMV09PT02OClyZXR1cm4gT28obixyKTticmVhaztjYXNlIDg0OmlmKHRbMV09PT02NSYmdFsyXT09PTY2JiZ0WzNdPT09NzYpcmV0dXJuIHlvLnRvX3dvcmtib29rKG4scik7YnJlYWs7Y2FzZSA4MDpyZXR1cm4gdFsxXT09PTc1JiZ0WzJdPDkmJnRbM108OT9ReChuLHIpOnYwKGUsbixyLHMpO2Nhc2UgMjM5OnJldHVybiB0WzNdPT09NjA/aTAobixyKTp2MChlLG4scixzKTtjYXNlIDI1NTppZih0WzFdPT09MjU0KXJldHVybiByZChuLHIpO2lmKHRbMV09PT0wJiZ0WzJdPT09MiYmdFszXT09PTApcmV0dXJuIFVhLnRvX3dvcmtib29rKG4scik7YnJlYWs7Y2FzZSAwOmlmKHRbMV09PT0wJiYodFsyXT49MiYmdFszXT09PTB8fHRbMl09PT0wJiYodFszXT09PTh8fHRbM109PT05KSkpcmV0dXJuIFVhLnRvX3dvcmtib29rKG4scik7YnJlYWs7Y2FzZSAzOmNhc2UgMTMxOmNhc2UgMTM5OmNhc2UgMTQwOnJldHVybiBocy50b193b3JrYm9vayhuLHIpO2Nhc2UgMTIzOmlmKHRbMV09PT05MiYmdFsyXT09PTExNCYmdFszXT09PTExNilyZXR1cm4gY2wudG9fd29ya2Jvb2sobixyKTticmVhaztjYXNlIDEwOmNhc2UgMTM6Y2FzZSAzMjpyZXR1cm4gZWQobixyKTtjYXNlIDEzNzppZih0WzFdPT09ODAmJnRbMl09PT03OCYmdFszXT09PTcxKXRocm93IG5ldyBFcnJvcigiUE5HIEltYWdlIEZpbGUgaXMgbm90IGEgc3ByZWFkc2hlZXQiKTticmVha31yZXR1cm4gU28uaW5kZXhPZih0WzBdKT4tMSYmdFsyXTw9MTImJnRbM108PTMxP2hzLnRvX3dvcmtib29rKG4scik6djAoZSxuLHIscyl9ZnVuY3Rpb24gdGQoZSxhLHIsbix0LHMsaSxjKXt2YXIgZj16ZShyKSxvPWMuZGVmdmFsLGw9Yy5yYXd8fCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYywicmF3IiksaD0hMCx4PXQ9PT0xP1tdOnt9O2lmKHQhPT0xKWlmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSl0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHgsIl9fcm93TnVtX18iLHt2YWx1ZTpyLGVudW1lcmFibGU6ITF9KX1jYXRjaHt4Ll9fcm93TnVtX189cn1lbHNlIHguX19yb3dOdW1fXz1yO2lmKCFpfHxlW3JdKWZvcih2YXIgZD1hLnMuYztkPD1hLmUuYzsrK2Qpe3ZhciB2PWk/ZVtyXVtkXTplW25bZF0rZl07aWYodj09PXZvaWQgMHx8di50PT09dm9pZCAwKXtpZihvPT09dm9pZCAwKWNvbnRpbnVlO3NbZF0hPW51bGwmJih4W3NbZF1dPW8pO2NvbnRpbnVlfXZhciB1PXYudjtzd2l0Y2godi50KXtjYXNlInoiOmlmKHU9PW51bGwpYnJlYWs7Y29udGludWU7Y2FzZSJlIjp1PXU9PTA/bnVsbDp2b2lkIDA7YnJlYWs7Y2FzZSJzIjpjYXNlImQiOmNhc2UiYiI6Y2FzZSJuIjpicmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkIHR5cGUgIit2LnQpfWlmKHNbZF0hPW51bGwpe2lmKHU9PW51bGwpaWYodi50PT0iZSImJnU9PT1udWxsKXhbc1tkXV09bnVsbDtlbHNlIGlmKG8hPT12b2lkIDApeFtzW2RdXT1vO2Vsc2UgaWYobCYmdT09PW51bGwpeFtzW2RdXT1udWxsO2Vsc2UgY29udGludWU7ZWxzZSB4W3NbZF1dPWwmJih2LnQhPT0ibiJ8fHYudD09PSJuIiYmYy5yYXdOdW1iZXJzIT09ITEpP3U6THIodix1LGMpO3UhPW51bGwmJihoPSExKX19cmV0dXJue3Jvdzp4LGlzZW1wdHk6aH19ZnVuY3Rpb24gZzAoZSxhKXtpZihlPT1udWxsfHxlWyIhcmVmIl09PW51bGwpcmV0dXJuW107dmFyIHI9e3Q6Im4iLHY6MH0sbj0wLHQ9MSxzPVtdLGk9MCxjPSIiLGY9e3M6e3I6MCxjOjB9LGU6e3I6MCxjOjB9fSxvPWF8fHt9LGw9by5yYW5nZSE9bnVsbD9vLnJhbmdlOmVbIiFyZWYiXTtzd2l0Y2goby5oZWFkZXI9PT0xP249MTpvLmhlYWRlcj09PSJBIj9uPTI6QXJyYXkuaXNBcnJheShvLmhlYWRlcik/bj0zOm8uaGVhZGVyPT1udWxsJiYobj0wKSx0eXBlb2YgbCl7Y2FzZSJzdHJpbmciOmY9T2UobCk7YnJlYWs7Y2FzZSJudW1iZXIiOmY9T2UoZVsiIXJlZiJdKSxmLnMucj1sO2JyZWFrO2RlZmF1bHQ6Zj1sfW4+MCYmKHQ9MCk7dmFyIGg9emUoZi5zLnIpLHg9W10sZD1bXSx2PTAsdT0wLGc9QXJyYXkuaXNBcnJheShlKSxGPWYucy5yLHk9MCxfPXt9O2cmJiFlW0ZdJiYoZVtGXT1bXSk7dmFyIE49by5za2lwSGlkZGVuJiZlWyIhY29scyJdfHxbXSxiPW8uc2tpcEhpZGRlbiYmZVsiIXJvd3MiXXx8W107Zm9yKHk9Zi5zLmM7eTw9Zi5lLmM7Kyt5KWlmKCEoTlt5XXx8e30pLmhpZGRlbilzd2l0Y2goeFt5XT1VZSh5KSxyPWc/ZVtGXVt5XTplW3hbeV0raF0sbil7Y2FzZSAxOnNbeV09eS1mLnMuYzticmVhaztjYXNlIDI6c1t5XT14W3ldO2JyZWFrO2Nhc2UgMzpzW3ldPW8uaGVhZGVyW3ktZi5zLmNdO2JyZWFrO2RlZmF1bHQ6aWYocj09bnVsbCYmKHI9e3c6Il9fRU1QVFkiLHQ6InMifSksYz1pPUxyKHIsbnVsbCxvKSx1PV9baV18fDAsIXUpX1tpXT0xO2Vsc2V7ZG8gYz1pKyJfIit1Kys7d2hpbGUoX1tjXSk7X1tpXT11LF9bY109MX1zW3ldPWN9Zm9yKEY9Zi5zLnIrdDtGPD1mLmUucjsrK0YpaWYoIShiW0ZdfHx7fSkuaGlkZGVuKXt2YXIgST10ZChlLGYsRix4LG4scyxnLG8pOyhJLmlzZW1wdHk9PT0hMXx8KG49PT0xP28uYmxhbmtyb3dzIT09ITE6by5ibGFua3Jvd3MpKSYmKGRbdisrXT1JLnJvdyl9cmV0dXJuIGQubGVuZ3RoPXYsZH12YXIgdGk9LyIvZztmdW5jdGlvbiBuZChlLGEscixuLHQscyxpLGMpe2Zvcih2YXIgZj0hMCxvPVtdLGw9IiIsaD16ZShyKSx4PWEucy5jO3g8PWEuZS5jOysreClpZihuW3hdKXt2YXIgZD1jLmRlbnNlPyhlW3JdfHxbXSlbeF06ZVtuW3hdK2hdO2lmKGQ9PW51bGwpbD0iIjtlbHNlIGlmKGQudiE9bnVsbCl7Zj0hMSxsPSIiKyhjLnJhd051bWJlcnMmJmQudD09Im4iP2QudjpMcihkLG51bGwsYykpO2Zvcih2YXIgdj0wLHU9MDt2IT09bC5sZW5ndGg7Kyt2KWlmKCh1PWwuY2hhckNvZGVBdCh2KSk9PT10fHx1PT09c3x8dT09PTM0fHxjLmZvcmNlUXVvdGVzKXtsPSciJytsLnJlcGxhY2UodGksJyIiJykrJyInO2JyZWFrfWw9PSJJRCImJihsPSciSUQiJyl9ZWxzZSBkLmYhPW51bGwmJiFkLkY/KGY9ITEsbD0iPSIrZC5mLGwuaW5kZXhPZigiLCIpPj0wJiYobD0nIicrbC5yZXBsYWNlKHRpLCciIicpKyciJykpOmw9IiI7by5wdXNoKGwpfXJldHVybiBjLmJsYW5rcm93cz09PSExJiZmP251bGw6by5qb2luKGkpfWZ1bmN0aW9uIG5pKGUsYSl7dmFyIHI9W10sbj1hPz97fTtpZihlPT1udWxsfHxlWyIhcmVmIl09PW51bGwpcmV0dXJuIiI7dmFyIHQ9T2UoZVsiIXJlZiJdKSxzPW4uRlMhPT12b2lkIDA/bi5GUzoiLCIsaT1zLmNoYXJDb2RlQXQoMCksYz1uLlJTIT09dm9pZCAwP24uUlM6YApgLGY9Yy5jaGFyQ29kZUF0KDApLG89bmV3IFJlZ0V4cCgocz09InwiPyJcXHwiOnMpKyIrJCIpLGw9IiIsaD1bXTtuLmRlbnNlPUFycmF5LmlzQXJyYXkoZSk7Zm9yKHZhciB4PW4uc2tpcEhpZGRlbiYmZVsiIWNvbHMiXXx8W10sZD1uLnNraXBIaWRkZW4mJmVbIiFyb3dzIl18fFtdLHY9dC5zLmM7djw9dC5lLmM7Kyt2KSh4W3ZdfHx7fSkuaGlkZGVufHwoaFt2XT1VZSh2KSk7Zm9yKHZhciB1PTAsZz10LnMucjtnPD10LmUucjsrK2cpKGRbZ118fHt9KS5oaWRkZW58fChsPW5kKGUsdCxnLGgsaSxmLHMsbiksbCE9bnVsbCYmKG4uc3RyaXAmJihsPWwucmVwbGFjZShvLCIiKSksKGx8fG4uYmxhbmtyb3dzIT09ITEpJiZyLnB1c2goKHUrKz9jOiIiKStsKSkpO3JldHVybiBkZWxldGUgbi5kZW5zZSxyLmpvaW4oIiIpfWZ1bmN0aW9uIHNkKGUsYSl7YXx8KGE9e30pLGEuRlM9IgkiLGEuUlM9YApgO3ZhciByPW5pKGUsYSk7cmV0dXJuIHJ9ZnVuY3Rpb24gaWQoZSl7dmFyIGE9IiIscixuPSIiO2lmKGU9PW51bGx8fGVbIiFyZWYiXT09bnVsbClyZXR1cm5bXTt2YXIgdD1PZShlWyIhcmVmIl0pLHM9IiIsaT1bXSxjLGY9W10sbz1BcnJheS5pc0FycmF5KGUpO2ZvcihjPXQucy5jO2M8PXQuZS5jOysrYylpW2NdPVVlKGMpO2Zvcih2YXIgbD10LnMucjtsPD10LmUucjsrK2wpZm9yKHM9emUobCksYz10LnMuYztjPD10LmUuYzsrK2MpaWYoYT1pW2NdK3Mscj1vPyhlW2xdfHxbXSlbY106ZVthXSxuPSIiLHIhPT12b2lkIDApe2lmKHIuRiE9bnVsbCl7aWYoYT1yLkYsIXIuZiljb250aW51ZTtuPXIuZixhLmluZGV4T2YoIjoiKT09LTEmJihhPWErIjoiK2EpfWlmKHIuZiE9bnVsbCluPXIuZjtlbHNle2lmKHIudD09InoiKWNvbnRpbnVlO2lmKHIudD09Im4iJiZyLnYhPW51bGwpbj0iIityLnY7ZWxzZSBpZihyLnQ9PSJiIiluPXIudj8iVFJVRSI6IkZBTFNFIjtlbHNlIGlmKHIudyE9PXZvaWQgMCluPSInIityLnc7ZWxzZXtpZihyLnY9PT12b2lkIDApY29udGludWU7ci50PT0icyI/bj0iJyIrci52Om49IiIrci52fX1mW2YubGVuZ3RoXT1hKyI9IitufXJldHVybiBmfWZ1bmN0aW9uIHNpKGUsYSxyKXt2YXIgbj1yfHx7fSx0PSshbi5za2lwSGVhZGVyLHM9ZXx8e30saT0wLGM9MDtpZihzJiZuLm9yaWdpbiE9bnVsbClpZih0eXBlb2Ygbi5vcmlnaW49PSJudW1iZXIiKWk9bi5vcmlnaW47ZWxzZXt2YXIgZj10eXBlb2Ygbi5vcmlnaW49PSJzdHJpbmciP25yKG4ub3JpZ2luKTpuLm9yaWdpbjtpPWYucixjPWYuY312YXIgbyxsPXtzOntjOjAscjowfSxlOntjLHI6aSthLmxlbmd0aC0xK3R9fTtpZihzWyIhcmVmIl0pe3ZhciBoPU9lKHNbIiFyZWYiXSk7bC5lLmM9TWF0aC5tYXgobC5lLmMsaC5lLmMpLGwuZS5yPU1hdGgubWF4KGwuZS5yLGguZS5yKSxpPT0tMSYmKGk9aC5lLnIrMSxsLmUucj1pK2EubGVuZ3RoLTErdCl9ZWxzZSBpPT0tMSYmKGk9MCxsLmUucj1hLmxlbmd0aC0xK3QpO3ZhciB4PW4uaGVhZGVyfHxbXSxkPTA7YS5mb3JFYWNoKGZ1bmN0aW9uKHUsZyl7U3IodSkuZm9yRWFjaChmdW5jdGlvbihGKXsoZD14LmluZGV4T2YoRikpPT0tMSYmKHhbZD14Lmxlbmd0aF09Rik7dmFyIHk9dVtGXSxfPSJ6IixOPSIiLGI9dWUoe2M6YytkLHI6aStnK3R9KTtvPWphKHMsYikseSYmdHlwZW9mIHk9PSJvYmplY3QiJiYhKHkgaW5zdGFuY2VvZiBEYXRlKT9zW2JdPXk6KHR5cGVvZiB5PT0ibnVtYmVyIj9fPSJuIjp0eXBlb2YgeT09ImJvb2xlYW4iP189ImIiOnR5cGVvZiB5PT0ic3RyaW5nIj9fPSJzIjp5IGluc3RhbmNlb2YgRGF0ZT8oXz0iZCIsbi5jZWxsRGF0ZXN8fChfPSJuIix5PXRyKHkpKSxOPW4uZGF0ZU5GfHxkZVsxNF0pOnk9PT1udWxsJiZuLm51bGxFcnJvciYmKF89ImUiLHk9MCksbz8oby50PV8sby52PXksZGVsZXRlIG8udyxkZWxldGUgby5SLE4mJihvLno9TikpOnNbYl09bz17dDpfLHY6eX0sTiYmKG8uej1OKSl9KX0pLGwuZS5jPU1hdGgubWF4KGwuZS5jLGMreC5sZW5ndGgtMSk7dmFyIHY9emUoaSk7aWYodClmb3IoZD0wO2Q8eC5sZW5ndGg7KytkKXNbVWUoZCtjKSt2XT17dDoicyIsdjp4W2RdfTtyZXR1cm4gc1siIXJlZiJdPV9lKGwpLHN9ZnVuY3Rpb24gY2QoZSxhKXtyZXR1cm4gc2kobnVsbCxlLGEpfWZ1bmN0aW9uIGphKGUsYSxyKXtpZih0eXBlb2YgYT09InN0cmluZyIpe2lmKEFycmF5LmlzQXJyYXkoZSkpe3ZhciBuPW5yKGEpO3JldHVybiBlW24ucl18fChlW24ucl09W10pLGVbbi5yXVtuLmNdfHwoZVtuLnJdW24uY109e3Q6InoifSl9cmV0dXJuIGVbYV18fChlW2FdPXt0OiJ6In0pfXJldHVybiB0eXBlb2YgYSE9Im51bWJlciI/amEoZSx1ZShhKSk6amEoZSx1ZSh7cjphLGM6cnx8MH0pKX1mdW5jdGlvbiBmZChlLGEpe2lmKHR5cGVvZiBhPT0ibnVtYmVyIil7aWYoYT49MCYmZS5TaGVldE5hbWVzLmxlbmd0aD5hKXJldHVybiBhO3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGZpbmQgc2hlZXQgIyAiK2EpfWVsc2UgaWYodHlwZW9mIGE9PSJzdHJpbmciKXt2YXIgcj1lLlNoZWV0TmFtZXMuaW5kZXhPZihhKTtpZihyPi0xKXJldHVybiByO3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGZpbmQgc2hlZXQgbmFtZSB8IithKyJ8Iil9ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIHNoZWV0IHwiK2ErInwiKX1mdW5jdGlvbiBtMCgpe3JldHVybntTaGVldE5hbWVzOltdLFNoZWV0czp7fX19ZnVuY3Rpb24gXzAoZSxhLHIsbil7dmFyIHQ9MTtpZighcilmb3IoO3Q8PTY1NTM1JiZlLlNoZWV0TmFtZXMuaW5kZXhPZihyPSJTaGVldCIrdCkhPS0xOysrdCxyPXZvaWQgMCk7aWYoIXJ8fGUuU2hlZXROYW1lcy5sZW5ndGg+PTY1NTM1KXRocm93IG5ldyBFcnJvcigiVG9vIG1hbnkgd29ya3NoZWV0cyIpO2lmKG4mJmUuU2hlZXROYW1lcy5pbmRleE9mKHIpPj0wKXt2YXIgcz1yLm1hdGNoKC8oXi4qPykoXGQrKSQvKTt0PXMmJitzWzJdfHwwO3ZhciBpPXMmJnNbMV18fHI7Zm9yKCsrdDt0PD02NTUzNSYmZS5TaGVldE5hbWVzLmluZGV4T2Yocj1pK3QpIT0tMTsrK3QpO31pZih6dShyKSxlLlNoZWV0TmFtZXMuaW5kZXhPZihyKT49MCl0aHJvdyBuZXcgRXJyb3IoIldvcmtzaGVldCB3aXRoIG5hbWUgfCIrcisifCBhbHJlYWR5IGV4aXN0cyEiKTtyZXR1cm4gZS5TaGVldE5hbWVzLnB1c2gociksZS5TaGVldHNbcl09YSxyfWZ1bmN0aW9uIG9kKGUsYSxyKXtlLldvcmtib29rfHwoZS5Xb3JrYm9vaz17fSksZS5Xb3JrYm9vay5TaGVldHN8fChlLldvcmtib29rLlNoZWV0cz1bXSk7dmFyIG49ZmQoZSxhKTtzd2l0Y2goZS5Xb3JrYm9vay5TaGVldHNbbl18fChlLldvcmtib29rLlNoZWV0c1tuXT17fSkscil7Y2FzZSAwOmNhc2UgMTpjYXNlIDI6YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkJhZCBzaGVldCB2aXNpYmlsaXR5IHNldHRpbmcgIityKX1lLldvcmtib29rLlNoZWV0c1tuXS5IaWRkZW49cn1mdW5jdGlvbiBsZChlLGEpe3JldHVybiBlLno9YSxlfWZ1bmN0aW9uIGlpKGUsYSxyKXtyZXR1cm4gYT8oZS5sPXtUYXJnZXQ6YX0sciYmKGUubC5Ub29sdGlwPXIpKTpkZWxldGUgZS5sLGV9ZnVuY3Rpb24gaGQoZSxhLHIpe3JldHVybiBpaShlLCIjIithLHIpfWZ1bmN0aW9uIHVkKGUsYSxyKXtlLmN8fChlLmM9W10pLGUuYy5wdXNoKHt0OmEsYTpyfHwiU2hlZXRKUyJ9KX1mdW5jdGlvbiB4ZChlLGEscixuKXtmb3IodmFyIHQ9dHlwZW9mIGEhPSJzdHJpbmciP2E6T2UoYSkscz10eXBlb2YgYT09InN0cmluZyI/YTpfZShhKSxpPXQucy5yO2k8PXQuZS5yOysraSlmb3IodmFyIGM9dC5zLmM7Yzw9dC5lLmM7KytjKXt2YXIgZj1qYShlLGksYyk7Zi50PSJuIixmLkY9cyxkZWxldGUgZi52LGk9PXQucy5yJiZjPT10LnMuYyYmKGYuZj1yLG4mJihmLkQ9ITApKX1yZXR1cm4gZX12YXIgRTA9e2VuY29kZV9jb2w6VWUsZW5jb2RlX3Jvdzp6ZSxlbmNvZGVfY2VsbDp1ZSxlbmNvZGVfcmFuZ2U6X2UsZGVjb2RlX2NvbDpWdCxkZWNvZGVfcm93Okh0LHNwbGl0X2NlbGw6d2MsZGVjb2RlX2NlbGw6bnIsZGVjb2RlX3JhbmdlOnBhLGZvcm1hdF9jZWxsOkxyLHNoZWV0X2FkZF9hb2E6Tm4sc2hlZXRfYWRkX2pzb246c2ksc2hlZXRfYWRkX2RvbTpLcyxhb2FfdG9fc2hlZXQ6Z2EsanNvbl90b19zaGVldDpjZCx0YWJsZV90b19zaGVldDpZcyx0YWJsZV90b19ib29rOk94LHNoZWV0X3RvX2NzdjpuaSxzaGVldF90b190eHQ6c2Qsc2hlZXRfdG9fanNvbjpnMCxzaGVldF90b19odG1sOkR4LHNoZWV0X3RvX2Zvcm11bGFlOmlkLHNoZWV0X3RvX3Jvd19vYmplY3RfYXJyYXk6ZzAsc2hlZXRfZ2V0X2NlbGw6amEsYm9va19uZXc6bTAsYm9va19hcHBlbmRfc2hlZXQ6XzAsYm9va19zZXRfc2hlZXRfdmlzaWJpbGl0eTpvZCxjZWxsX3NldF9udW1iZXJfZm9ybWF0OmxkLGNlbGxfc2V0X2h5cGVybGluazppaSxjZWxsX3NldF9pbnRlcm5hbF9saW5rOmhkLGNlbGxfYWRkX2NvbW1lbnQ6dWQsc2hlZXRfc2V0X2FycmF5X2Zvcm11bGE6eGQsY29uc3RzOntTSEVFVF9WSVNJQkxFOjAsU0hFRVRfSElEREVOOjEsU0hFRVRfVkVSWV9ISURERU46Mn19O2NsYXNzIGRke3N0YXRpYyBpc0NTVihhKXt2YXIgcjtyZXR1cm4oKHI9YS5zcGxpdCgiLiIpLnBvcCgpKT09bnVsbD92b2lkIDA6ci50b0xvd2VyQ2FzZSgpKT09PSJjc3YifXN0YXRpYyBpc0V4Y2VsKGEpe3ZhciBuO2NvbnN0IHI9KG49YS5zcGxpdCgiLiIpLnBvcCgpKT09bnVsbD92b2lkIDA6bi50b0xvd2VyQ2FzZSgpO3JldHVybiByPT09InhscyJ8fHI9PT0ieGxzeCJ9c3RhdGljIGFzeW5jIHBhcnNlRmlsZShhLHIsbix0PSExKXtpZih0aGlzLmlzQ1NWKGEpKXtjb25zdCBzPWF3YWl0IHRoaXMucGFyc2VDU1YoYSxyLG4sdCk7cmV0dXJue3NoZWV0czpbey4uLnMsbmFtZToiQ1NWIn1dLC4uLnN9fWlmKHRoaXMuaXNFeGNlbChhKSlyZXR1cm4gdGhpcy5wYXJzZUV4Y2VsKHIsbix0KTt0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGZpbGUgZm9ybWF0Iil9c3RhdGljIGFzeW5jIHBhcnNlQ1NWKGEscixuLHQ9ITEpe2NvbnN0IGM9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpLmRlY29kZShyKS5zcGxpdChgCmApLmZpbHRlcihoPT5oLnRyaW0oKSk7aWYoYy5sZW5ndGg9PT0wKXRocm93IG5ldyBFcnJvcigiRmlsZSBpcyBlbXB0eSIpO2NvbnN0IGY9dGhpcy5wYXJzZUNTVkxpbmUoY1swXSksbz1jLmxlbmd0aC0xLGw9e25hbWU6YSxyb3dzOm8sY29sdW1uczpmfTtpZih0KXtjb25zdCBoPW4/TWF0aC5taW4obyxuKTpvLHg9W107Zm9yKGxldCBkPTE7ZDw9aDtkKyspe2NvbnN0IHY9dGhpcy5wYXJzZUNTVkxpbmUoY1tkXSksdT17fTtmLmZvckVhY2goKGcsRik9PnVbZ109dltGXXx8IiIpLHgucHVzaCh1KX1sLmRhdGE9eH1yZXR1cm4gbH1zdGF0aWMgcGFyc2VDU1ZMaW5lKGEpe2NvbnN0IHI9W107bGV0IG49IiIsdD0hMTtmb3IobGV0IHM9MDtzPGEubGVuZ3RoO3MrKyl7Y29uc3QgaT1hW3NdO2k9PT0nIic/dD0hdDppPT09IiwiJiYhdD8oci5wdXNoKG4udHJpbSgpKSxuPSIiKTpuKz1pfXJldHVybiByLnB1c2gobi50cmltKCkpLHJ9c3RhdGljIHBhcnNlRXhjZWwoYSxyLG49ITEpe2NvbnN0IHQ9cDAoYSx7dHlwZToiYXJyYXkifSkscz1bXTtmb3IoY29uc3QgYyBvZiB0LlNoZWV0TmFtZXMpe2NvbnN0IGY9dC5TaGVldHNbY10sbz1FMC5kZWNvZGVfcmFuZ2UoZlsiIXJlZiJdfHwiQTEiKSxsPW8uZS5yLGg9W107Zm9yKGxldCBkPW8ucy5jO2Q8PW8uZS5jO2QrKyl7Y29uc3Qgdj1FMC5lbmNvZGVfY2VsbCh7cjowLGM6ZH0pLHU9Zlt2XTtoLnB1c2godT9TdHJpbmcodS52KTpgQ29sdW1uJHtkKzF9YCl9Y29uc3QgeD17bmFtZTpjLHJvd3M6bCxjb2x1bW5zOmh9O2lmKG4pe2NvbnN0IGQ9cj9NYXRoLm1pbihsLHIpOmwsdj1FMC5zaGVldF90b19qc29uKGYse3JhbmdlOjEsaGVhZGVyOmgsZGVmdmFsOiIifSk7eC5kYXRhPXYuc2xpY2UoMCxkKX1zLnB1c2goeCl9Y29uc3QgaT1zWzBdfHx7cm93czowLGNvbHVtbnM6W119O3JldHVybntzaGVldHM6cyxyb3dzOmkucm93cyxjb2x1bW5zOmkuY29sdW1ucyxkYXRhOmkuZGF0YX19fXNlbGYub25tZXNzYWdlPWFzeW5jIGU9Pntjb25zdHtpZDphLHR5cGU6cixmaWxlOm4sbWF4Um93czp0LHJldHVybkRhdGE6c309ZS5kYXRhO3RyeXtpZihyPT09InBhcnNlIil7Y29uc3QgaT1hd2FpdCBkZC5wYXJzZUZpbGUobi5uYW1lLG4uYXJyYXlCdWZmZXIsdCxzKTtzZWxmLnBvc3RNZXNzYWdlKHtpZDphLHR5cGU6InN1Y2Nlc3MiLHJlc3VsdDppfSl9fWNhdGNoKGkpe3NlbGYucG9zdE1lc3NhZ2Uoe2lkOmEsdHlwZToiZXJyb3IiLGVycm9yOmkgaW5zdGFuY2VvZiBFcnJvcj9pLm1lc3NhZ2U6IlVua25vd24gZXJyb3IifSl9fX0pKCk7Cg==", _u = (t) => Uint8Array.from(atob(t), (l) => l.charCodeAt(0)), _l = typeof self < "u" && self.Blob && new Blob([_u(hi)], { type: "text/javascript;charset=utf-8" });
9028
+ function Au(t) {
9024
9029
  let l;
9025
9030
  try {
9026
9031
  if (l = _l && (self.URL || self.webkitURL).createObjectURL(_l), !l) throw "";
@@ -9068,7 +9073,7 @@ class Il {
9068
9073
  return `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
9069
9074
  }
9070
9075
  }
9071
- class qu {
9076
+ class $u {
9072
9077
  constructor() {
9073
9078
  this.worker = null, this.resolveMap = /* @__PURE__ */ new Map(), this.messageId = 0, this.initWorker();
9074
9079
  }
@@ -9098,7 +9103,7 @@ class qu {
9098
9103
  initWorker() {
9099
9104
  try {
9100
9105
  if (typeof window > "u") return;
9101
- const l = new $u();
9106
+ const l = new Au();
9102
9107
  this.worker = l, l.onmessage = (n) => {
9103
9108
  const { id: i, type: d, result: m, error: I } = n.data, r = this.resolveMap.get(i);
9104
9109
  r && (d === "success" ? r.resolve(m) : d === "error" && r.reject(new Error(I)), this.resolveMap.delete(i));
@@ -9114,7 +9119,7 @@ class qu {
9114
9119
  }
9115
9120
  class Sl {
9116
9121
  static getWorkerPool() {
9117
- return this.workerPool || (this.workerPool = new qu()), this.workerPool;
9122
+ return this.workerPool || (this.workerPool = new $u()), this.workerPool;
9118
9123
  }
9119
9124
  static isDataFile(l) {
9120
9125
  var i;
@@ -9133,16 +9138,16 @@ class Sl {
9133
9138
  }
9134
9139
  }
9135
9140
  Sl.workerPool = null;
9136
- const l6 = { class: "vt-upload" }, i6 = {
9141
+ const qu = { class: "vt-upload" }, l6 = {
9137
9142
  key: 0,
9138
9143
  class: "vt-upload__processing"
9139
- }, t6 = { class: "vt-upload__processing-header" }, e6 = { class: "vt-upload__processing-info" }, s6 = { class: "vt-upload__processing-title" }, o6 = { class: "vt-upload__processing-filename" }, n6 = { class: "vt-upload__processing-percentage" }, c6 = { class: "vt-upload__progress-bar" }, d6 = { class: "vt-upload__text" }, m6 = { class: "vt-upload__placeholder" }, Z6 = { class: "vt-upload__link" }, I6 = {
9144
+ }, i6 = { class: "vt-upload__processing-header" }, t6 = { class: "vt-upload__processing-info" }, e6 = { class: "vt-upload__processing-title" }, s6 = { class: "vt-upload__processing-filename" }, o6 = { class: "vt-upload__processing-percentage" }, n6 = { class: "vt-upload__progress-bar" }, c6 = { class: "vt-upload__text" }, d6 = { class: "vt-upload__placeholder" }, m6 = { class: "vt-upload__link" }, Z6 = {
9140
9145
  key: 0,
9141
9146
  class: "vt-upload__tip"
9142
- }, a6 = {
9147
+ }, I6 = {
9143
9148
  key: 2,
9144
9149
  class: "vt-upload__list"
9145
- }, u6 = { class: "vt-upload__list-item-icon" }, h6 = { class: "vt-upload__list-item-info" }, r6 = { class: "vt-upload__list-item-name" }, b6 = { class: "vt-upload__list-item-size" }, p6 = ["disabled", "onClick"], Y6 = ["accept", "disabled", "multiple"], W6 = /* @__PURE__ */ X1({
9150
+ }, a6 = { class: "vt-upload__list-item-icon" }, u6 = { class: "vt-upload__list-item-info" }, h6 = { class: "vt-upload__list-item-name" }, r6 = { class: "vt-upload__list-item-size" }, b6 = ["disabled", "onClick"], p6 = ["accept", "disabled", "multiple"], Y6 = /* @__PURE__ */ X1({
9146
9151
  __name: "VUpload",
9147
9152
  props: {
9148
9153
  modelValue: { default: () => [] },
@@ -9262,9 +9267,9 @@ const l6 = { class: "vt-upload" }, i6 = {
9262
9267
  };
9263
9268
  return tl(() => {
9264
9269
  Sl.terminateWorkers();
9265
- }), (g, k) => (s(), o("div", l6, [
9266
- m.value ? (s(), o("div", i6, [
9267
- e("div", t6, [
9270
+ }), (g, k) => (s(), o("div", qu, [
9271
+ m.value ? (s(), o("div", l6, [
9272
+ e("div", i6, [
9268
9273
  k[0] || (k[0] = e("div", { class: "vt-upload__processing-icon" }, [
9269
9274
  e("svg", {
9270
9275
  class: "spinner",
@@ -9286,13 +9291,13 @@ const l6 = { class: "vt-upload" }, i6 = {
9286
9291
  })
9287
9292
  ])
9288
9293
  ], -1)),
9289
- e("div", e6, [
9290
- e("div", s6, z(b.value), 1),
9291
- e("div", o6, z(r.value), 1)
9294
+ e("div", t6, [
9295
+ e("div", e6, z(b.value), 1),
9296
+ e("div", s6, z(r.value), 1)
9292
9297
  ]),
9293
- e("div", n6, z(I.value) + "%", 1)
9298
+ e("div", o6, z(I.value) + "%", 1)
9294
9299
  ]),
9295
- e("div", c6, [
9300
+ e("div", n6, [
9296
9301
  e("div", {
9297
9302
  style: T1({ width: `${I.value}%` }),
9298
9303
  class: "vt-upload__progress-bar-fill"
@@ -9334,13 +9339,13 @@ const l6 = { class: "vt-upload" }, i6 = {
9334
9339
  })
9335
9340
  ])
9336
9341
  ], -1)),
9337
- e("div", d6, [
9338
- e("span", m6, [
9342
+ e("div", c6, [
9343
+ e("span", d6, [
9339
9344
  W1(z(g.placeholder.split(" or ")[0]) + " ", 1),
9340
- e("span", Z6, " or " + z(g.placeholder.split(" or ")[1]), 1)
9345
+ e("span", m6, " or " + z(g.placeholder.split(" or ")[1]), 1)
9341
9346
  ])
9342
9347
  ]),
9343
- y.value ? (s(), o("div", I6, z(y.value), 1)) : K("", !0)
9348
+ y.value ? (s(), o("div", Z6, z(y.value), 1)) : K("", !0)
9344
9349
  ], 34)) : (s(), Y1(il, {
9345
9350
  key: 1,
9346
9351
  disabled: c.value || !X.value,
@@ -9355,17 +9360,17 @@ const l6 = { class: "vt-upload" }, i6 = {
9355
9360
  __: [2]
9356
9361
  }, 8, ["disabled"]))
9357
9362
  ], 64)) : K("", !0),
9358
- u.value.length > 0 ? (s(), o("div", a6, [
9363
+ u.value.length > 0 ? (s(), o("div", I6, [
9359
9364
  (s(!0), o(d1, null, p1(u.value, (D) => (s(), o("div", {
9360
9365
  key: D.id,
9361
9366
  class: "vt-upload__list-item"
9362
9367
  }, [
9363
- e("div", u6, [
9368
+ e("div", a6, [
9364
9369
  t1(u1, { name: "fileDoc" })
9365
9370
  ]),
9366
- e("div", h6, [
9367
- e("div", r6, z(D.name), 1),
9368
- e("div", b6, z(P(Il).formatFileSize(D.size)), 1)
9371
+ e("div", u6, [
9372
+ e("div", h6, z(D.name), 1),
9373
+ e("div", r6, z(P(Il).formatFileSize(D.size)), 1)
9369
9374
  ]),
9370
9375
  e("button", {
9371
9376
  disabled: c.value,
@@ -9374,7 +9379,7 @@ const l6 = { class: "vt-upload" }, i6 = {
9374
9379
  onClick: (c1) => j(D)
9375
9380
  }, [
9376
9381
  t1(u1, { name: "delete" })
9377
- ], 8, p6)
9382
+ ], 8, b6)
9378
9383
  ]))), 128))
9379
9384
  ])) : K("", !0),
9380
9385
  e("input", {
@@ -9386,13 +9391,13 @@ const l6 = { class: "vt-upload" }, i6 = {
9386
9391
  class: "vt-upload__input",
9387
9392
  type: "file",
9388
9393
  onChange: N
9389
- }, null, 40, Y6)
9394
+ }, null, 40, p6)
9390
9395
  ]));
9391
9396
  }
9392
- }), y6 = {
9397
+ }), W6 = {
9393
9398
  key: 0,
9394
9399
  class: "hub-item-label"
9395
- }, S6 = { class: "hub-submenu-list" }, X6 = { key: 0 }, V6 = { class: "hub-submenu-parent-label" }, L6 = ["onClick"], M6 = { class: "hub-submenu-label" }, C6 = /* @__PURE__ */ X1({
9400
+ }, y6 = { class: "hub-submenu-list" }, S6 = { key: 0 }, X6 = { class: "hub-submenu-parent-label" }, V6 = ["onClick"], L6 = { class: "hub-submenu-label" }, M6 = /* @__PURE__ */ X1({
9396
9401
  __name: "SidebarItem",
9397
9402
  props: {
9398
9403
  item: {},
@@ -9451,7 +9456,7 @@ const l6 = { class: "vt-upload" }, i6 = {
9451
9456
  class: "hub-item-icon",
9452
9457
  name: N.item.icon ?? "empty"
9453
9458
  }, null, 8, ["name"]),
9454
- N.collapsed ? K("", !0) : (s(), o("span", y6, z(N.item.i18n), 1)),
9459
+ N.collapsed ? K("", !0) : (s(), o("span", W6, z(N.item.i18n), 1)),
9455
9460
  N.item.children && !N.collapsed ? (s(), Y1(u1, {
9456
9461
  key: 1,
9457
9462
  class: "hub-item-arrow",
@@ -9471,23 +9476,23 @@ const l6 = { class: "vt-upload" }, i6 = {
9471
9476
  I.value = !1, Q();
9472
9477
  })
9473
9478
  }, [
9474
- e("ul", S6, [
9475
- N.collapsed ? (s(), o("li", X6, [
9476
- e("span", V6, z(N.item.i18n), 1)
9479
+ e("ul", y6, [
9480
+ N.collapsed ? (s(), o("li", S6, [
9481
+ e("span", X6, z(N.item.i18n), 1)
9477
9482
  ])) : K("", !0),
9478
9483
  (s(!0), o(d1, null, p1(N.item.children, (R) => (s(), o("li", {
9479
9484
  key: R.i18n,
9480
9485
  class: q(["hub-submenu-item", { active: y(R) }]),
9481
9486
  onClick: (U) => x(R)
9482
9487
  }, [
9483
- e("span", M6, z(R.i18n), 1)
9484
- ], 10, L6))), 128))
9488
+ e("span", L6, z(R.i18n), 1)
9489
+ ], 10, V6))), 128))
9485
9490
  ])
9486
9491
  ], 36)) : K("", !0)
9487
9492
  ]))
9488
9493
  ], 544));
9489
9494
  }
9490
- }), G6 = /* @__PURE__ */ W(C6, [["__scopeId", "data-v-d396b71e"]]), T6 = { class: "hub-sidebar-nav" }, N6 = { class: "hub-sidebar-list" }, w6 = /* @__PURE__ */ X1({
9495
+ }), C6 = /* @__PURE__ */ W(M6, [["__scopeId", "data-v-d396b71e"]]), G6 = { class: "hub-sidebar-nav" }, T6 = { class: "hub-sidebar-list" }, N6 = /* @__PURE__ */ X1({
9491
9496
  __name: "VSidebar",
9492
9497
  props: {
9493
9498
  items: {},
@@ -9504,10 +9509,10 @@ const l6 = { class: "vt-upload" }, i6 = {
9504
9509
  return D1(() => {
9505
9510
  r.value && r.value.addEventListener("scroll", () => {
9506
9511
  });
9507
- }), L1(
9512
+ }), V1(
9508
9513
  () => n.currentRoute,
9509
9514
  (h) => i.value = h ?? null
9510
- ), L1(
9515
+ ), V1(
9511
9516
  () => n.collapsed,
9512
9517
  (h) => {
9513
9518
  I.value = h;
@@ -9515,9 +9520,9 @@ const l6 = { class: "vt-upload" }, i6 = {
9515
9520
  ), (h, u) => (s(), o("aside", {
9516
9521
  class: q(["hub-sidebar", { collapsed: I.value }])
9517
9522
  }, [
9518
- e("nav", T6, [
9519
- e("ul", N6, [
9520
- (s(!0), o(d1, null, p1(h.items, (y) => (s(), Y1(G6, {
9523
+ e("nav", G6, [
9524
+ e("ul", T6, [
9525
+ (s(!0), o(d1, null, p1(h.items, (y) => (s(), Y1(C6, {
9521
9526
  key: y.i18n,
9522
9527
  item: y,
9523
9528
  collapsed: I.value,
@@ -9541,7 +9546,7 @@ const l6 = { class: "vt-upload" }, i6 = {
9541
9546
  ], 2)
9542
9547
  ], 2));
9543
9548
  }
9544
- }), x6 = /* @__PURE__ */ W(w6, [["__scopeId", "data-v-a8ad47e7"]]), Al = (t, l) => {
9549
+ }), w6 = /* @__PURE__ */ W(N6, [["__scopeId", "data-v-a8ad47e7"]]), Al = (t, l) => {
9545
9550
  const n = document.createElement("div");
9546
9551
  n.className = `vt-tooltip vt-tooltip--${l}`, n.innerText = t, Object.assign(n.style, {
9547
9552
  position: "absolute",
@@ -9633,7 +9638,7 @@ const l6 = { class: "vt-upload" }, i6 = {
9633
9638
  });
9634
9639
  }, ql = (t) => {
9635
9640
  t.style.opacity = "0", t.style.visibility = "hidden";
9636
- }, li = (t) => t.scrollWidth > t.clientWidth || t.scrollHeight > t.clientHeight, ii = (t) => !!t.closest(".vt-table, table"), J6 = {
9641
+ }, li = (t) => t.scrollWidth > t.clientWidth || t.scrollHeight > t.clientHeight, ii = (t) => !!t.closest(".vt-table, table"), x6 = {
9637
9642
  mounted(t, l) {
9638
9643
  var p;
9639
9644
  const n = (p = l.value) == null ? void 0 : p.trim();
@@ -9670,7 +9675,7 @@ const l6 = { class: "vt-upload" }, i6 = {
9670
9675
  beforeUnmount(t) {
9671
9676
  t.__tooltipEl && t.__tooltipEl.parentElement && (t.__tooltipEl.parentElement.removeChild(t.__tooltipEl), delete t.__tooltipEl), t.__mouseenterHandler && (t.removeEventListener("mouseenter", t.__mouseenterHandler), delete t.__mouseenterHandler), t.__mouseleaveHandler && (t.removeEventListener("mouseleave", t.__mouseleaveHandler), delete t.__mouseleaveHandler), t.__scrollHandler && (window.removeEventListener("scroll", t.__scrollHandler, !0), window.removeEventListener("resize", t.__scrollHandler), delete t.__scrollHandler);
9672
9677
  }
9673
- }, k6 = {
9678
+ }, J6 = {
9674
9679
  mounted(t, l) {
9675
9680
  P(l.value) && ti(t);
9676
9681
  },
@@ -9693,10 +9698,10 @@ function ei(t) {
9693
9698
  const l = t._loaderEl;
9694
9699
  l && (l.remove(), delete t._loaderEl);
9695
9700
  }
9696
- const K6 = { class: "vt-message-container" }, j6 = { class: "vt-message-icon" }, F6 = { class: "vt-message-content" }, z6 = ["innerHTML"], U6 = {
9701
+ const k6 = { class: "vt-message-container" }, K6 = { class: "vt-message-icon" }, j6 = { class: "vt-message-content" }, F6 = ["innerHTML"], z6 = {
9697
9702
  key: 1,
9698
9703
  class: "vt-message-text"
9699
- }, g6 = ["onClick"], R6 = /* @__PURE__ */ X1({
9704
+ }, U6 = ["onClick"], g6 = /* @__PURE__ */ X1({
9700
9705
  __name: "VMessage",
9701
9706
  setup(t, { expose: l }) {
9702
9707
  const n = T([]);
@@ -9726,7 +9731,7 @@ const K6 = { class: "vt-message-container" }, j6 = { class: "vt-message-icon" },
9726
9731
  addMessage: m,
9727
9732
  removeMessage: I
9728
9733
  }), (r, p) => (s(), Y1(ml, { to: "body" }, [
9729
- e("div", K6, [
9734
+ e("div", k6, [
9730
9735
  t1(Ci, {
9731
9736
  name: "vt-message",
9732
9737
  tag: "div"
@@ -9740,18 +9745,18 @@ const K6 = { class: "vt-message-container" }, j6 = { class: "vt-message-icon" },
9740
9745
  { "vt-message-item--closable": h.showClose }
9741
9746
  ])
9742
9747
  }, [
9743
- e("div", j6, [
9748
+ e("div", K6, [
9744
9749
  t1(u1, {
9745
9750
  color: h.type === "primary" ? "#00475A" : "",
9746
9751
  name: d(h.type)
9747
9752
  }, null, 8, ["color", "name"])
9748
9753
  ]),
9749
- e("div", F6, [
9754
+ e("div", j6, [
9750
9755
  h.dangerouslyUseHTMLString ? (s(), o("div", {
9751
9756
  key: 0,
9752
9757
  class: "vt-message-text",
9753
9758
  innerHTML: h.message
9754
- }, null, 8, z6)) : (s(), o("div", U6, z(h.message), 1))
9759
+ }, null, 8, F6)) : (s(), o("div", z6, z(h.message), 1))
9755
9760
  ]),
9756
9761
  h.showClose ? (s(), o("button", {
9757
9762
  key: 0,
@@ -9760,7 +9765,7 @@ const K6 = { class: "vt-message-container" }, j6 = { class: "vt-message-icon" },
9760
9765
  onClick: (u) => I(h.id)
9761
9766
  }, [
9762
9767
  t1(u1, { name: "close" })
9763
- ], 8, g6)) : K("", !0)
9768
+ ], 8, U6)) : K("", !0)
9764
9769
  ], 2))), 128))
9765
9770
  ]),
9766
9771
  _: 1
@@ -9769,7 +9774,7 @@ const K6 = { class: "vt-message-container" }, j6 = { class: "vt-message-icon" },
9769
9774
  ]));
9770
9775
  }
9771
9776
  });
9772
- class O6 {
9777
+ class R6 {
9773
9778
  constructor() {
9774
9779
  this.messageInstance = null, this.app = null, this.container = null;
9775
9780
  }
@@ -9806,10 +9811,10 @@ class O6 {
9806
9811
  return this.messageInstance ? this.messageInstance.messages.length : 0;
9807
9812
  }
9808
9813
  ensureInstance() {
9809
- return this.messageInstance ? this.messageInstance : (this.container = document.createElement("div"), this.container.setAttribute("data-vt-message-container", ""), document.body.appendChild(this.container), this.app = oi(R6), this.messageInstance = this.app.mount(this.container), this.messageInstance);
9814
+ return this.messageInstance ? this.messageInstance : (this.container = document.createElement("div"), this.container.setAttribute("data-vt-message-container", ""), document.body.appendChild(this.container), this.app = oi(g6), this.messageInstance = this.app.mount(this.container), this.messageInstance);
9810
9815
  }
9811
9816
  }
9812
- const Q1 = new O6(), si = Object.assign(
9817
+ const Q1 = new R6(), si = Object.assign(
9813
9818
  (t = {}) => Q1.call(t),
9814
9819
  {
9815
9820
  success: (t, l = {}) => Q1.success(t, l),
@@ -9823,7 +9828,7 @@ const Q1 = new O6(), si = Object.assign(
9823
9828
  Q1.closeAll();
9824
9829
  }
9825
9830
  }
9826
- ), v6 = {
9831
+ ), O6 = {
9827
9832
  install(t) {
9828
9833
  t.config.globalProperties.$message = si, t.provide("$message", si), t.config.globalProperties.$messageStack = {
9829
9834
  closeAll: () => Q1.closeAll(),
@@ -9832,15 +9837,15 @@ const Q1 = new O6(), si = Object.assign(
9832
9837
  };
9833
9838
  }
9834
9839
  };
9835
- function nh(t, l) {
9840
+ function oh(t, l) {
9836
9841
  const n = l;
9837
9842
  return n.$params = t, n;
9838
9843
  }
9839
- function ch(t, l) {
9844
+ function nh(t, l) {
9840
9845
  const n = l;
9841
9846
  return n.$message = t, n;
9842
9847
  }
9843
- function dh(t) {
9848
+ function ch(t) {
9844
9849
  const l = t;
9845
9850
  return l.$async = !0, l;
9846
9851
  }
@@ -9848,36 +9853,36 @@ function al(t, l) {
9848
9853
  const n = l;
9849
9854
  return n.$validatorName = t, n;
9850
9855
  }
9851
- function mh(t, l) {
9856
+ function dh(t, l) {
9852
9857
  let n = l;
9853
9858
  return t.name && (n.$validatorName = t.name), t.params && (n.$params = t.params), t.message && (n.$message = t.message), t.async && (n.$async = !0), n;
9854
9859
  }
9855
- const D6 = (t) => t == null ? "Поле є обовʼязковим" : Array.isArray(t) ? t.length > 0 || "Поле є обовʼязковим" : t.toString().trim() !== "" || "Поле є обовʼязковим";
9856
- al("required", D6);
9857
- const Zh = (t) => Object.assign(
9860
+ const v6 = (t) => t == null ? "Поле є обовʼязковим" : Array.isArray(t) ? t.length > 0 || "Поле є обовʼязковим" : t.toString().trim() !== "" || "Поле є обовʼязковим";
9861
+ al("required", v6);
9862
+ const mh = (t) => Object.assign(
9858
9863
  (l) => l == null || l === "" ? !0 : l.length >= t || `Мінімальна довжина ${t}`,
9859
9864
  { $params: { min: t }, $validatorName: "minLength" }
9860
- ), Ih = (t) => Object.assign(
9865
+ ), Zh = (t) => Object.assign(
9861
9866
  (l) => l == null || l === "" ? !0 : l.length <= t || `Максимальна довжина ${t}`,
9862
9867
  { $params: { max: t }, $validatorName: "maxLength" }
9863
- ), P6 = (t) => (t == null || t === "" ? !0 : /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)) || "Невірний email";
9864
- al("email", P6);
9865
- const ah = (t, l) => Object.assign(
9868
+ ), D6 = (t) => (t == null || t === "" ? !0 : /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)) || "Невірний email";
9869
+ al("email", D6);
9870
+ const Ih = (t, l) => Object.assign(
9866
9871
  (n) => n === t() || l || "Значення не співпадає",
9867
9872
  { $params: { eq: t }, $validatorName: "sameAs" }
9868
- ), f6 = (t) => {
9873
+ ), P6 = (t) => {
9869
9874
  if (t == null || t === "") return !0;
9870
9875
  const l = t.toString().trim();
9871
9876
  return /^\+?\d+$/.test(l) || "Номер повинен містити лише цифри або починатися з +";
9872
9877
  };
9873
- al("phoneNumber", f6);
9874
- const H6 = (t) => (t == null || t === "" ? !0 : !isNaN(Number(t))) || "Повинно бути числом";
9875
- al("numeric", H6);
9876
- const E6 = (t) => t == null || t === "" ? !0 : /[A-Z]/.test(t) || "Має містити хоча б одну велику літеру";
9877
- al("containUpperCaseLetter", E6);
9878
- const Q6 = (t) => t == null || t === "" ? !0 : !/\s/.test(t) || "Не повинно містити пробілів";
9879
- al("noSpaces", Q6);
9880
- const uh = (t, l = "Значення вже зайнято") => Object.assign(async (i) => i == null || i === "" ? !0 : await t(i) || l, { $async: !0, $validatorName: "uniqueAsync" });
9878
+ al("phoneNumber", P6);
9879
+ const f6 = (t) => (t == null || t === "" ? !0 : !isNaN(Number(t))) || "Повинно бути числом";
9880
+ al("numeric", f6);
9881
+ const H6 = (t) => t == null || t === "" ? !0 : /[A-Z]/.test(t) || "Має містити хоча б одну велику літеру";
9882
+ al("containUpperCaseLetter", H6);
9883
+ const E6 = (t) => t == null || t === "" ? !0 : !/\s/.test(t) || "Не повинно містити пробілів";
9884
+ al("noSpaces", E6);
9885
+ const ah = (t, l = "Значення вже зайнято") => Object.assign(async (i) => i == null || i === "" ? !0 : await t(i) || l, { $async: !0, $validatorName: "uniqueAsync" });
9881
9886
  function ri(t, l) {
9882
9887
  if (!l) return t;
9883
9888
  const n = l.split(".");
@@ -9888,7 +9893,7 @@ function ri(t, l) {
9888
9893
  }
9889
9894
  return i;
9890
9895
  }
9891
- function B6(t, l, n) {
9896
+ function Q6(t, l, n) {
9892
9897
  const i = l.split(".");
9893
9898
  let d = t;
9894
9899
  for (let m = 0; m < i.length - 1; m++) {
@@ -9897,7 +9902,7 @@ function B6(t, l, n) {
9897
9902
  }
9898
9903
  d[i[i.length - 1]] = n;
9899
9904
  }
9900
- function _6(t, l) {
9905
+ function B6(t, l) {
9901
9906
  return {
9902
9907
  get value() {
9903
9908
  const n = Vl(t) ? t.value : t;
@@ -9905,12 +9910,12 @@ function _6(t, l) {
9905
9910
  },
9906
9911
  set value(n) {
9907
9912
  const i = Vl(t) ? t.value : t;
9908
- B6(i, l, n);
9913
+ Q6(i, l, n);
9909
9914
  }
9910
9915
  };
9911
9916
  }
9912
- function A6(t, l, n, i) {
9913
- const d = _6(t, l), m = T(!1), I = T(!1), r = T(!1), p = { t: 0 };
9917
+ function _6(t, l, n, i) {
9918
+ const d = B6(t, l), m = T(!1), I = T(!1), r = T(!1), p = { t: 0 };
9914
9919
  let h = !1, u = [];
9915
9920
  const y = T([]);
9916
9921
  async function b(c) {
@@ -9948,7 +9953,7 @@ function A6(t, l, n, i) {
9948
9953
  f.push({ $message: O.$message, $validator: O.$validator || "external" });
9949
9954
  Q === p.t && (y.value = f, r.value = !1);
9950
9955
  }
9951
- L1(
9956
+ V1(
9952
9957
  () => {
9953
9958
  const c = Vl(t) ? t.value : t;
9954
9959
  return ri(c, l);
@@ -10001,7 +10006,7 @@ function A6(t, l, n, i) {
10001
10006
  u = [], X.$validate();
10002
10007
  }, X;
10003
10008
  }
10004
- function hh(t, l, n) {
10009
+ function uh(t, l, n) {
10005
10010
  const i = { silentErrors: !!(n != null && n.silentErrors) }, d = typeof t == "function" ? t() : t, m = (Vl(l), l);
10006
10011
  function I(u, y = "") {
10007
10012
  const b = {}, X = Object.keys(u || {});
@@ -10009,7 +10014,7 @@ function hh(t, l, n) {
10009
10014
  const j = u[U], _ = y ? `${y}.${U}` : U;
10010
10015
  if (typeof j == "function" || Array.isArray(j) && j.length > 0 && typeof j[0] == "function") {
10011
10016
  const g = Array.isArray(j) ? j : [j];
10012
- b[U] = A6(m, _, g, i);
10017
+ b[U] = _6(m, _, g, i);
10013
10018
  } else typeof j == "object" && j !== null ? typeof j == "object" && Array.isArray(j) === !1 && (b[U] = I(j, _)) : b[U] = I({}, _);
10014
10019
  }
10015
10020
  const c = async () => {
@@ -10104,7 +10109,7 @@ function hh(t, l, n) {
10104
10109
  const h = I(d, "");
10105
10110
  return h;
10106
10111
  }
10107
- const rh = {
10112
+ const hh = {
10108
10113
  sortable: !0,
10109
10114
  actionColumn: !1,
10110
10115
  showOverflowTooltip: !0,
@@ -10112,18 +10117,18 @@ const rh = {
10112
10117
  pinnedLeft: !1,
10113
10118
  pinnedRight: !1,
10114
10119
  manage: !1
10115
- }, $6 = {
10120
+ }, A6 = {
10116
10121
  install(t, l = {}) {
10117
10122
  const { prefix: n = "V", modal: i = !0, message: d = !0 } = l;
10118
- t.component(`${n}Button`, il), t.component(`${n}Icon`, u1), t.component(`${n}Loader`, Ll), t.component(`${n}Modal`, ni), t.component(`${n}Pagination`, NZ), t.component(`${n}Checkbox`, cl), t.component(`${n}Radiobox`, JZ), t.component(`${n}Table`, yI), t.component(`${n}TableColumn`, SI), t.component(`${n}Dropdown`, ai), t.component(`${n}DropdownItem`, Kl), t.component(`${n}Input`, di), t.component(`${n}Select`, mi), t.component(`${n}Option`, Zi), t.component(`${n}DatePicker`, ju), t.component(`${n}TimePicker`, yl), t.component(`${n}Collapse`, zu), t.component(`${n}CollapseItem`, Ou), t.component(`${n}Tabs`, Qu), t.component(`${n}TabItem`, _u), t.component(`${n}Upload`, W6), t.component(`${n}Sidebar`, x6), t.directive("tooltip", J6), t.directive("loader", k6), i && t.use(vZ), d && t.use(v6);
10123
+ t.component(`${n}Button`, il), t.component(`${n}Icon`, u1), t.component(`${n}Loader`, Ll), t.component(`${n}Modal`, ni), t.component(`${n}Pagination`, NZ), t.component(`${n}Checkbox`, cl), t.component(`${n}Radiobox`, JZ), t.component(`${n}Table`, yI), t.component(`${n}TableColumn`, SI), t.component(`${n}Dropdown`, ai), t.component(`${n}DropdownItem`, Kl), t.component(`${n}Input`, di), t.component(`${n}Select`, mi), t.component(`${n}Option`, Zi), t.component(`${n}DatePicker`, ju), t.component(`${n}TimePicker`, yl), t.component(`${n}Collapse`, zu), t.component(`${n}CollapseItem`, Ou), t.component(`${n}Tabs`, Qu), t.component(`${n}TabItem`, Bu), t.component(`${n}Upload`, Y6), t.component(`${n}Sidebar`, w6), t.directive("tooltip", x6), t.directive("loader", J6), i && t.use(vZ), d && t.use(O6);
10119
10124
  }
10120
- }, bh = $6.install;
10125
+ }, rh = A6.install;
10121
10126
  export {
10122
- rh as DEFAULT_COLUMN_CONFIG,
10127
+ hh as DEFAULT_COLUMN_CONFIG,
10123
10128
  VI as DEFAULT_FORMATS,
10124
10129
  Wl as DEFAULT_TIME_FORMATS,
10125
10130
  Ii as DropdownContextKey,
10126
- sh as FORMAT_TOKENS,
10131
+ eh as FORMAT_TOKENS,
10127
10132
  Sl as FileParser,
10128
10133
  Il as FileValidator,
10129
10134
  XI as MONTH_NAMES,
@@ -10139,50 +10144,50 @@ export {
10139
10144
  di as VInput,
10140
10145
  Ll as VLoader,
10141
10146
  si as VMessage,
10142
- v6 as VMessagePlugin,
10147
+ O6 as VMessagePlugin,
10143
10148
  ni as VModal,
10144
10149
  vZ as VModalPlugin,
10145
10150
  Zi as VOption,
10146
10151
  NZ as VPagination,
10147
10152
  JZ as VRadiobox,
10148
10153
  mi as VSelect,
10149
- x6 as VSidebar,
10150
- _u as VTabItem,
10154
+ w6 as VSidebar,
10155
+ Bu as VTabItem,
10151
10156
  yI as VTable,
10152
10157
  SI as VTableColumn,
10153
10158
  Qu as VTabs,
10154
10159
  yl as VTimePicker,
10155
- W6 as VUpload,
10160
+ Y6 as VUpload,
10156
10161
  ci as VtSelectContextKey,
10157
- oh as WEEKDAY_NAMES,
10162
+ sh as WEEKDAY_NAMES,
10158
10163
  Jl as WEEKDAY_NAMES_SHORT,
10159
- E6 as containUpperCaseLetter,
10160
- $6 as default,
10161
- P6 as email,
10164
+ H6 as containUpperCaseLetter,
10165
+ A6 as default,
10166
+ D6 as email,
10162
10167
  NI as formatTime,
10163
10168
  kl as generateTimeOptions,
10164
- bh as install,
10169
+ rh as install,
10165
10170
  El as isValidDate,
10166
10171
  jl as isValidTimeString,
10167
- k6 as loaderDirective,
10168
- Ih as maxLength,
10172
+ J6 as loaderDirective,
10173
+ Zh as maxLength,
10169
10174
  Q1 as messageManager,
10170
- Zh as minLength,
10171
- mh as mk,
10175
+ mh as minLength,
10176
+ dh as mk,
10172
10177
  ll as modalManager,
10173
- Q6 as noSpaces,
10174
- H6 as numeric,
10178
+ E6 as noSpaces,
10179
+ f6 as numeric,
10175
10180
  wI as parseTimeString,
10176
- f6 as phoneNumber,
10177
- D6 as required,
10178
- ah as sameAs,
10179
- J6 as tooltipDirective,
10180
- uh as uniqueAsync,
10181
- hh as useValidate,
10181
+ P6 as phoneNumber,
10182
+ v6 as required,
10183
+ Ih as sameAs,
10184
+ x6 as tooltipDirective,
10185
+ ah as uniqueAsync,
10186
+ uh as useValidate,
10182
10187
  MI as validateDateValue,
10183
10188
  TI as validateTimeValue,
10184
- dh as withAsync,
10185
- ch as withMessage,
10189
+ ch as withAsync,
10190
+ nh as withMessage,
10186
10191
  al as withName,
10187
- nh as withParams
10192
+ oh as withParams
10188
10193
  };