/ components / messages / teamMemCollapsed.tsx
teamMemCollapsed.tsx
  1  import { c as _c } from "react/compiler-runtime";
  2  import React from 'react';
  3  import { Text } from '../../ink.js';
  4  import type { CollapsedReadSearchGroup } from '../../types/message.js';
  5  
  6  /**
  7   * Plain function (not a React component) so the React Compiler won't
  8   * hoist the teamMemory* property accesses for memoization. This module
  9   * is only loaded when feature('TEAMMEM') is true.
 10   */
 11  export function checkHasTeamMemOps(message: CollapsedReadSearchGroup): boolean {
 12    return (message.teamMemorySearchCount ?? 0) > 0 || (message.teamMemoryReadCount ?? 0) > 0 || (message.teamMemoryWriteCount ?? 0) > 0;
 13  }
 14  
 15  /**
 16   * Renders team memory count parts for the collapsed read/search UI.
 17   * This module is only loaded when feature('TEAMMEM') is true,
 18   * so DCE removes it entirely from external builds.
 19   */
 20  export function TeamMemCountParts(t0) {
 21    const $ = _c(23);
 22    const {
 23      message,
 24      isActiveGroup,
 25      hasPrecedingParts
 26    } = t0;
 27    const tmReadCount = message.teamMemoryReadCount ?? 0;
 28    const tmSearchCount = message.teamMemorySearchCount ?? 0;
 29    const tmWriteCount = message.teamMemoryWriteCount ?? 0;
 30    if (tmReadCount === 0 && tmSearchCount === 0 && tmWriteCount === 0) {
 31      return null;
 32    }
 33    let t1;
 34    if ($[0] !== hasPrecedingParts || $[1] !== isActiveGroup || $[2] !== tmReadCount || $[3] !== tmSearchCount || $[4] !== tmWriteCount) {
 35      const nodes = [];
 36      let count = hasPrecedingParts ? 1 : 0;
 37      if (tmReadCount > 0) {
 38        const verb = isActiveGroup ? count === 0 ? "Recalling" : "recalling" : count === 0 ? "Recalled" : "recalled";
 39        if (count > 0) {
 40          let t2;
 41          if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
 42            t2 = <Text key="comma-tmr">, </Text>;
 43            $[6] = t2;
 44          } else {
 45            t2 = $[6];
 46          }
 47          nodes.push(t2);
 48        }
 49        let t2;
 50        if ($[7] !== tmReadCount) {
 51          t2 = <Text bold={true}>{tmReadCount}</Text>;
 52          $[7] = tmReadCount;
 53          $[8] = t2;
 54        } else {
 55          t2 = $[8];
 56        }
 57        const t3 = tmReadCount === 1 ? "memory" : "memories";
 58        let t4;
 59        if ($[9] !== t2 || $[10] !== t3 || $[11] !== verb) {
 60          t4 = <Text key="team-mem-read">{verb} {t2} team{" "}{t3}</Text>;
 61          $[9] = t2;
 62          $[10] = t3;
 63          $[11] = verb;
 64          $[12] = t4;
 65        } else {
 66          t4 = $[12];
 67        }
 68        nodes.push(t4);
 69        count++;
 70      }
 71      if (tmSearchCount > 0) {
 72        const verb_0 = isActiveGroup ? count === 0 ? "Searching" : "searching" : count === 0 ? "Searched" : "searched";
 73        if (count > 0) {
 74          let t2;
 75          if ($[13] === Symbol.for("react.memo_cache_sentinel")) {
 76            t2 = <Text key="comma-tms">, </Text>;
 77            $[13] = t2;
 78          } else {
 79            t2 = $[13];
 80          }
 81          nodes.push(t2);
 82        }
 83        const t2 = `${verb_0} team memories`;
 84        let t3;
 85        if ($[14] !== t2) {
 86          t3 = <Text key="team-mem-search">{t2}</Text>;
 87          $[14] = t2;
 88          $[15] = t3;
 89        } else {
 90          t3 = $[15];
 91        }
 92        nodes.push(t3);
 93        count++;
 94      }
 95      if (tmWriteCount > 0) {
 96        const verb_1 = isActiveGroup ? count === 0 ? "Writing" : "writing" : count === 0 ? "Wrote" : "wrote";
 97        if (count > 0) {
 98          let t2;
 99          if ($[16] === Symbol.for("react.memo_cache_sentinel")) {
100            t2 = <Text key="comma-tmw">, </Text>;
101            $[16] = t2;
102          } else {
103            t2 = $[16];
104          }
105          nodes.push(t2);
106        }
107        let t2;
108        if ($[17] !== tmWriteCount) {
109          t2 = <Text bold={true}>{tmWriteCount}</Text>;
110          $[17] = tmWriteCount;
111          $[18] = t2;
112        } else {
113          t2 = $[18];
114        }
115        const t3 = tmWriteCount === 1 ? "memory" : "memories";
116        let t4;
117        if ($[19] !== t2 || $[20] !== t3 || $[21] !== verb_1) {
118          t4 = <Text key="team-mem-write">{verb_1} {t2} team{" "}{t3}</Text>;
119          $[19] = t2;
120          $[20] = t3;
121          $[21] = verb_1;
122          $[22] = t4;
123        } else {
124          t4 = $[22];
125        }
126        nodes.push(t4);
127      }
128      t1 = <>{nodes}</>;
129      $[0] = hasPrecedingParts;
130      $[1] = isActiveGroup;
131      $[2] = tmReadCount;
132      $[3] = tmSearchCount;
133      $[4] = tmWriteCount;
134      $[5] = t1;
135    } else {
136      t1 = $[5];
137    }
138    return t1;
139  }
140  //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlRleHQiLCJDb2xsYXBzZWRSZWFkU2VhcmNoR3JvdXAiLCJjaGVja0hhc1RlYW1NZW1PcHMiLCJtZXNzYWdlIiwidGVhbU1lbW9yeVNlYXJjaENvdW50IiwidGVhbU1lbW9yeVJlYWRDb3VudCIsInRlYW1NZW1vcnlXcml0ZUNvdW50IiwiVGVhbU1lbUNvdW50UGFydHMiLCJ0MCIsIiQiLCJfYyIsImlzQWN0aXZlR3JvdXAiLCJoYXNQcmVjZWRpbmdQYXJ0cyIsInRtUmVhZENvdW50IiwidG1TZWFyY2hDb3VudCIsInRtV3JpdGVDb3VudCIsInQxIiwibm9kZXMiLCJjb3VudCIsInZlcmIiLCJ0MiIsIlN5bWJvbCIsImZvciIsInB1c2giLCJ0MyIsInQ0IiwidmVyYl8wIiwidmVyYl8xIl0sInNvdXJjZXMiOlsidGVhbU1lbUNvbGxhcHNlZC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gJy4uLy4uL2luay5qcydcbmltcG9ydCB0eXBlIHsgQ29sbGFwc2VkUmVhZFNlYXJjaEdyb3VwIH0gZnJvbSAnLi4vLi4vdHlwZXMvbWVzc2FnZS5qcydcblxuLyoqXG4gKiBQbGFpbiBmdW5jdGlvbiAobm90IGEgUmVhY3QgY29tcG9uZW50KSBzbyB0aGUgUmVhY3QgQ29tcGlsZXIgd29uJ3RcbiAqIGhvaXN0IHRoZSB0ZWFtTWVtb3J5KiBwcm9wZXJ0eSBhY2Nlc3NlcyBmb3IgbWVtb2l6YXRpb24uIFRoaXMgbW9kdWxlXG4gKiBpcyBvbmx5IGxvYWRlZCB3aGVuIGZlYXR1cmUoJ1RFQU1NRU0nKSBpcyB0cnVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tIYXNUZWFtTWVtT3BzKG1lc3NhZ2U6IENvbGxhcHNlZFJlYWRTZWFyY2hHcm91cCk6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIChtZXNzYWdlLnRlYW1NZW1vcnlTZWFyY2hDb3VudCA/PyAwKSA+IDAgfHxcbiAgICAobWVzc2FnZS50ZWFtTWVtb3J5UmVhZENvdW50ID8/IDApID4gMCB8fFxuICAgIChtZXNzYWdlLnRlYW1NZW1vcnlXcml0ZUNvdW50ID8/IDApID4gMFxuICApXG59XG5cbi8qKlxuICogUmVuZGVycyB0ZWFtIG1lbW9yeSBjb3VudCBwYXJ0cyBmb3IgdGhlIGNvbGxhcHNlZCByZWFkL3NlYXJjaCBVSS5cbiAqIFRoaXMgbW9kdWxlIGlzIG9ubHkgbG9hZGVkIHdoZW4gZmVhdHVyZSgnVEVBTU1FTScpIGlzIHRydWUsXG4gKiBzbyBEQ0UgcmVtb3ZlcyBpdCBlbnRpcmVseSBmcm9tIGV4dGVybmFsIGJ1aWxkcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRlYW1NZW1Db3VudFBhcnRzKHtcbiAgbWVzc2FnZSxcbiAgaXNBY3RpdmVHcm91cCxcbiAgaGFzUHJlY2VkaW5nUGFydHMsXG59OiB7XG4gIG1lc3NhZ2U6IENvbGxhcHNlZFJlYWRTZWFyY2hHcm91cFxuICBpc0FjdGl2ZUdyb3VwOiBib29sZWFuIHwgdW5kZWZpbmVkXG4gIGhhc1ByZWNlZGluZ1BhcnRzOiBib29sZWFuXG59KTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgdG1SZWFkQ291bnQgPSBtZXNzYWdlLnRlYW1NZW1vcnlSZWFkQ291bnQgPz8gMFxuICBjb25zdCB0bVNlYXJjaENvdW50ID0gbWVzc2FnZS50ZWFtTWVtb3J5U2VhcmNoQ291bnQgPz8gMFxuICBjb25zdCB0bVdyaXRlQ291bnQgPSBtZXNzYWdlLnRlYW1NZW1vcnlXcml0ZUNvdW50ID8/IDBcblxuICBpZiAodG1SZWFkQ291bnQgPT09IDAgJiYgdG1TZWFyY2hDb3VudCA9PT0gMCAmJiB0bVdyaXRlQ291bnQgPT09IDApIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3Qgbm9kZXM6IFJlYWN0LlJlYWN0Tm9kZVtdID0gW11cbiAgbGV0IGNvdW50ID0gaGFzUHJlY2VkaW5nUGFydHMgPyAxIDogMFxuXG4gIGlmICh0bVJlYWRDb3VudCA+IDApIHtcbiAgICBjb25zdCB2ZXJiID0gaXNBY3RpdmVHcm91cFxuICAgICAgPyBjb3VudCA9PT0gMFxuICAgICAgICA/ICdSZWNhbGxpbmcnXG4gICAgICAgIDogJ3JlY2FsbGluZydcbiAgICAgIDogY291bnQgPT09IDBcbiAgICAgICAgPyAnUmVjYWxsZWQnXG4gICAgICAgIDogJ3JlY2FsbGVkJ1xuICAgIGlmIChjb3VudCA+IDApIHtcbiAgICAgIG5vZGVzLnB1c2goPFRleHQga2V5PVwiY29tbWEtdG1yXCI+LCA8L1RleHQ+KVxuICAgIH1cbiAgICBub2Rlcy5wdXNoKFxuICAgICAgPFRleHQga2V5PVwidGVhbS1tZW0tcmVhZFwiPlxuICAgICAgICB7dmVyYn0gPFRleHQgYm9sZD57dG1SZWFkQ291bnR9PC9UZXh0PiB0ZWFteycgJ31cbiAgICAgICAge3RtUmVhZENvdW50ID09PSAxID8gJ21lbW9yeScgOiAnbWVtb3JpZXMnfVxuICAgICAgPC9UZXh0PixcbiAgICApXG4gICAgY291bnQrK1xuICB9XG5cbiAgaWYgKHRtU2VhcmNoQ291bnQgPiAwKSB7XG4gICAgY29uc3QgdmVyYiA9IGlzQWN0aXZlR3JvdXBcbiAgICAgID8gY291bnQgPT09IDBcbiAgICAgICAgPyAnU2VhcmNoaW5nJ1xuICAgICAgICA6ICdzZWFyY2hpbmcnXG4gICAgICA6IGNvdW50ID09PSAwXG4gICAgICAgID8gJ1NlYXJjaGVkJ1xuICAgICAgICA6ICdzZWFyY2hlZCdcbiAgICBpZiAoY291bnQgPiAwKSB7XG4gICAgICBub2Rlcy5wdXNoKDxUZXh0IGtleT1cImNvbW1hLXRtc1wiPiwgPC9UZXh0PilcbiAgICB9XG4gICAgbm9kZXMucHVzaCg8VGV4dCBrZXk9XCJ0ZWFtLW1lbS1zZWFyY2hcIj57YCR7dmVyYn0gdGVhbSBtZW1vcmllc2B9PC9UZXh0PilcbiAgICBjb3VudCsrXG4gIH1cblxuICBpZiAodG1Xcml0ZUNvdW50ID4gMCkge1xuICAgIGNvbnN0IHZlcmIgPSBpc0FjdGl2ZUdyb3VwXG4gICAgICA/IGNvdW50ID09PSAwXG4gICAgICAgID8gJ1dyaXRpbmcnXG4gICAgICAgIDogJ3dyaXRpbmcnXG4gICAgICA6IGNvdW50ID09PSAwXG4gICAgICAgID8gJ1dyb3RlJ1xuICAgICAgICA6ICd3cm90ZSdcbiAgICBpZiAoY291bnQgPiAwKSB7XG4gICAgICBub2Rlcy5wdXNoKDxUZXh0IGtleT1cImNvbW1hLXRtd1wiPiwgPC9UZXh0PilcbiAgICB9XG4gICAgbm9kZXMucHVzaChcbiAgICAgIDxUZXh0IGtleT1cInRlYW0tbWVtLXdyaXRlXCI+XG4gICAgICAgIHt2ZXJifSA8VGV4dCBib2xkPnt0bVdyaXRlQ291bnR9PC9UZXh0PiB0ZWFteycgJ31cbiAgICAgICAge3RtV3JpdGVDb3VudCA9PT0gMSA/ICdtZW1vcnknIDogJ21lbW9yaWVzJ31cbiAgICAgIDwvVGV4dD4sXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIDw+e25vZGVzfTwvPlxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsS0FBSyxNQUFNLE9BQU87QUFDekIsU0FBU0MsSUFBSSxRQUFRLGNBQWM7QUFDbkMsY0FBY0Msd0JBQXdCLFFBQVEsd0JBQXdCOztBQUV0RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxTQUFTQyxrQkFBa0JBLENBQUNDLE9BQU8sRUFBRUYsd0JBQXdCLENBQUMsRUFBRSxPQUFPLENBQUM7RUFDN0UsT0FDRSxDQUFDRSxPQUFPLENBQUNDLHFCQUFxQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQ3hDLENBQUNELE9BQU8sQ0FBQ0UsbUJBQW1CLElBQUksQ0FBQyxJQUFJLENBQUMsSUFDdEMsQ0FBQ0YsT0FBTyxDQUFDRyxvQkFBb0IsSUFBSSxDQUFDLElBQUksQ0FBQztBQUUzQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxTQUFBQyxrQkFBQUMsRUFBQTtFQUFBLE1BQUFDLENBQUEsR0FBQUMsRUFBQTtFQUEyQjtJQUFBUCxPQUFBO0lBQUFRLGFBQUE7SUFBQUM7RUFBQSxJQUFBSixFQVFqQztFQUNDLE1BQUFLLFdBQUEsR0FBb0JWLE9BQU8sQ0FBQUUsbUJBQXlCLElBQWhDLENBQWdDO0VBQ3BELE1BQUFTLGFBQUEsR0FBc0JYLE9BQU8sQ0FBQUMscUJBQTJCLElBQWxDLENBQWtDO0VBQ3hELE1BQUFXLFlBQUEsR0FBcUJaLE9BQU8sQ0FBQUcsb0JBQTBCLElBQWpDLENBQWlDO0VBRXRELElBQUlPLFdBQVcsS0FBSyxDQUF3QixJQUFuQkMsYUFBYSxLQUFLLENBQXVCLElBQWxCQyxZQUFZLEtBQUssQ0FBQztJQUFBLE9BQ3pELElBQUk7RUFBQTtFQUNaLElBQUFDLEVBQUE7RUFBQSxJQUFBUCxDQUFBLFFBQUFHLGlCQUFBLElBQUFILENBQUEsUUFBQUUsYUFBQSxJQUFBRixDQUFBLFFBQUFJLFdBQUEsSUFBQUosQ0FBQSxRQUFBSyxhQUFBLElBQUFMLENBQUEsUUFBQU0sWUFBQTtJQUVELE1BQUFFLEtBQUEsR0FBaUMsRUFBRTtJQUNuQyxJQUFBQyxLQUFBLEdBQVlOLGlCQUFpQixHQUFqQixDQUF5QixHQUF6QixDQUF5QjtJQUVyQyxJQUFJQyxXQUFXLEdBQUcsQ0FBQztNQUNqQixNQUFBTSxJQUFBLEdBQWFSLGFBQWEsR0FDdEJPLEtBQUssS0FBSyxDQUVHLEdBRmIsV0FFYSxHQUZiLFdBS1ksR0FGWkEsS0FBSyxLQUFLLENBRUUsR0FGWixVQUVZLEdBRlosVUFFWTtNQUNoQixJQUFJQSxLQUFLLEdBQUcsQ0FBQztRQUFBLElBQUFFLEVBQUE7UUFBQSxJQUFBWCxDQUFBLFFBQUFZLE1BQUEsQ0FBQUMsR0FBQTtVQUNBRixFQUFBLElBQUMsSUFBSSxDQUFLLEdBQVcsQ0FBWCxXQUFXLENBQUMsRUFBRSxFQUF2QixJQUFJLENBQTBCO1VBQUFYLENBQUEsTUFBQVcsRUFBQTtRQUFBO1VBQUFBLEVBQUEsR0FBQVgsQ0FBQTtRQUFBO1FBQTFDUSxLQUFLLENBQUFNLElBQUssQ0FBQ0gsRUFBK0IsQ0FBQztNQUFBO01BQzVDLElBQUFBLEVBQUE7TUFBQSxJQUFBWCxDQUFBLFFBQUFJLFdBQUE7UUFHVU8sRUFBQSxJQUFDLElBQUksQ0FBQyxJQUFJLENBQUosS0FBRyxDQUFDLENBQUVQLFlBQVUsQ0FBRSxFQUF2QixJQUFJLENBQTBCO1FBQUFKLENBQUEsTUFBQUksV0FBQTtRQUFBSixDQUFBLE1BQUFXLEVBQUE7TUFBQTtRQUFBQSxFQUFBLEdBQUFYLENBQUE7TUFBQTtNQUNyQyxNQUFBZSxFQUFBLEdBQUFYLFdBQVcsS0FBSyxDQUF5QixHQUF6QyxRQUF5QyxHQUF6QyxVQUF5QztNQUFBLElBQUFZLEVBQUE7TUFBQSxJQUFBaEIsQ0FBQSxRQUFBVyxFQUFBLElBQUFYLENBQUEsU0FBQWUsRUFBQSxJQUFBZixDQUFBLFNBQUFVLElBQUE7UUFGNUNNLEVBQUEsSUFBQyxJQUFJLENBQUssR0FBZSxDQUFmLGVBQWUsQ0FDdEJOLEtBQUcsQ0FBRSxDQUFDLENBQUFDLEVBQThCLENBQUMsS0FBTSxJQUFFLENBQzdDLENBQUFJLEVBQXdDLENBQzNDLEVBSEMsSUFBSSxDQUdFO1FBQUFmLENBQUEsTUFBQVcsRUFBQTtRQUFBWCxDQUFBLE9BQUFlLEVBQUE7UUFBQWYsQ0FBQSxPQUFBVSxJQUFBO1FBQUFWLENBQUEsT0FBQWdCLEVBQUE7TUFBQTtRQUFBQSxFQUFBLEdBQUFoQixDQUFBO01BQUE7TUFKVFEsS0FBSyxDQUFBTSxJQUFLLENBQ1JFLEVBSUYsQ0FBQztNQUNEUCxLQUFLLEVBQUU7SUFBQTtJQUdULElBQUlKLGFBQWEsR0FBRyxDQUFDO01BQ25CLE1BQUFZLE1BQUEsR0FBYWYsYUFBYSxHQUN0Qk8sS0FBSyxLQUFLLENBRUcsR0FGYixXQUVhLEdBRmIsV0FLWSxHQUZaQSxLQUFLLEtBQUssQ0FFRSxHQUZaLFVBRVksR0FGWixVQUVZO01BQ2hCLElBQUlBLEtBQUssR0FBRyxDQUFDO1FBQUEsSUFBQUUsRUFBQTtRQUFBLElBQUFYLENBQUEsU0FBQVksTUFBQSxDQUFBQyxHQUFBO1VBQ0FGLEVBQUEsSUFBQyxJQUFJLENBQUssR0FBVyxDQUFYLFdBQVcsQ0FBQyxFQUFFLEVBQXZCLElBQUksQ0FBMEI7VUFBQVgsQ0FBQSxPQUFBVyxFQUFBO1FBQUE7VUFBQUEsRUFBQSxHQUFBWCxDQUFBO1FBQUE7UUFBMUNRLEtBQUssQ0FBQU0sSUFBSyxDQUFDSCxFQUErQixDQUFDO01BQUE7TUFFTCxNQUFBQSxFQUFBLE1BQUdELE1BQUksZ0JBQWdCO01BQUEsSUFBQUssRUFBQTtNQUFBLElBQUFmLENBQUEsU0FBQVcsRUFBQTtRQUFwREksRUFBQSxJQUFDLElBQUksQ0FBSyxHQUFpQixDQUFqQixpQkFBaUIsQ0FBRSxDQUFBSixFQUFzQixDQUFFLEVBQXBELElBQUksQ0FBdUQ7UUFBQVgsQ0FBQSxPQUFBVyxFQUFBO1FBQUFYLENBQUEsT0FBQWUsRUFBQTtNQUFBO1FBQUFBLEVBQUEsR0FBQWYsQ0FBQTtNQUFBO01BQXZFUSxLQUFLLENBQUFNLElBQUssQ0FBQ0MsRUFBNEQsQ0FBQztNQUN4RU4sS0FBSyxFQUFFO0lBQUE7SUFHVCxJQUFJSCxZQUFZLEdBQUcsQ0FBQztNQUNsQixNQUFBWSxNQUFBLEdBQWFoQixhQUFhLEdBQ3RCTyxLQUFLLEtBQUssQ0FFQyxHQUZYLFNBRVcsR0FGWCxTQUtTLEdBRlRBLEtBQUssS0FBSyxDQUVELEdBRlQsT0FFUyxHQUZULE9BRVM7TUFDYixJQUFJQSxLQUFLLEdBQUcsQ0FBQztRQUFBLElBQUFFLEVBQUE7UUFBQSxJQUFBWCxDQUFBLFNBQUFZLE1BQUEsQ0FBQUMsR0FBQTtVQUNBRixFQUFBLElBQUMsSUFBSSxDQUFLLEdBQVcsQ0FBWCxXQUFXLENBQUMsRUFBRSxFQUF2QixJQUFJLENBQTBCO1VBQUFYLENBQUEsT0FBQVcsRUFBQTtRQUFBO1VBQUFBLEVBQUEsR0FBQVgsQ0FBQTtRQUFBO1FBQTFDUSxLQUFLLENBQUFNLElBQUssQ0FBQ0gsRUFBK0IsQ0FBQztNQUFBO01BQzVDLElBQUFBLEVBQUE7TUFBQSxJQUFBWCxDQUFBLFNBQUFNLFlBQUE7UUFHVUssRUFBQSxJQUFDLElBQUksQ0FBQyxJQUFJLENBQUosS0FBRyxDQUFDLENBQUVMLGFBQVcsQ0FBRSxFQUF4QixJQUFJLENBQTJCO1FBQUFOLENBQUEsT0FBQU0sWUFBQTtRQUFBTixDQUFBLE9BQUFXLEVBQUE7TUFBQTtRQUFBQSxFQUFBLEdBQUFYLENBQUE7TUFBQTtNQUN0QyxNQUFBZSxFQUFBLEdBQUFULFlBQVksS0FBSyxDQUF5QixHQUExQyxRQUEwQyxHQUExQyxVQUEwQztNQUFBLElBQUFVLEVBQUE7TUFBQSxJQUFBaEIsQ0FBQSxTQUFBVyxFQUFBLElBQUFYLENBQUEsU0FBQWUsRUFBQSxJQUFBZixDQUFBLFNBQUFrQixNQUFBO1FBRjdDRixFQUFBLElBQUMsSUFBSSxDQUFLLEdBQWdCLENBQWhCLGdCQUFnQixDQUN2Qk4sT0FBRyxDQUFFLENBQUMsQ0FBQUMsRUFBK0IsQ0FBQyxLQUFNLElBQUUsQ0FDOUMsQ0FBQUksRUFBeUMsQ0FDNUMsRUFIQyxJQUFJLENBR0U7UUFBQWYsQ0FBQSxPQUFBVyxFQUFBO1FBQUFYLENBQUEsT0FBQWUsRUFBQTtRQUFBZixDQUFBLE9BQUFrQixNQUFBO1FBQUFsQixDQUFBLE9BQUFnQixFQUFBO01BQUE7UUFBQUEsRUFBQSxHQUFBaEIsQ0FBQTtNQUFBO01BSlRRLEtBQUssQ0FBQU0sSUFBSyxDQUNSRSxFQUlGLENBQUM7SUFBQTtJQUdJVCxFQUFBLEtBQUdDLE1BQUksQ0FBQyxHQUFJO0lBQUFSLENBQUEsTUFBQUcsaUJBQUE7SUFBQUgsQ0FBQSxNQUFBRSxhQUFBO0lBQUFGLENBQUEsTUFBQUksV0FBQTtJQUFBSixDQUFBLE1BQUFLLGFBQUE7SUFBQUwsQ0FBQSxNQUFBTSxZQUFBO0lBQUFOLENBQUEsTUFBQU8sRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQVAsQ0FBQTtFQUFBO0VBQUEsT0FBWk8sRUFBWTtBQUFBIiwiaWdub3JlTGlzdCI6W119