PageSourceSearch

https://mywtc.wtctheology.org.uk/js/1358.1249be8e.js

js wtctheology.org.uk collected 2026-09-25 20:25:23 UTC 115,704 bytes, 1 lines download raw bytes

1(self["webpackChunkcdms"]=self["webpackChunkcdms"]||[]).push([[1358],{31358:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";eval("{// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n  \"default\": function() { return /* binding */ Drawer; }\n});\n\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/components/VDivider/VDivider.js + 1 modules\nvar VDivider = __webpack_require__(59483);\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/components/VImg/VImg.js + 2 modules\nvar VImg = __webpack_require__(69873);\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/components/VList/VList.js + 1 modules\nvar VList = __webpack_require__(98983);\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/components/VList/VListItem.js + 1 modules\nvar VListItem = __webpack_require__(17296);\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/components/VList/index.js\nvar components_VList = __webpack_require__(1376);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js\nvar es_array_push = __webpack_require__(44114);\n;// ./node_modules/vuetify/src/components/VNavigationDrawer/VNavigationDrawer.sass\n// extracted by mini-css-extract-plugin\n\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/mixins/applicationable/index.js\nvar applicationable = __webpack_require__(38734);\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/mixins/colorable/index.js\nvar colorable = __webpack_require__(58743);\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/mixins/dependent/index.js\nvar dependent = __webpack_require__(32031);\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/mixins/mobile/index.js\nvar mobile = __webpack_require__(85054);\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/mixins/overlayable/index.js + 3 modules\nvar overlayable = __webpack_require__(58171);\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/mixins/ssr-bootable/index.js\nvar ssr_bootable = __webpack_require__(5367);\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/mixins/themeable/index.js\nvar themeable = __webpack_require__(73381);\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/directives/click-outside/index.js\nvar click_outside = __webpack_require__(94598);\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/directives/resize/index.js\nvar resize = __webpack_require__(45168);\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/directives/touch/index.js\nvar touch = __webpack_require__(22699);\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/util/helpers.js\nvar helpers = __webpack_require__(4152);\n// EXTERNAL MODULE: ./node_modules/vuetify/lib/util/mixins.js\nvar mixins = __webpack_require__(95803);\n;// ./node_modules/vuetify/lib/components/VNavigationDrawer/VNavigationDrawer.js\n\n// Styles\n // Components\n\n // Mixins\n\n\n\n\n\n\n\n // Directives\n\n\n\n // Utilities\n\n\n\nconst baseMixins = (0,mixins/* default */.A)((0,applicationable/* default */.A)('left', ['isActive', 'isMobile', 'miniVariant', 'expandOnHover', 'permanent', 'right', 'temporary', 'width']), colorable/* default */.A, dependent/* default */.A, mobile/* default */.A, overlayable/* default */.A, ssr_bootable/* default */.A, themeable/* default */.A);\n/* @vue/component */\n\n/* harmony default export */ var VNavigationDrawer = (baseMixins.extend({\n  name: 'v-navigation-drawer',\n  directives: {\n    ClickOutside: click_outside/* default */.A,\n    Resize: resize/* default */.A,\n    Touch: touch/* default */.A\n  },\n  provide() {\n    return {\n      isInNav: this.tag === 'nav'\n    };\n  },\n  props: {\n    bottom: Boolean,\n    clipped: Boolean,\n    disableResizeWatcher: Boolean,\n    disableRouteWatcher: Boolean,\n    expandOnHover: Boolean,\n    floating: Boolean,\n    height: {\n      type: [Number, String],\n      default() {\n        return this.app ? '100vh' : '100%';\n      }\n    },\n    miniVariant: Boolean,\n    miniVariantWidth: {\n      type: [Number, String],\n      default: 56\n    },\n    permanent: Boolean,\n    right: Boolean,\n    src: {\n      type: [String, Object],\n      default: ''\n    },\n    stateless: Boolean,\n    tag: {\n      type: String,\n      default() {\n        return this.app ? 'nav' : 'aside';\n      }\n    },\n    temporary: Boolean,\n    touchless: Boolean,\n    width: {\n      type: [Number, String],\n      default: 256\n    },\n    value: null\n  },\n  data: () => ({\n    isMouseover: false,\n    touchArea: {\n      left: 0,\n      right: 0\n    },\n    stackMinZIndex: 6\n  }),\n  computed: {\n    /**\n     * Used for setting an app value from a dynamic\n     * property. Called from applicationable.js\n     */\n    applicationProperty() {\n      return this.right ? 'right' : 'left';\n    },\n    classes() {\n      return {\n        'v-navigation-drawer': true,\n        'v-navigation-drawer--absolute': this.absolute,\n        'v-navigation-drawer--bottom': this.bottom,\n        'v-navigation-drawer--clipped': this.clipped,\n        'v-navigation-drawer--close': !this.isActive,\n        'v-navigation-drawer--fixed': !this.absolute && (this.app || this.fixed),\n        'v-navigation-drawer--floating': this.floating,\n        'v-navigation-drawer--is-mobile': this.isMobile,\n        'v-navigation-drawer--is-mouseover': this.isMouseover,\n        'v-navigation-drawer--mini-variant': this.isMiniVariant,\n        'v-navigation-drawer--custom-mini-variant': Number(this.miniVariantWidth) !== 56,\n        'v-navigation-drawer--open': this.isActive,\n        'v-navigation-drawer--open-on-hover': this.expandOnHover,\n        'v-navigation-drawer--right': this.right,\n        'v-navigation-drawer--temporary': this.temporary,\n        ...this.themeClasses\n      };\n    },\n    computedMaxHeight() {\n      if (!this.hasApp) return null;\n      const computedMaxHeight = this.$vuetify.application.bottom + this.$vuetify.application.footer + this.$vuetify.application.bar;\n      if (!this.clipped) return computedMaxHeight;\n      return computedMaxHeight + this.$vuetify.application.top;\n    },\n    computedTop() {\n      if (!this.hasApp) return 0;\n      let computedTop = this.$vuetify.application.bar;\n      computedTop += this.clipped ? this.$vuetify.application.top : 0;\n      return computedTop;\n    },\n    computedTransform() {\n      if (this.isActive) return 0;\n      if (this.isBottom) return 100;\n      return this.right ? 100 : -100;\n    },\n    computedWidth() {\n      return this.isMiniVariant ? this.miniVariantWidth : this.width;\n    },\n    hasApp() {\n      return this.app && !this.isMobile && !this.temporary;\n    },\n    isBottom() {\n      return this.bottom && this.isMobile;\n    },\n    isMiniVariant() {\n      return !this.expandOnHover && this.miniVariant || this.expandOnHover && !this.isMouseover;\n    },\n    isMobile() {\n      return !this.stateless && !this.permanent && mobile/* default */.A.options.computed.isMobile.call(this);\n    }
1,\n    reactsToClick() {\n      return !this.stateless && !this.permanent && (this.isMobile || this.temporary);\n    },\n    reactsToMobile() {\n      return this.app && !this.disableResizeWatcher && !this.permanent && !this.stateless && !this.temporary;\n    },\n    reactsToResize() {\n      return !this.disableResizeWatcher && !this.stateless;\n    },\n    reactsToRoute() {\n      return !this.disableRouteWatcher && !this.stateless && (this.temporary || this.isMobile);\n    },\n    showOverlay() {\n      return !this.hideOverlay && this.isActive && (this.isMobile || this.temporary);\n    },\n    styles() {\n      const translate = this.isBottom ? 'translateY' : 'translateX';\n      return {\n        height: (0,helpers/* convertToUnit */.Dg)(this.height),\n        top: !this.isBottom ? (0,helpers/* convertToUnit */.Dg)(this.computedTop) : 'auto',\n        maxHeight: this.computedMaxHeight != null ? `calc(100% - ${(0,helpers/* convertToUnit */.Dg)(this.computedMaxHeight)})` : undefined,\n        transform: `${translate}(${(0,helpers/* convertToUnit */.Dg)(this.computedTransform, '%')})`,\n        width: (0,helpers/* convertToUnit */.Dg)(this.computedWidth)\n      };\n    }\n  },\n  watch: {\n    $route: 'onRouteChange',\n    isActive(val) {\n      this.$emit('input', val);\n    },\n    /**\n     * When mobile changes, adjust the active state\n     * only when there has been a previous value\n     */\n    isMobile(val, prev) {\n      !val && this.isActive && !this.temporary && this.removeOverlay();\n      if (prev == null || !this.reactsToResize || !this.reactsToMobile) return;\n      this.isActive = !val;\n    },\n    permanent(val) {\n      // If enabling prop enable the drawer\n      if (val) this.isActive = true;\n    },\n    showOverlay(val) {\n      if (val) this.genOverlay();else this.removeOverlay();\n    },\n    value(val) {\n      if (this.permanent) return;\n      if (val == null) {\n        this.init();\n        return;\n      }\n      if (val !== this.isActive) this.isActive = val;\n    },\n    expandOnHover: 'updateMiniVariant',\n    isMouseover(val) {\n      this.updateMiniVariant(!val);\n    }\n  },\n  beforeMount() {\n    this.init();\n  },\n  methods: {\n    calculateTouchArea() {\n      const parent = this.$el.parentNode;\n      if (!parent) return;\n      const parentRect = parent.getBoundingClientRect();\n      this.touchArea = {\n        left: parentRect.left + 50,\n        right: parentRect.right - 50\n      };\n    },\n    closeConditional() {\n      return this.isActive && !this._isDestroyed && this.reactsToClick;\n    },\n    genAppend() {\n      return this.genPosition('append');\n    },\n    genBackground() {\n      const props = {\n        height: '100%',\n        width: '100%',\n        src: this.src\n      };\n      const image = this.$scopedSlots.img ? this.$scopedSlots.img(props) : this.$createElement(VImg/* default */.A, {\n        props\n      });\n      return this.$createElement('div', {\n        staticClass: 'v-navigation-drawer__image'\n      }, [image]);\n    },\n    genDirectives() {\n      const directives = [{\n        name: 'click-outside',\n        value: {\n          handler: () => {\n            this.isActive = false;\n          },\n          closeConditional: this.closeConditional,\n          include: this.getOpenDependentElements\n        }\n      }];\n      if (!this.touchless && !this.stateless) {\n        directives.push({\n          name: 'touch',\n          value: {\n            parent: true,\n            left: this.swipeLeft,\n            right: this.swipeRight\n          }\n        });\n      }\n      return directives;\n    },\n    genListeners() {\n      const on = {\n        mouseenter: () => this.isMouseover = true,\n        mouseleave: () => this.isMouseover = false,\n        transitionend: e => {\n          if (e.target !== e.currentTarget) return;\n          this.$emit('transitionend', e); // IE11 does not support new Event('resize')\n\n          const resizeEvent = document.createEvent('UIEvents');\n          resizeEvent.initUIEvent('resize', true, false, window, 0);\n          window.dispatchEvent(resizeEvent);\n        }\n      };\n      if (this.miniVariant) {\n        on.click = () => this.$emit('update:mini-variant', false);\n      }\n      return on;\n    },\n    genPosition(name) {\n      const slot = (0,helpers/* getSlot */.$c)(this, name);\n      if (!slot) return slot;\n      return this.$createElement('div', {\n        staticClass: `v-navigation-drawer__${name}`\n      }, slot);\n    },\n    genPrepend() {\n      return this.genPosition('prepend');\n    },\n    genContent() {\n      return this.$createElement('div', {\n        staticClass: 'v-navigation-drawer__content'\n      }, (0,helpers/* getSlot */.$c)(this));\n    },\n    genBorder() {\n      return this.$createElement('div', {\n        staticClass: 'v-navigation-drawer__border'\n      });\n    },\n    init() {\n      if (this.permanent) {\n        this.isActive = true;\n      } else if (this.stateless || this.value != null) {\n        this.isActive = this.value;\n      } else if (!this.temporary) {\n        this.isActive = !this.isMobile;\n      }\n    },\n    onRouteChange() {\n      if (this.reactsToRoute && this.closeConditional()) {\n        this.isActive = false;\n      }\n    },\n    swipeLeft(e) {\n      if (this.isActive && this.right) return;\n      this.calculateTouchArea();\n      if (Math.abs(e.touchendX - e.touchstartX) < 100) return;\n      if (this.right && e.touchstartX >= this.touchArea.right) this.isActive = true;else if (!this.right && this.isActive) this.isActive = false;\n    },\n    swipeRight(e) {\n      if (this.isActive && !this.right) return;\n      this.calculateTouchArea();\n      if (Math.abs(e.touchendX - e.touchstartX) < 100) return;\n      if (!this.right && e.touchstartX <= this.touchArea.left) this.isActive = true;else if (this.right && this.isActive) this.isActive = false;\n    },\n    /**\n     * Update the application layout\n     */\n    updateApplication() {\
1n      if (!this.isActive || this.isMobile || this.temporary || !this.$el) return 0;\n      const width = Number(this.miniVariant ? this.miniVariantWidth : this.width);\n      return isNaN(width) ? this.$el.clientWidth : width;\n    },\n    updateMiniVariant(val) {\n      if (this.expandOnHover && this.miniVariant !== val) this.$emit('update:mini-variant', val);\n    }\n  },\n  render(h) {\n    const children = [this.genPrepend(), this.genContent(), this.genAppend(), this.genBorder()];\n    if (this.src || (0,helpers/* getSlot */.$c)(this, 'img')) children.unshift(this.genBackground());\n    return h(this.tag, this.setBackgroundColor(this.color, {\n      class: this.classes,\n      style: this.styles,\n      directives: this.genDirectives(),\n      on: this.genListeners()\n    }), children);\n  }\n}));\n;// ./node_modules/vuetify-loader/lib/loader.js??ruleSet[1].rules[0].use!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/views/dashboard/components/core/Drawer.vue?vue&type=template&id=24712a62\n\n\n\n\n\n\n\n\nvar render = function render() {\n  var _vm = this,\n    _c = _vm._self._c;\n  return _c(VNavigationDrawer, _vm._b({\n    attrs: {\n      \"id\": \"core-navigation-drawer\",\n      \"dark\": _vm.barColor !== 'rgba(228, 226, 226, 1), rgba(255, 255, 255, 0.7)',\n      \"expand-on-hover\": _vm.expandOnHover,\n      \"mini-variant\": _vm.expandOnHover && _vm.$vuetify.breakpoint.mdAndUp,\n      \"right\": _vm.$vuetify.rtl,\n      \"src\": __webpack_require__(50290)(`./${_vm.barImage}`),\n      \"mobile-breakpoint\": \"960\",\n      \"app\": \"\",\n      \"mini-variant-width\": \"80\",\n      \"width\": \"260\"\n    },\n    scopedSlots: _vm._u([{\n      key: \"img\",\n      fn: function (props) {\n        return [_c(VImg/* default */.A, _vm._b({\n          attrs: {\n            \"gradient\": `to bottom, ${_vm.barColor}`\n          }\n        }, 'v-img', props, false))];\n      }\n    }]),\n    model: {\n      value: _vm.drawer,\n      callback: function ($$v) {\n        _vm.drawer = $$v;\n      },\n      expression: \"drawer\"\n    }\n  }, 'v-navigation-drawer', _vm.$attrs, false), [_c(VListItem/* default */.A, {\n    attrs: {\n      \"two-line\": \"\"\n    }\n  }, [_c(components_VList/* VListItemContent */.pr, [_c(components_VList/* VListItemTitle */.UZ, [_c('img', {\n    staticClass: \"logo\",\n    attrs: {\n      \"src\": _vm.logo\n    }\n  })])], 1)], 1), _c(VDivider/* default */.A, {\n    staticClass: \"mb-1\"\n  }), _c(VList/* default */.A, {\n    attrs: {\n      \"dense\": \"\",\n      \"nav\": \"\",\n      \"disabled\": \"\"\n    }\n  }, [_c('base-item-group', {\n    attrs: {\n      \"item\": _vm.profile\n    }\n  })], 1), _c(VDivider/* default */.A, {\n    staticClass: \"mb-2\"\n  }), _c(VList/* default */.A, {\n    attrs: {\n      \"expand\": \"\",\n      \"nav\": \"\"\n    }\n  }, [_c('div'), _vm._l(_vm.menuItems, function (item, i) {\n    return [item.children ? _c('base-item-group', {\n      key: `group-${i}`,\n      attrs: {\n        \"item\": item\n      }\n    }) : _c('base-item', {\n      key: `item-${i}`,\n      attrs: {\n        \"item\": item\n      }\n    })];\n  }), _c('div')], 2)], 1);\n};\nvar staticRenderFns = [];\n\n;// ./src/views/dashboard/components/core/Drawer.vue?vue&type=template&id=24712a62\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js\nvar es_iterator_constructor = __webpack_require__(18111);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.filter.js\nvar es_iterator_filter = __webpack_require__(22489);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.map.js\nvar es_iterator_map = __webpack_require__(61701);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.reduce.js\nvar es_iterator_reduce = __webpack_require__(18237);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.some.js\nvar es_iterator_some = __webpack_require__(13579);\n// EXTERNAL MODULE: ./src/utils/config.js + 10 modules\nvar config = __webpack_require__(17958);\n// EXTERNAL MODULE: ./src/services/pages.v2.service.js\nvar pages_v2_service = __webpack_require__(77377);\n// EXTERNAL MODULE: ./node_modules/vuex/dist/vuex.esm.js\nvar vuex_esm = __webpack_require__(95353);\n;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/views/dashboard/components/core/Drawer.vue?vue&type=script&lang=js\n\n\n\n\n\n\n\n\n\n// Utilities\n\n/* harmony default export */ var Drawervue_type_script_lang_js = ({\n  name: 'DashboardCoreDrawer',\n  props: {\n    expandOnHover: {\n      type: Boolean,\n      default: false\n    }\n  },\n  data: () => ({\n    moduleMenu: {},\n    menuItems: [],\n    dynamicPages: {},\n    pageDraftStatus: {},\n    pageCategories: {}
1,\n    profile: {\n      avatar: undefined,\n      group: '',\n      title: undefined,\n      subtitle: undefined,\n      children: []\n    },\n    logo: ''\n  }),\n  computed: {\n    ...(0,vuex_esm/* mapState */.aH)(['barColor', 'barImage']),\n    drawer: {\n      get() {\n        return this.$store.state.drawer;\n      },\n      set(val) {\n        this.$store.commit('SET_DRAWER', val);\n      }\n    }\n  },\n  watch: {\n    '$vuetify.breakpoint.smAndDown'(val) {\n      this.$emit('update:expandOnHover', !val);\n    },\n    async '$currentUser'() {\n      this.filterMenuItems();\n      this.fetchProfile();\n      this.fetchLogo();\n    },\n    async '$currentStudent'() {\n      this.filterMenuItems();\n      this.fetchProfile();\n    },\n    // The contexts arrive after the user does, so the entries that need one\n    // are decided again once they are known.\n    '$store.getters.heldContexts'() {\n      this.filterMenuItems();\n    }\n  },\n  async created() {\n    this.moduleMenu = config/* default */.A.get('modules').menu;\n    // load page category lists to bind into menu (V2 sorts by position)\n    const {\n      data\n    } = await pages_v2_service/* default */.A.getList();\n    this.dynamicPages = data.filter(item => !item.category).reduce((obj, item) => {\n      obj[item.path] = item.draft;\n      return obj;\n    }, {});\n    this.pageDraftStatus = data.reduce((obj, item) => {\n      obj[item.path] = !!item.draft;\n      return obj;\n    }, {});\n    this.pageCategories = data.reduce((obj, item) => {\n      if (!(item.category in obj)) {\n        obj[item.category] = [];\n      }\n      const page = {\n        title: item.title,\n        to: item.path,\n        draft: item.draft,\n        position: item.position\n      };\n      if (item.tag) {\n        page.tag = item.tag;\n      }\n      obj[item.category].push(page);\n      return obj;\n    }, {});\n    this.filterMenuItems();\n    this.fetchProfile();\n    this.fetchLogo();\n  },\n  methods: {\n    filterMenuItems() {\n      // only show draft pages for editors or those overriding users\n      const showDraft = this.$hasPermission('pages:edit') || !!this.$store.state.overridingUser.id;\n      this.menuItems = this.moduleMenu.filter(item => this.menuItemVisible(item) && (showDraft || this.pageAvailable(item)) && this.sectionAvailable(item)).filter(item => this.pageVisibleForStudent(item.programmes)).filter(item => this.featureAppliesToStudent(item.studentFeature)).filter(item => this.hasVisibleChildrenIfCategory(item, showDraft)).map(item => this.mapItem(item, showDraft));\n    },\n    fetchProfile() {\n      this.profile.avatar = this.$store.state.currentUser.picture;\n      this.profile.title = this.$store.state.currentUser.name;\n      this.profile.subtitle = this.$store.state.currentStudent?.partnerId;\n    },\n    fetchLogo() {\n      if (this.$hasPermission('dashboard:view')) {\n        this.logo = config/* default */.A.get('CDMSLogo');\n      } else if (this.$hasPermission('forms:student')) {\n        this.logo = config/* default */.A.get('studentPortalLogo');\n      }\n    },\n    mapItem(item, showDraft) {\n      let children;\n      if (item.children) {\n        children = item.children.filter(child => this.menuItemVisible(child) && (showDraft || this.childPageAvailable(child))).filter(child => this.pageVisibleForStudent(child.programmes)).filter(child => this.featureAppliesToStudent(child.studentFeature)).map(child => this.mapItem(child, showDraft));\n      }\n      if (item.category) {\n        // load category pages from the database and append them to any hard-coded\n        // children so a node can mix custom pages with a portal-page category\n        const categoryChildren = (this.pageCategories[item.category] || []).filter(page => showDraft || !page.draft).filter(page => this.pageVisibleForStudent(page.tag));\n        children = [...(children || []), ...categoryChildren];\n      }\n      // order by position where set; entries without one keep their list order\n      // (hard-coded children) and fall after positioned pages\n      if (children && children.some(child => child.position != null)) {\n        children = children.map((child, index) => ({\n          child,\n          index\n        })).sort((a, b) =>
1 {\n          const posA = a.child.position == null ? Infinity : a.child.position;\n          const posB = b.child.position == null ? Infinity : b.child.position;\n          return posA - posB || a.index - b.index;\n        }).map(entry => entry.child);\n      }\n      return {\n        ...item,\n        children,\n        title: item.title\n      };\n    },\n    // An entry needs its permission, if any, and - when it names the\n    // relationship its list is built from - one of those relationships too, so\n    // nobody is offered a list that would be empty for them.\n    menuItemVisible(item) {\n      return (!item.requires || this.$hasAnyPermission(item.requires)) && this.holdsContext(item);\n    },\n    holdsContext(item) {\n      if (!item.context) return true;\n      const wanted = [item.context].flat();\n      return wanted.some(context => this.$store.getters.heldContexts.includes(context));\n    },\n    pageAvailable(item) {\n      return !item.props || !item.props.path || item.props.path in this.dynamicPages && !this.dynamicPages[item.props.path];\n    },\n    childPageAvailable(child) {\n      return !child.props || !child.props.path || !this.pageDraftStatus[child.props.path];\n    },\n    sectionAvailable(item) {\n      // a node with hard-coded children stays available even if its category is empty\n      return !item.category || item.children || item.category in this.pageCategories;\n    },\n    hasVisibleChildrenIfCategory(item, showDraft) {\n      if (item.category && !item.children) {\n        return this.pageCategories[item.category].filter(page => showDraft || !page.draft).length > 0;\n      } else {\n        return true;\n      }\n    },\n    featureAppliesToStudent(studentFeature) {\n      // restricts a menu item to the student types a portal feature applies to,\n      // so a student is never offered a page that would only tell them the\n      // feature is not required for their type. Items without a `studentFeature`\n      // key (every staff menu item) are unaffected.\n      return !studentFeature || this.$store.getters.studentHasFeature(studentFeature);\n    },\n    pageVisibleForStudent(restriction) {\n      // restricts a page or menu item to a list of location or programme codes; a\n      // token prefixed with ! excludes. Portal pages in the database carry it as a\n      // space/comma separated `tag` string; client-config menu items as a\n      // `programmes` array. Show when unset, when a positive token matches (or none\n      // are given) and when no negative token matches.\n      const tokens = Array.isArray(restriction) ? restriction.filter(Boolean) : (restriction || '').split(/[\\s,]+/).filter(Boolean);\n      if (tokens.length === 0) {\n        return true;\n      }\n      const {\n        location,\n        programmeCode\n      } = this.$currentStudent || {};\n      const matches = token => token === location || token === programmeCode || token === 'Flexi' && !location;\n      const negatives = tokens.filter(token => token.startsWith('!')).map(token => token.slice(1));\n      if (negatives.some(matches)) {\n        return false;\n      }\n      const positives = tokens.filter(token => !token.startsWith('!'));\n      return positives.length === 0 || positives.some(matches);\n    }\n  }\n});\n;// ./src/views/dashboard/components/core/Drawer.vue?vue&type=script&lang=js\n /* harmony default export */ var core_Drawervue_type_script_lang_js = (Drawervue_type_script_lang_js); \n;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-27.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-27.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-27.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-27.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/views/dashboard/components/core/Drawer.vue?vue&type=style&index=0&id=24712a62&prod&lang=sass\n// extracted by mini-css-extract-plugin\n\n;// ./src/views/dashboard/components/core/Drawer.vue?vue&type=style&index=0&id=24712a62&prod&lang=sass\n\n// EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__(81656);\n;// ./src/views/dashboard/components/core/Drawer.vue\n\n\n\n;\n\n\n/* normalize component */\n\nvar component = (0,componentNormalizer/* default */.A)(\n  core_Drawervue_type_script_lang_js,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* harmony default export */ var Drawer = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzEzNTguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQTtDQUdBOztDQUdBOztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtDQUdBOztBQUNBO0FBQ0E7Q0FHQTs7QUFDQTtBQUNBO0FBTUEsTUFBTWMsVUFBVSxHQUFHRCx5QkFBTSxDQUN2Qlosa0NBQWUsQ0FBQyxNQUFELEVBQVMsQ0FDdEIsVUFEc0IsRUFFdEIsVUFGc0IsRUFHdEIsYUFIc0IsRUFJdEIsZUFKc0IsRUFLdEIsV0FMc0IsRUFNdEIsT0FOc0IsRUFPdEIsV0FQc0IsRUFRdEIsT0FSc0IsQ0FBVCxDQURRLEVBV3ZCQyx3QkFYdUIsRU
1FZdkJDLHdCQVp1QixFQWF2QkMscUJBYnVCLEVBY3ZCQywwQkFkdUIsRUFldkJDLDJCQWZ1QixFQWdCdkJDLHdCQWhCdUIsQ0FBekI7QUFtQkE7O0FBQ0Esc0RBQWVPLFVBQVUsQ0FBQ0MsTUFBWCxDQUFrQjtFQUMvQkMsSUFBSSxFQUFFLHFCQUR5QjtFQUcvQkMsVUFBVSxFQUFFO0lBQ1ZULFlBRFU7SUFFVkMsTUFGVTtJQUdWQyxLQUFLQSxFQUFBQSxvQkFBQUE7RUFISyxDQUhtQjtFQVMvQlEsT0FBT0EsQ0FBQTtJQUNMLE9BQU87TUFDTEMsT0FBTyxFQUFFLEtBQUtDLEdBQUwsS0FBYTtJQURqQixDQUFQO0VBR0QsQ0FiOEI7RUFlL0JDLEtBQUssRUFBRTtJQUNMQyxNQUFNLEVBQUVDLE9BREg7SUFFTEMsT0FBTyxFQUFFRCxPQUZKO0lBR0xFLG9CQUFvQixFQUFFRixPQUhqQjtJQUlMRyxtQkFBbUIsRUFBRUgsT0FKaEI7SUFLTEksYUFBYSxFQUFFSixPQUxWO0lBTUxLLFFBQVEsRUFBRUwsT0FOTDtJQU9MTSxNQUFNLEVBQUU7TUFDTkMsSUFBSSxFQUFFLENBQUNDLE1BQUQsRUFBU0MsTUFBVCxDQURBO01BRU5DLE9BQU9BLENBQUE7UUFDTCxPQUFPLEtBQUtDLEdBQUwsR0FBVyxPQUFYLEdBQXFCLE1BQTVCO01BQ0Q7SUFKSyxDQVBIO0lBYUxDLFdBQVcsRUFBRVosT0FiUjtJQWNMYSxnQkFBZ0IsRUFBRTtNQUNoQk4sSUFBSSxFQUFFLENBQUNDLE1BQUQsRUFBU0MsTUFBVCxDQURVO01BRWhCQyxPQUFPLEVBQUU7SUFGTyxDQWRiO0lBa0JMSSxTQUFTLEVBQUVkLE9BbEJOO0lBbUJMZSxLQUFLLEVBQUVmLE9BbkJGO0lBb0JMZ0IsR0FBRyxFQUFFO01BQ0hULElBQUksRUFBRSxDQUFDRSxNQUFELEVBQVNRLE1BQVQsQ0FESDtNQUVIUCxPQUFPLEVBQUU7SUFGTixDQXBCQTtJQXdCTFEsU0FBUyxFQUFFbEIsT0F4Qk47SUF5QkxILEdBQUcsRUFBRTtNQUNIVSxJQUFJLEVBQUVFLE1BREg7T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BZSxpQiIsInNvdXJjZXMiOlsid2VicGFjazovL2NkbXMvLi9ub2RlX21vZHVsZXMvdnVldGlmeS9zcmMvY29tcG9uZW50cy9WTmF2aWdhdGlvbkRyYXdlci9WTmF2aWdhdGlvbkRyYXdlci5zYXNzPzg4Y2EiLCJ3ZWJwYWNrOi8vY2Rtcy8uLi9zcmMvY29tcG9uZW50cy9WTmF2aWdhdGlvbkRyYXdlci9WTmF2aWdhdGlvbkRyYXdlci50cz8zZGQ2Iiwid2VicGFjazovL2NkbXMvLi9zcmMvdmlld3MvZGFzaGJvYXJkL2NvbXBvbmVudHMvY29yZS9EcmF3ZXIudnVlPzY1ZjYiLCJ3ZWJwYWNrOi8vY2Rtcy8uL3NyYy92aWV3cy9kYXNoYm9hcmQvY29tcG9uZW50cy9jb3JlL0RyYXdlci52dWU/Mjk2ZSIsIndlYnBhY2s6Ly9jZG1zL3NyYy92aWV3cy9kYXNoYm9hcmQvY29tcG9uZW50cy9jb3JlL0RyYXdlci52dWU/ZmJjMiIsIndlYnBhY2s6Ly9jZG1zLy4vc3JjL3ZpZXdzL2Rhc2hib2FyZC9jb21wb25lbnRzL2NvcmUvRHJhd2VyLnZ1ZT9kMmMwIiwid2VicGFjazovL2NkbXMvLi9zcmMvdmlld3MvZGFzaGJvYXJkL2NvbXBvbmVudHMvY29yZS9EcmF3ZXIudnVlPzlmY2YiLCJ3ZWJwYWNrOi8vY2Rtcy8uL3NyYy92aWV3cy9kYXNoYm9hcmQvY29tcG9uZW50cy9jb3JlL0RyYXdlci52dWU/ODYyMyIsIndlYnBhY2s6Ly9jZG1zLy4vc3JjL3ZpZXdzL2Rhc2hib2FyZC9jb21wb25lbnRzL2NvcmUvRHJhd2VyLnZ1ZT84MDFlIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IHt9OyIsIi8vIFN0eWxlc1xuaW1wb3J0ICcuL1ZOYXZpZ2F0aW9uRHJhd2VyLnNhc3MnXG5cbi8vIENvbXBvbmVudHNcbmltcG9ydCBWSW1nLCB7IHNyY09iamVjdCB9IGZyb20gJy4uL1ZJbWcvVkltZydcblxuLy8gTWl4aW5zXG5pbXBvcnQgQXBwbGljYXRpb25hYmxlIGZyb20gJy4uLy4uL21peGlucy9hcHBsaWNhdGlvbmFibGUnXG5pbXBvcnQgQ29sb3JhYmxlIGZyb20gJy4uLy4uL21peGlucy9jb2xvcmFibGUnXG5pbXBvcnQgRGVwZW5kZW50IGZyb20gJy4uLy4uL21peGlucy9kZXBlbmRlbnQnXG5pbXBvcnQgTW9iaWxlIGZyb20gJy4uLy4uL21peGlucy9tb2JpbGUnXG5pbXBvcnQgT3ZlcmxheWFibGUgZnJvbSAnLi4vLi4vbWl4aW5zL292ZXJsYXlhYmxlJ1xuaW1wb3J0IFNTUkJvb3RhYmxlIGZyb20gJy4uLy4uL21peGlucy9zc3ItYm9vdGFibGUnXG5pbXBvcnQgVGhlbWVhYmxlIGZyb20gJy4uLy4uL21peGlucy90aGVtZWFibGUnXG5cbi8vIERpcmVjdGl2ZXNcbmltcG9ydCBDbGlja091dHNpZGUgZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9jbGljay1vdXRzaWRlJ1xuaW1wb3J0IFJlc2l6ZSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3Jlc2l6ZSdcbmltcG9ydCBUb3VjaCBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3RvdWNoJ1xuXG4vLyBVdGlsaXRpZXNcbmltcG9ydCB7
1IGNvbnZlcnRUb1VuaXQsIGdldFNsb3QgfSBmcm9tICcuLi8uLi91dGlsL2hlbHBlcnMnXG5pbXBvcnQgbWl4aW5zIGZyb20gJy4uLy4uL3V0aWwvbWl4aW5zJ1xuXG4vLyBUeXBlc1xuaW1wb3J0IHsgVk5vZGUsIFZOb2RlRGlyZWN0aXZlLCBQcm9wVHlwZSB9IGZyb20gJ3Z1ZSdcbmltcG9ydCB7IFRvdWNoV3JhcHBlciB9IGZyb20gJ3Z1ZXRpZnkvdHlwZXMnXG5cbmNvbnN0IGJhc2VNaXhpbnMgPSBtaXhpbnMoXG4gIEFwcGxpY2F0aW9uYWJsZSgnbGVmdCcsIFtcbiAgICAnaXNBY3RpdmUnLFxuICAgICdpc01vYmlsZScsXG4gICAgJ21pbmlWYXJpYW50JyxcbiAgICAnZXhwYW5kT25Ib3ZlcicsXG4gICAgJ3Blcm1hbmVudCcsXG4gICAgJ3JpZ2h0JyxcbiAgICAndGVtcG9yYXJ5JyxcbiAgICAnd2lkdGgnLFxuICBdKSxcbiAgQ29sb3JhYmxlLFxuICBEZXBlbmRlbnQsXG4gIE1vYmlsZSxcbiAgT3ZlcmxheWFibGUsXG4gIFNTUkJvb3RhYmxlLFxuICBUaGVtZWFibGVcbilcblxuLyogQHZ1ZS9jb21wb25lbnQgKi9cbmV4cG9ydCBkZWZhdWx0IGJhc2VNaXhpbnMuZXh0ZW5kKHtcbiAgbmFtZTogJ3YtbmF2aWdhdGlvbi1kcmF3ZXInLFxuXG4gIGRpcmVjdGl2ZXM6IHtcbiAgICBDbGlja091dHNpZGUsXG4gICAgUmVzaXplLFxuICAgIFRvdWNoLFxuICB9LFxuXG4gIHByb3ZpZGUgKCk6IG9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzSW5OYXY6IHRoaXMudGFnID09PSAnbmF2JyxcbiAgICB9XG4gIH0sXG5cbiAgcHJvcHM6IHtcbiAgICBib3R0b206IEJvb2xlYW4sXG4gICAgY2xpcHBlZDogQm9vbGVhbixcbiAgICBkaXNhYmxlUmVzaXplV2F0Y2hlcjogQm9vbGVhbixcbiAgICBkaXNhYmxlUm91dGVXYXRjaGVyOiBCb29sZWFuLFxuICAgIGV4cGFuZE9uSG92ZXI6IEJvb2xlYW4sXG4gICAgZmxvYXRpbmc6IEJvb2xlYW4sXG4gICAgaGVpZ2h0OiB7XG4gICAgICB0eXBlOiBbTnVtYmVyLCBTdHJpbmddLFxuICAgICAgZGVmYXVsdCAoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwID8gJzEwMHZoJyA6ICcxMDAlJ1xuICAgICAgfSxcbiAgICB9LFxuICAgIG1pbmlWYXJpYW50OiBCb29sZWFuLFxuICAgIG1pbmlWYXJpYW50V2lkdGg6IHtcbiAgICAgIHR5cGU6IFtOdW1iZXIsIFN0cmluZ10sXG4gICAgICBkZWZhdWx0OiA1NixcbiAgICB9LFxuICAgIHBlcm1hbmVudDogQm9vbGVhbixcbiAgICByaWdodDogQm9vbGVhbixcbiAgICBzcmM6IHtcbiAgICAgIHR5cGU6IFtTdHJpbmcsIE9iamVjdF0gYXMgUHJvcFR5cGU8c3RyaW5nIHwgc3JjT2JqZWN0PixcbiAgICAgIGRlZmF1bHQ6ICcnLFxuICAgIH0sXG4gICAgc3RhdGVsZXNzOiBCb29sZWFuLFxuICAgIHRhZzoge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZGVmYXVsdCAoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwID8gJ25hdicgOiAnYXNpZGUnXG4gICAgICB9LFxuICAgIH0sXG4gICAgdGVtcG9yYXJ5OiBCb29sZWFuLFxuICAgIHRvdWNobGVzczogQm9vbGVhbixcbiAgICB3aWR0aDoge1xuICAgICAgdHlwZTogW051bWJlciwgU3RyaW5nXSxcbiAgICAgIGRlZmF1bHQ6IDI1NixcbiAgICB9LFxuICAgIHZhbHVlOiBudWxsIGFzIHVua25vd24gYXMgUHJvcFR5cGU8YW55PixcbiAgfSxcblxuICBkYXRhOiAoKSA9PiAoe1xuICAgIGlzTW91c2VvdmVyOiBmYWxzZSxcbiAgICB0b3VjaEFyZWE6IHtcbiAgICAgIGxlZnQ6IDAsXG4gICAgICByaWdodDogMCxcbiAgICB9LFxuICAgIHN0YWNrTWluWkluZGV4OiA2LFxuICB9KSxcblxuICBjb21wdXRlZDoge1xuICAgIC8qKlxuICAgICAqIFVzZWQgZm9yIHNldHRpbmcgYW4gYXBwIHZhbHVlIGZyb20gYSBkeW5hbWljXG4gICAgICogcHJvcGVydHkuIENhbGxlZCBmcm9tIGFwcGxpY2F0aW9uYWJsZS5qc1xuICAgICAqL1xuICAgIGFwcGxpY2F0aW9uUHJvcGVydHkgKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGhpcy5yaWdodCA/ICdyaWdodCcgOiAnbGVmdCdcbiAgICB9LFxuICAgIGNsYXNzZXMgKCk6IG9iamVjdCB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAndi1uYXZpZ2F0aW9uLWRyYXdlcic6IHRydWUsXG4gICAgICAgICd2LW5hdmlnYXRpb24tZHJhd2VyLS1hYnNvbHV0ZSc6IHRoaXMuYWJzb2x1dGUsXG4gICAgICAgICd2LW5hdmlnYXRpb24tZHJhd2VyLS1ib3R0b20nOiB0aGlzLmJvdHRvbSxcbiAgICAgICAgJ3YtbmF2aWdhdGlvbi1kcmF3ZXItLWNsaXBwZWQnOiB0aGlzLmNsaXBwZWQsXG4gICAgICAgICd2LW5hdmlnYXRpb24tZHJhd2VyLS1jbG9zZSc6ICF0aGlzLmlzQWN0aXZlLFxuICAgICAgICAndi1uYXZpZ2F0aW9uLWRyYXdlci0tZml4ZWQnOiAhdGhpcy5hYnNvbHV0ZSAmJiAodGhpcy5hcHAgfHwgdGhpcy5maXhlZCksXG4gICAgICAgICd2LW5hdmlnYXRpb24tZHJhd2VyLS1mbG9hdGluZyc6IHRoaXMuZmxvYXRpbmcsXG4gICAgICAgICd2LW5hdmlnYXRpb24tZHJhd2VyLS1pcy1tb2JpbGUnOiB0aGlzLmlzTW9iaWxlLFxuICAgICAgICAndi1uYXZpZ2F0aW9uLWRyYXdlci0taXMtbW91c2VvdmVyJzogdGhpcy5pc01vdXNlb3ZlcixcbiAgICAgICAgJ3YtbmF2aWdhdGlvbi1kcmF3ZXItLW1pbmktdmFyaWFudCc6IHRoaXMuaXNNaW5pVmFyaWFudCxcbiAgICAgICAgJ3YtbmF2aWdhdGlvbi1kcmF3ZXItLWN1c3RvbS1taW5pLXZhcmlhbnQnOiBOdW1iZXIodGhpcy5taW5pVmFyaWFudFdpZHRoKSAhPT0gNTYsXG4gICAgICAgICd2LW5hdmlnYXRpb24tZHJhd2VyLS1vcGVuJzogdGhpcy5pc0FjdGl2ZSxcbiAgICAgICAgJ3YtbmF2aWdhdGlvbi1kcmF3ZXItLW9wZW4tb24taG92ZXInOiB0aGlzLmV4cGFuZE9uSG92ZXIsXG4gICAgICAgICd2LW5hdmlnYXRpb24tZHJhd2VyLS1yaWdodCc6IHRoaXMucmlnaHQsXG4gICAgICAgICd2LW5hdmlnYXRpb24tZHJhd2VyLS10ZW1wb3JhcnknOiB0aGlzLnRlbXBvcmFyeSxcbiAgICAgICAgLi4udGhpcy50aGVtZUNsYXNzZXMsXG4gICAgICB9XG4gICAgfSxcbiAgICBjb21wdXRlZE1heEhlaWdodCAoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgICBpZiAoIXRoaXMuaGFzQXBwKSByZXR1cm4gbnVsbFxuXG4gICAgICBjb25zdCBjb21wdXRlZE1heEhlaWdodCA9IChcbiAgICAgICAgdGhpcy4kdnVldGlmeS5hcHBsaWNhdGlvbi5ib3R0b20gK1xuICAgICAgICB0aGlzLiR2dWV0aWZ5LmFwcGxpY2F0aW9uLmZvb3RlciArXG4gICAgICAgI
1HRoaXMuJHZ1ZXRpZnkuYXBwbGljYXRpb24uYmFyXG4gICAgICApXG5cbiAgICAgIGlmICghdGhpcy5jbGlwcGVkKSByZXR1cm4gY29tcHV0ZWRNYXhIZWlnaHRcblxuICAgICAgcmV0dXJuIGNvbXB1dGVkTWF4SGVpZ2h0ICsgdGhpcy4kdnVldGlmeS5hcHBsaWNhdGlvbi50b3BcbiAgICB9LFxuICAgIGNvbXB1dGVkVG9wICgpOiBudW1iZXIge1xuICAgICAgaWYgKCF0aGlzLmhhc0FwcCkgcmV0dXJuIDBcblxuICAgICAgbGV0IGNvbXB1dGVkVG9wID0gdGhpcy4kdnVldGlmeS5hcHBsaWNhdGlvbi5iYXJcblxuICAgICAgY29tcHV0ZWRUb3AgKz0gdGhpcy5jbGlwcGVkXG4gICAgICAgID8gdGhpcy4kdnVldGlmeS5hcHBsaWNhdGlvbi50b3BcbiAgICAgICAgOiAwXG5cbiAgICAgIHJldHVybiBjb21wdXRlZFRvcFxuICAgIH0sXG4gICAgY29tcHV0ZWRUcmFuc2Zvcm0gKCk6IG51bWJlciB7XG4gICAgICBpZiAodGhpcy5pc0FjdGl2ZSkgcmV0dXJuIDBcbiAgICAgIGlmICh0aGlzLmlzQm90dG9tKSByZXR1cm4gMTAwXG4gICAgICByZXR1cm4gdGhpcy5yaWdodCA/IDEwMCA6IC0xMDBcbiAgICB9LFxuICAgIGNvbXB1dGVkV2lkdGggKCk6IHN0cmluZyB8IG51bWJlciB7XG4gICAgICByZXR1cm4gdGhpcy5pc01pbmlWYXJpYW50ID8gdGhpcy5taW5pVmFyaWFudFdpZHRoIDogdGhpcy53aWR0aFxuICAgIH0sXG4gICAgaGFzQXBwICgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHRoaXMuYXBwICYmXG4gICAgICAgICghdGhpcy5pc01vYmlsZSAmJiAhdGhpcy50ZW1wb3JhcnkpXG4gICAgICApXG4gICAgfSxcbiAgICBpc0JvdHRvbSAoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5ib3R0b20gJiYgdGhpcy5pc01vYmlsZVxuICAgIH0sXG4gICAgaXNNaW5pVmFyaWFudCAoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAhdGhpcy5leHBhbmRPbkhvdmVyICYmXG4gICAgICAgIHRoaXMubWluaVZhcmlhbnRcbiAgICAgICkgfHwgKFxuICAgICAgICB0aGlzLmV4cGFuZE9uSG92ZXIgJiZcbiAgICAgICAgIXRoaXMuaXNNb3VzZW92ZXJcbiAgICAgIClcbiAgICB9LFxuICAgIGlzTW9iaWxlICgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgICF0aGlzLnN0YXRlbGVzcyAmJlxuICAgICAgICAhdGhpcy5wZXJtYW5lbnQgJiZcbiAgICAgICAgTW9iaWxlLm9wdGlvbnMuY29tcHV0ZWQuaXNNb2JpbGUuY2FsbCh0aGlzKVxuICAgICAgKVxuICAgIH0sXG4gICAgcmVhY3RzVG9DbGljayAoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAhdGhpcy5zdGF0ZWxlc3MgJiZcbiAgICAgICAgIXRoaXMucGVybWFuZW50ICYmXG4gICAgICAgICh0aGlzLmlzTW9iaWxlIHx8IHRoaXMudGVtcG9yYXJ5KVxuICAgICAgKVxuICAgIH0sXG4gICAgcmVhY3RzVG9Nb2JpbGUgKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGhpcy5hcHAgJiZcbiAgICAgICAgIXRoaXMuZGlzYWJsZVJlc2l6ZVdhdGNoZXIgJiZcbiAgICAgICAgIXRoaXMucGVybWFuZW50ICYmXG4gICAgICAgICF0aGlzLnN0YXRlbGVzcyAmJlxuICAgICAgICAhdGhpcy50ZW1wb3JhcnlcbiAgICAgIClcbiAgICB9LFxuICAgIHJlYWN0c1RvUmVzaXplICgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiAhdGhpcy5kaXNhYmxlUmVzaXplV2F0Y2hlciAmJiAhdGhpcy5zdGF0ZWxlc3NcbiAgICB9LFxuICAgIHJlYWN0c1RvUm91dGUgKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgIXRoaXMuZGlzYWJsZVJvdXRlV2F0Y2hlciAmJlxuICAgICAgICAhdGhpcy5zdGF0ZWxlc3MgJiZcbiAgICAgICAgKHRoaXMudGVtcG9yYXJ5IHx8IHRoaXMuaXNNb2JpbGUpXG4gICAgICApXG4gICAgfSxcbiAgICBzaG93T3ZlcmxheSAoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAhdGhpcy5oaWRlT3ZlcmxheSAmJlxuICAgICAgICB0aGlzLmlzQWN0aXZlICYmXG4gICAgICAgICh0aGlzLmlzTW9iaWxlIHx8IHRoaXMudGVtcG9yYXJ5KVxuICAgICAgKVxuICAgIH0sXG4gICAgc3R5bGVzICgpOiBvYmplY3Qge1xuICAgICAgY29uc3QgdHJhbnNsYXRlID0gdGhpcy5pc0JvdHRvbSA/ICd0cmFuc2xhdGVZJyA6ICd0cmFuc2xhdGVYJ1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaGVpZ2h0OiBjb252ZXJ0VG9Vbml0KHRoaXMuaGVpZ2h0KSxcbiAgICAgICAgdG9wOiAhdGhpcy5pc0JvdHRvbSA/IGNvbnZlcnRUb1VuaXQodGhpcy5jb21wdXRlZFRvcCkgOiAnYXV0bycsXG4gICAgICAgIG1heEhlaWdodDogdGhpcy5jb21wdXRlZE1heEhlaWdodCAhPSBudWxsXG4gICAgICAgICAgPyBgY2FsYygxMDAlIC0gJHtjb252ZXJ0VG9Vbml0KHRoaXMuY29tcHV0ZWRNYXhIZWlnaHQpfSlgXG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIHRyYW5zZm9ybTogYCR7dHJhbnNsYXRlfSgke2NvbnZlcnRUb1VuaXQodGhpcy5jb21wdXRlZFRyYW5zZm9ybSwgJyUnKX0pYCxcbiAgICAgICAgd2lkdGg6IGNvbnZlcnRUb1VuaXQodGhpcy5jb21wdXRlZFdpZHRoKSxcbiAgICAgIH1cbiAgICB9LFxuICB9LFxuXG4gIHdhdGNoOiB7XG4gICAgJHJvdXRlOiAnb25Sb3V0ZUNoYW5nZScsXG4gICAgaXNBY3RpdmUgKHZhbCkge1xuICAgICAgdGhpcy4kZW1pdCgnaW5wdXQnLCB2YWwpXG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBXaGVuIG1vYmlsZSBjaGFuZ2VzLCBhZGp1c3QgdGhlIGFjdGl2ZSBzdGF0ZVxuICAgICAqIG9ubHkgd2hlbiB0aGVyZSBoYXMgYmVlbiBhIHByZXZpb3VzIHZhbHVlXG4gICAgICovXG4gICAgaXNNb2JpbGUgKHZhbCwgcHJldikge1xuICAgICAgIXZhbCAmJlxuICAgICAgICB0aGlzLmlzQWN0aXZlICYmXG4gICAgICAgICF0aGlzLnRlbXBvcmFyeSAmJlxuICAgICAgICB0aGlzLnJlbW92ZU92ZXJsYXkoKVxuXG4gICAgICBpZiAocHJldiA9PSBudWxsIHx8XG4gICAgICAgICF0aGlzLnJlYWN0c1RvUmVzaXplIHx8XG4gICAgICAgICF0aGlzLnJlYWN0c1RvTW9iaWxlXG4gICAgICApIHJldHVyblxuXG4gICAgICB0aGlzLmlzQWN0aXZlID0gIXZhbFxuICAgIH0sXG4gICAgcGVybWFuZW50ICh2YWwpIHtcbiAgICAgIC8vIElmIGVuYWJsaW5nIHByb3AgZW5hYmxlIHRoZSBkcmF3ZXJcbiAgICAgIGlmICh2YWwpIHRoaXMuaXNBY3RpdmUgPSB0cnVlXG4gICAgfSxcbiAgICBzaG93T3ZlcmxheSAodmFsKSB7XG4gICAgICBpZiAodmFsKSB0aGlzLmdlbk92ZXJsYXkoKVxuICAgICAgZWxzZSB0aGlzLnJlbW92ZU92ZXJsYXkoKVxuICAgIH0sXG4gICAgdmFsdWUgKHZhbCkge1xuICAgICAgaWYgKHRoaXMucGVybWFuZW50KSByZXR1cm5cblxuICAgICAgaWYgKHZhbCA9PSBudWxsKSB7XG4gICAgICAgI
1HRoaXMuaW5pdCgpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAodmFsICE9PSB0aGlzLmlzQWN0aXZlKSB0aGlzLmlzQWN0aXZlID0gdmFsXG4gICAgfSxcbiAgICBleHBhbmRPbkhvdmVyOiAndXBkYXRlTWluaVZhcmlhbnQnLFxuICAgIGlzTW91c2VvdmVyICh2YWwpIHtcbiAgICAgIHRoaXMudXBkYXRlTWluaVZhcmlhbnQoIXZhbClcbiAgICB9LFxuICB9LFxuXG4gIGJlZm9yZU1vdW50ICgpIHtcbiAgICB0aGlzLmluaXQoKVxuICB9LFxuXG4gIG1ldGhvZHM6IHtcbiAgICBjYWxjdWxhdGVUb3VjaEFyZWEgKCkge1xuICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy4kZWwucGFyZW50Tm9kZSBhcyBFbGVtZW50XG5cbiAgICAgIGlmICghcGFyZW50KSByZXR1cm5cblxuICAgICAgY29uc3QgcGFyZW50UmVjdCA9IHBhcmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuXG4gICAgICB0aGlzLnRvdWNoQXJlYSA9IHtcbiAgICAgICAgbGVmdDogcGFyZW50UmVjdC5sZWZ0ICsgNTAsXG4gICAgICAgIHJpZ2h0OiBwYXJlbnRSZWN0LnJpZ2h0IC0gNTAsXG4gICAgICB9XG4gICAgfSxcbiAgICBjbG9zZUNvbmRpdGlvbmFsICgpIHtcbiAgICAgIHJldHVybiB0aGlzLmlzQWN0aXZlICYmICF0aGlzLl9pc0Rlc3Ryb3llZCAmJiB0aGlzLnJlYWN0c1RvQ2xpY2tcbiAgICB9LFxuICAgIGdlbkFwcGVuZCAoKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZW5Qb3NpdGlvbignYXBwZW5kJylcbiAgICB9LFxuICAgIGdlbkJhY2tncm91bmQgKCkge1xuICAgICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICBzcmM6IHRoaXMuc3JjLFxuICAgICAgfVxuXG4gICAgICBjb25zdCBpbWFnZSA9IHRoaXMuJHNjb3BlZFNsb3RzLmltZ1xuICAgICAgICA/IHRoaXMuJHNjb3BlZFNsb3RzLmltZyhwcm9wcylcbiAgICAgICAgOiB0aGlzLiRjcmVhdGVFbGVtZW50KFZJbWcsIHsgcHJvcHMgfSlcblxuICAgICAgcmV0dXJuIHRoaXMuJGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtcbiAgICAgICAgc3RhdGljQ2xhc3M6ICd2LW5hdmlnYXRpb24tZHJhd2VyX19pbWFnZScsXG4gICAgICB9LCBbaW1hZ2VdKVxuICAgIH0sXG4gICAgZ2VuRGlyZWN0aXZlcyAoKTogVk5vZGVEaXJlY3RpdmVbXSB7XG4gICAgICBjb25zdCBkaXJlY3RpdmVzID0gW3tcbiAgICAgICAgbmFtZTogJ2NsaWNrLW91dHNpZGUnLFxuICAgICAgICB2YWx1ZToge1xuICAgICAgICAgIGhhbmRsZXI6ICgpID0+IHsgdGhpcy5pc0FjdGl2ZSA9IGZhbHNlIH0sXG4gICAgICAgICAgY2xvc2VDb25kaXRpb25hbDogdGhpcy5jbG9zZUNvbmRpdGlvbmFsLFxuICAgICAgICAgIGluY2x1ZGU6IHRoaXMuZ2V0T3BlbkRlcGVuZGVudEVsZW1lbnRzLFxuICAgICAgICB9LFxuICAgICAgfV1cblxuICAgICAgaWYgKCF0aGlzLnRvdWNobGVzcyAmJiAhdGhpcy5zdGF0ZWxlc3MpIHtcbiAgICAgICAgZGlyZWN0aXZlcy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiAndG91Y2gnLFxuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICBwYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICBsZWZ0OiB0aGlzLnN3aXBlTGVmdCxcbiAgICAgICAgICAgIHJpZ2h0OiB0aGlzLnN3aXBlUmlnaHQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSBhcyBhbnkpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkaXJlY3RpdmVzXG4gICAgfSxcbiAgICBnZW5MaXN0ZW5lcnMgKCkge1xuICAgICAgY29uc3Qgb246IFJlY29yZDxzdHJpbmcsIChlOiBFdmVudCkgPT4gdm9pZD4gPSB7XG4gICAgICAgIG1vdXNlZW50ZXI6ICgpID0+ICh0aGlzLmlzTW91c2VvdmVyID0gdHJ1ZSksXG4gICAgICAgIG1vdXNlbGVhdmU6ICgpID0+ICh0aGlzLmlzTW91c2VvdmVyID0gZmFsc2UpLFxuICAgICAgICB0cmFuc2l0aW9uZW5kOiAoZTogRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoZS50YXJnZXQgIT09IGUuY3VycmVudFRhcmdldCkgcmV0dXJuXG4gICAgICAgICAgdGhpcy4kZW1pdCgndHJhbnNpdGlvbmVuZCcsIGUpXG5cbiAgICAgICAgICAvLyBJRTExIGRvZXMgbm90IHN1cHBvcnQgbmV3IEV2ZW50KCdyZXNpemUnKVxuICAgICAgICAgIGNvbnN0IHJlc2l6ZUV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ1VJRXZlbnRzJylcbiAgICAgICAgICByZXNpemVFdmVudC5pbml0VUlFdmVudCgncmVzaXplJywgdHJ1ZSwgZmFsc2UsIHdpbmRvdywgMClcbiAgICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChyZXNpemVFdmVudClcbiAgICAgICAgfSxcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMubWluaVZhcmlhbnQpIHtcbiAgICAgICAgb24uY2xpY2sgPSAoKSA9PiB0aGlzLiRlbWl0KCd1cGRhdGU6bWluaS12YXJpYW50JywgZmFsc2UpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvblxuICAgIH0sXG4gICAgZ2VuUG9zaXRpb24gKG5hbWU6ICdwcmVwZW5kJyB8ICdhcHBlbmQnKSB7XG4gICAgICBjb25zdCBzbG90ID0gZ2V0U2xvdCh0aGlzLCBuYW1lKVxuXG4gICAgICBpZiAoIXNsb3QpIHJldHVybiBzbG90XG5cbiAgICAgIHJldHVybiB0aGlzLiRjcmVhdGVFbGVtZW50KCdkaXYnLCB7XG4gICAgICAgIHN0YXRpY0NsYXNzOiBgdi1uYXZpZ2F0aW9uLWRyYXdlcl9fJHtuYW1lfWAsXG4gICAgICB9LCBzbG90KVxuICAgIH0sXG4gICAgZ2VuUHJlcGVuZCAoKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZW5Qb3NpdGlvbigncHJlcGVuZCcpXG4gICAgfSxcbiAgICBnZW5Db250ZW50ICgpIHtcbiAgICAgIHJldHVybiB0aGlzLiRjcmVhdGVFbGVtZW50KCdkaXYnLCB7XG4gICAgICAgIHN0YXRpY0NsYXNzOiAndi1uYXZpZ2F0aW9uLWRyYXdlcl9fY29udGVudCcsXG4gICAgICB9LCBnZXRTbG90KHRoaXMpKVxuICAgIH0sXG4gICAgZ2VuQm9yZGVyICgpIHtcbiAgICAgIHJldHVybiB0aGlzLiRjcmVhdGVFbGVtZW50KCdkaXYnLCB7XG4gICAgICAgIHN0YXRpY0NsYXNzOiAndi1uYXZpZ2F0aW9uLWRyYXdlcl9fYm9yZGVyJyxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBpbml0ICgpIHtcbiAgICAgIGlmICh0aGlzLnBlcm1hbmVudCkge1xuICAgICAgICB0aGlzLmlzQWN0aXZlID0gdHJ1ZVxuICAgICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlbGVzcyB8fFxuICAgICAgICB0aGlzLnZhbHVlICE9IG51bGxcbiAgICAgICkge1xuICAgICAgICB0aGlzLmlzQWN0aXZlID0gdGhpcy52YWx1ZVxuICAgICAgfSBlbHNlIGlmICghdGhpcy50ZW1wb3JhcnkpIHtcbiAgICAgICAgdGhpcy5pc0FjdGl2ZSA9ICF0aGlzLmlzTW9iaWxlXG4gICAgICB9XG4gICAgfSxcbiAgICBvblJvdXRlQ2hhbmdlICgpIHtcbiAgICAgIGlmICh0aGlzLnJlYWN0c1RvUm91dGUgJiYgdGhpcy5jbG9zZUNvbmRpdGlvbmFsKCkpIHtcbiAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IGZhbHNlXG4gICAgICB9XG4gICAgfSxcbiAgICBzd2lwZUxlZnQgKGU6IFRvdWNoV3JhcHBlcikge1xuICAgICAgaWYgKHRoaXMuaXNBY3RpdmUgJiYgdGhpcy5yaWdodCkgcmV0dXJuXG4gICAgICB0aGlzLmNhbGN1bGF0ZVRvdWNoQXJlYSgpXG5cbiAgICAgIGlmIChNYXRoLmFicyhlLnRvdWNoZW5kWCAtIGUudG91Y2hzdGFydFgpIDwgMTAwKSByZXR1cm5cbiAgICAgIGlmICh0aGlzLnJpZ2h0ICYmXG4gICAgICAgIGUudG91Y2hzdGFydFggPj0gdGhpcy50b3VjaEFyZWEucmlnaHRcbiAgICAgICkgdGhpcy5pc0FjdGl2ZSA9IHRydWVcbiAgICAgIGVsc2UgaWYgKCF0aGlzLnJpZ2h0ICYmIHRoaXMuaXNBY3RpdmUpIHRoaXMuaXNBY3RpdmUgPSBmYWxzZVxuICAgIH0sXG4gICAgc3dpcGVSaWdodCAoZTogVG91Y2hXcmFwcGVyKSB7XG4gICAgICBpZiAodGhpcy5pc0FjdGl2ZSAmJiAhdGhpcy5yaWdodCkgcmV0dXJuXG4gICAgICB0aGlzLmNhbGN1bGF0ZVRvdWNoQXJlYSgpXG5cbiAgICAgIGlmIChNYXRoLmFicyhlLnRvdWNoZW5kWCAtIGUudG91Y2hzdGFydFgpIDwgMTAwKSByZXR1cm5cbiAgICAgIGlmICghdGhpcy5yaWdodCAmJlxuICAgICAgICBlLnRvdWNoc3RhcnRYIDw9IHRoaXMudG91Y2hBcmVhLmxlZnRcbiAgICAgICkgdGhpcy5pc0FjdGl2ZSA9IHRydWVcbiAgICAgIGVsc2UgaWYgKHRoaXMucmlnaHQgJiYgdGhpcy5pc0FjdGl2ZSkgdGhpcy5pc0FjdGl2ZSA9IGZhbHNlXG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVcGRhdGUgdGhlIGFwcGxpY2F0aW9uIGxheW91dFxuICAgICAqL1xuICAgIHVwZGF0ZUFwcGxpY2F0aW9uICgpIHtcbiAgICAgIGlmIChcbiAgICAgICAgIXRoaXMuaXNBY3RpdmUgfHxcbiAgICAgICAgdGhpcy5pc01vYmlsZSB8fFxuICAgICAgICB0aGlzLnRlbXBvcmFyeSB8fFxuICAgICAgICAhdGhpcy4kZWxcbiAgICAgICkgcmV0dXJuIDBcblxuICAgICAgY29uc3Qgd2lkdGggPSBOdW1iZXIodGhpcy5taW5pVmFyaWFudCA/IHRoaXMubWluaVZhcmlhbnRXaWR0aCA6IHRoaXMud2lkdGgpXG5cbiAgICAgIHJldHVybi
1Bpc05hTih3aWR0aCkgPyB0aGlzLiRlbC5jbGllbnRXaWR0aCA6IHdpZHRoXG4gICAgfSxcbiAgICB1cGRhdGVNaW5pVmFyaWFudCAodmFsOiBib29sZWFuKSB7XG4gICAgICBpZiAodGhpcy5leHBhbmRPbkhvdmVyICYmIHRoaXMubWluaVZhcmlhbnQgIT09IHZhbCkgdGhpcy4kZW1pdCgndXBkYXRlOm1pbmktdmFyaWFudCcsIHZhbClcbiAgICB9LFxuICB9LFxuXG4gIHJlbmRlciAoaCk6IFZOb2RlIHtcbiAgICBjb25zdCBjaGlsZHJlbiA9IFtcbiAgICAgIHRoaXMuZ2VuUHJlcGVuZCgpLFxuICAgICAgdGhpcy5nZW5Db250ZW50KCksXG4gICAgICB0aGlzLmdlbkFwcGVuZCgpLFxuICAgICAgdGhpcy5nZW5Cb3JkZXIoKSxcbiAgICBdXG5cbiAgICBpZiAodGhpcy5zcmMgfHwgZ2V0U2xvdCh0aGlzLCAnaW1nJykpIGNoaWxkcmVuLnVuc2hpZnQodGhpcy5nZW5CYWNrZ3JvdW5kKCkpXG5cbiAgICByZXR1cm4gaCh0aGlzLnRhZywgdGhpcy5zZXRCYWNrZ3JvdW5kQ29sb3IodGhpcy5jb2xvciwge1xuICAgICAgY2xhc3M6IHRoaXMuY2xhc3NlcyxcbiAgICAgIHN0eWxlOiB0aGlzLnN0eWxlcyxcbiAgICAgIGRpcmVjdGl2ZXM6IHRoaXMuZ2VuRGlyZWN0aXZlcygpLFxuICAgICAgb246IHRoaXMuZ2VuTGlzdGVuZXJzKCksXG4gICAgfSksIGNoaWxkcmVuKVxuICB9LFxufSlcbiIsInZhciByZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKXt2YXIgX3ZtPXRoaXMsX2M9X3ZtLl9zZWxmLl9jO3JldHVybiBfYygndi1uYXZpZ2F0aW9uLWRyYXdlcicsX3ZtLl9iKHthdHRyczp7XCJpZFwiOlwiY29yZS1uYXZpZ2F0aW9uLWRyYXdlclwiLFwiZGFya1wiOl92bS5iYXJDb2xvciAhPT0gJ3JnYmEoMjI4LCAyMjYsIDIyNiwgMSksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KScsXCJleHBhbmQtb24taG92ZXJcIjpfdm0uZXhwYW5kT25Ib3ZlcixcIm1pbmktdmFyaWFudFwiOl92bS5leHBhbmRPbkhvdmVyICYmIF92bS4kdnVldGlmeS5icmVha3BvaW50Lm1kQW5kVXAsXCJyaWdodFwiOl92bS4kdnVldGlmeS5ydGwsXCJzcmNcIjpyZXF1aXJlKGBAL2Fzc2V0cy8ke192bS5iYXJJbWFnZX1gKSxcIm1vYmlsZS1icmVha3BvaW50XCI6XCI5NjBcIixcImFwcFwiOlwiXCIsXCJtaW5pLXZhcmlhbnQtd2lkdGhcIjpcIjgwXCIsXCJ3aWR0aFwiOlwiMjYwXCJ9LHNjb3BlZFNsb3RzOl92bS5fdShbe2tleTpcImltZ1wiLGZuOmZ1bmN0aW9uKHByb3BzKXtyZXR1cm4gW19jKCd2LWltZycsX3ZtLl9iKHthdHRyczp7XCJncmFkaWVudFwiOmB0byBib3R0b20sICR7X3ZtLmJhckNvbG9yfWB9fSwndi1pbWcnLHByb3BzLGZhbHNlKSldfX1dKSxtb2RlbDp7dmFsdWU6KF92bS5kcmF3ZXIpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uZHJhd2VyPSQkdn0sZXhwcmVzc2lvbjpcImRyYXdlclwifX0sJ3YtbmF2aWdhdGlvbi1kcmF3ZXInLF92bS4kYXR0cnMsZmFsc2UpLFtfYygndi1saXN0LWl0ZW0nLHthdHRyczp7XCJ0d28tbGluZVwiOlwiXCJ9fSxbX2MoJ3YtbGlzdC1pdGVtLWNvbnRlbnQnLFtfYygndi1saXN0LWl0ZW0tdGl0bGUnLFtfYygnaW1nJyx7c3RhdGljQ2xhc3M6XCJsb2dvXCIsYXR0cnM6e1wic3JjXCI6X3ZtLmxvZ299fSldKV0sMSldLDEpLF9jKCd2LWRpdmlkZXInLHtzdGF0aWNDbGFzczpcIm1iLTFcIn0pLF9jKCd2LWxpc3QnLHthdHRyczp7XCJkZW5zZVwiOlwiXCIsXCJuYXZcIjpcIlwiLFwiZGlzYWJsZWRcIjpcIlwifX0sW19jKCdiYXNlLWl0ZW0tZ3JvdXAnLHthdHRyczp7XCJpdGVtXCI6X3ZtLnByb2ZpbGV9fSldLDEpLF9jKCd2LWRpdmlkZXInLHtzdGF0aWNDbGFzczpcIm1iLTJcIn0pLF9jKCd2LWxpc3QnLHthdHRyczp7XCJleHBhbmRcIjpcIlwiLFwibmF2XCI6XCJcIn19LFtfYygnZGl2JyksX3ZtLl9sKChfdm0ubWVudUl0ZW1zKSxmdW5jdGlvbihpdGVtLGkpe3JldHVybiBbKGl0ZW0uY2hpbGRyZW4pP19jKCdiYXNlLWl0ZW0tZ3JvdXAnLHtrZXk6YGdyb3VwLSR7aX1gLGF0dHJzOntcIml0ZW1cIjppdGVtfX0pOl9jKCdiYXNlLWl0ZW0nLHtrZXk6YGl0ZW0tJHtpfWAsYXR0cnM6e1wiaXRlbVwiOml0ZW19fSldfSksX2MoJ2RpdicpXSwyKV0sMSlcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZXRpZnktbG9hZGVyL2xpYi9sb2FkZXIuanM/P3J1bGVTZXRbMV0ucnVsZXNbMF0udXNlIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTQwLnVzZVsxXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS92dWUtbG9hZGVyLXYxNS9saWIvbG9hZGVycy90ZW1wbGF0ZUxvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1s0XSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS92dWUtbG9hZGVyLXYxNS9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0RyYXdlci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjQ3MTJhNjJcIiIsIjx0ZW1wbGF0ZT5cbiAgPHYtbmF2aWdhdGlvbi1kcmF3ZXIgaWQ9XCJjb3JlLW5hdmlnYXRpb24tZHJhd2VyXCIgdi1tb2RlbD1cImRyYXdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgIDpkYXJrPVwiYmFyQ29sb3IgIT09ICdyZ2JhKDIyOCwgMjI2LCAyMjYsIDEpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyknXCJcbiAgICAgICAgICAgICAgICAgICAgICAgOmV4cGFuZC1vbi1ob3Zlcj1cImV4cGFuZE9uSG92ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICA6bWluaS12YXJpYW50PVwiZXhwYW5kT25Ib3ZlciAmJiAkdnVldGlmeS5icmVha3BvaW50Lm1kQW5kVXBcIlxuICAgICAgICAgICAgICAgICAgICAgICA6cmlnaHQ9XCIkdnVldGlmeS5ydGxcIlxuICAgICAgICAgICAgICAgICAgICAgICA6c3JjPVwicmVxdWlyZShgQC9hc3NldHMvJHtiYXJJbWFnZX1gKVwiXG4gICAgICAgICAgICAgICAgICAgICAgIG1vYmlsZS1icmVha3BvaW50PVwiOTYwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgYXBwXG4gICAgICAgICAgICAgICAgICAgICAgIG1pbmktdmFyaWFudC13aWR0aD1cIjgwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyNjBcIlxuICAgICAgICAgICAgICAgICAgICAgICB2LWJpbmQ9XCIkYXR0cnNcIlxuICA+XG4gICAgPHRlbXBsYXRlIHYtc2xvdDppbWc9XCJwcm9wc1wiPlxuICAgICAgPHYtaW1nIDpncmFkaWVudD1cImB0byBib3R0b20sICR7YmFyQ29sb3J9YFwiIHYtYmluZD1cInByb3BzXCIgLz5cbiAgICA8L3RlbXBsYXRlPlxuXG4gICAgPHYtbGlzdC1pdGVtIHR3by1saW5lPlxuICAgICAgPHYtbGlzdC1pdGVtLWNvbnRlbnQ+XG4gICAgICAgIDx2LWxpc3QtaXRlbS10aXRsZT5cbiAgICAgICAgICA8aW1nIGNsYXNzPVwibG9nb1wiIDpzcmM9XCJsb2dvXCI+XG4gICAgICAgIDwvdi1saXN0LWl0ZW0tdGl0bGU+XG4gICAgICA8L3YtbGlzdC1pdGVtLWNvbnRlbnQ+XG4gICAgPC92LWxpc3QtaXRlbT5cblxuICAgIDx2LWRpdmlkZXIgY2xhc3M9XCJtYi0xXCIgLz5cblxuICAgIDx2LWxpc3QgZGVuc2UgbmF2IGRpc2FibGVkPlxuICAgICAgPGJhc2UtaXRlbS1ncm91cCA6aXRlbT1cInByb2ZpbGVcIiAvPlxuICAgIDwvdi1saXN0PlxuXG4gICAgPHYtZGl2aWRlciBjbGFzcz1cIm1iLTJcIiAvPlxuXG4gICAgPHYtbGlzdCBleHBhbmQgbmF2PlxuICAgICAgPCEtLSBTdHlsZSBjYXNjYWRpbmcgYnVnICAtLT5cbiAgICAgIDwhLS0gaHR0cHM6Ly9naXRodWIuY29tL3Z1ZXRpZnlqcy92dWV0aWZ5L3B1bGwvODU3NCAtLT5cbiAgICAgIDxkaXYgLz5cblxuICAgICAgPHRlbXBsYXRlIHYtZm9yPVwiKGl0ZW0sIGkpIGluIG1lbnVJdGVtc1wiPlxuICAgICAgICA8YmFzZS1pdGVtLWdyb3VwIHYtaWY9XCJpdGVtLmNoaWxkcmVuXCIgOmtleT1cImBncm91cC0ke2l9YFwiIDppdGVtPVwiaXRlbVwiIC8+XG4gICAgICAgIDxiYXNlLWl0ZW0gdi1lbHNlIDprZXk9XCJgaXRlbS0ke2l9YFwiIDppdGVtPVwiaXRlbVwiIC8+XG4gICAgICA8L3RlbXBsYXRlPlxuXG4gICAgICA8IS0tIFN0eWxlIGNhc2NhZGluZyBidWcgIC0tPlxuICAgICAgPCEtLSBodHRwczovL2dpdGh1Yi5jb20vdnVldGlmeWpzL3Z1ZXRpZnkvcHVsbC84NTc0IC0tPlxuICAgICAgPGRpdiAvPlxuICAgIDwvdi1saXN0PlxuICA8L3YtbmF2aWdhdGlvbi1kcmF3ZXI+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuaW1wb3J0IENvbmZpZyBmcm9tICdAL3V0aWxzL2NvbmZpZyc7XG5pbXBvcnQgUGFnZXNTZXJ2aWNlIGZyb20gJ0Avc2VydmljZXMvcGFnZXMudjIuc2VydmljZSc7XG5cbi8vIFV0aWxpdGllc1xuaW1wb3J0IHtcbiAgbWFwU3RhdGUsXG59IGZyb20gJ3Z1ZXgnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6ICdEYXNoYm9hcmRDb3JlRHJhd2VyJyxcblxuICBwcm9wczoge1xuICAgIGV4cGFuZE9uSG92ZXI6IHtcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICB9LFxuICB9LFxuXG4gIGRhdGE6ICgpID0+ICh7XG4gICAgbW9kdWxlTWVudToge30sXG4gICAgbWVudUl0ZW1zOiBbXSxcbiAgICBkeW5hbWljUGFnZXM6IHt9LFxuICAgIHBhZ2VEcmFmdFN0YXR1czoge30sXG4gICAgcGFnZUNhdGVnb3JpZXM6IHt9LFxuICAgIHByb2ZpbGU6IHtcbiAgICAgIGF2YXRhcjogdW5kZWZpbmVkLFxuICAgICAgZ3JvdXA6ICcnLFxuICAgICAgdGl0bGU6IHVuZGVmaW5lZCxcbiAgICAgIHN1YnRpdGxlOiB1bmRlZmluZWQsXG4gICAgICBjaGlsZHJlbjogW10sXG4gICAgfSxcbiAgICBsb2dvOiAnJyxcbiAgfSksXG5cbiAgY29tcHV0ZWQ6IHtcbiAgICAuLi5tYXBTdGF0ZShbJ2JhckNvbG9yJywgJ2JhckltYWdlJ10pLFxuICAgIGRyYXdlcjoge1xuICAgICAgZ2V0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy4kc3RvcmUuc3RhdGUuZHJhd2VyO1xuICAgICAgfSxcbiAgICAgIHNldCh2YWwpIHtcbiAgICAgICAgdGhpcy4kc3RvcmUuY29tbWl0KCdTRVRfRFJBV0VSJywgdmFsKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcblxuICB3YXRjaDoge1xuICAgICckdnVldGlmeS5icmVha3BvaW50LnNtQW5kRG93bicodmFsKSB7XG4gICAgICB0aGlzLiRlbWl0KCd1cGRhdGU6ZXhwYW5kT25Ib3ZlcicsICF2YWwpO1xuICAgIH0sXG4gICAgYXN5bmMgJyRjdXJyZW50VXNlcicoKSB7XG4gICAgICB0aGlzLmZpbHRlck1lbnVJdGVtcygpO1xuICAgICAgdGhpcy5mZXRjaFByb2ZpbGUoKTtcbiAgICAgIHRoaXMuZmV0Y2hMb2dvKCk7XG4gICAgfSxcbiAgICBhc3luYyAnJGN1cnJlbnRTdHVkZW50JygpIHtcbiAgICAgIHRoaXMuZmlsdGVyTWVudUl0ZW1zKCk7XG4gICAgICB0aGlzLmZldGNoUHJvZmlsZSgpO1xuICAgIH0sXG4gICAgLy8gVGhlIGNvbnRleHRzIGFycml2ZSBhZnRlciB0aGUgdXNlciBkb2VzLCBzbyB0aGUgZW50cmllcyB0aGF0IG5lZWQgb25lXG4gICAgLy8gYXJlIGRlY2lkZWQgYWdhaW4gb25jZSB0aGV5IGFyZSBrbm93bi5cbiAgICAnJHN0b3JlLmdldHRlcnMuaGVsZENvb
1nRleHRzJygpIHtcbiAgICAgIHRoaXMuZmlsdGVyTWVudUl0ZW1zKCk7XG4gICAgfSxcbiAgfSxcblxuICBhc3luYyBjcmVhdGVkKCkge1xuICAgIHRoaXMubW9kdWxlTWVudSA9IENvbmZpZy5nZXQoJ21vZHVsZXMnKS5tZW51O1xuICAgIC8vIGxvYWQgcGFnZSBjYXRlZ29yeSBsaXN0cyB0byBiaW5kIGludG8gbWVudSAoVjIgc29ydHMgYnkgcG9zaXRpb24pXG4gICAgY29uc3Qge2RhdGF9ID0gYXdhaXQgUGFnZXNTZXJ2aWNlLmdldExpc3QoKTtcbiAgICB0aGlzLmR5bmFtaWNQYWdlcyA9IGRhdGEuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5jYXRlZ29yeSkucmVkdWNlKChvYmosIGl0ZW0pID0+IHtcbiAgICAgIG9ialtpdGVtLnBhdGhdID0gaXRlbS5kcmFmdDtcbiAgICAgIHJldHVybiBvYmo7XG4gICAgfSwge30pO1xuICAgIHRoaXMucGFnZURyYWZ0U3RhdHVzID0gZGF0YS5yZWR1Y2UoKG9iaiwgaXRlbSkgPT4ge1xuICAgICAgb2JqW2l0ZW0ucGF0aF0gPSAhIWl0ZW0uZHJhZnQ7XG4gICAgICByZXR1cm4gb2JqO1xuICAgIH0sIHt9KTtcbiAgICB0aGlzLnBhZ2VDYXRlZ29yaWVzID0gZGF0YS5yZWR1Y2UoKG9iaiwgaXRlbSkgPT4ge1xuICAgICAgaWYgKCEoaXRlbS5jYXRlZ29yeSBpbiBvYmopKSB7XG4gICAgICAgIG9ialtpdGVtLmNhdGVnb3J5XSA9IFtdO1xuICAgICAgfVxuICAgICAgY29uc3QgcGFnZSA9IHtcbiAgICAgICAgdGl0bGU6IGl0ZW0udGl0bGUsXG4gICAgICAgIHRvOiBpdGVtLnBhdGgsXG4gICAgICAgIGRyYWZ0OiBpdGVtLmRyYWZ0LFxuICAgICAgICBwb3NpdGlvbjogaXRlbS5wb3NpdGlvbixcbiAgICAgIH07XG4gICAgICBpZiAoaXRlbS50YWcpIHtcbiAgICAgICAgcGFnZS50YWcgPSBpdGVtLnRhZztcbiAgICAgIH1cbiAgICAgIG9ialtpdGVtLmNhdGVnb3J5XS5wdXNoKHBhZ2UpO1xuICAgICAgcmV0dXJuIG9iajtcbiAgICB9LCB7fSk7XG4gICAgdGhpcy5maWx0ZXJNZW51SXRlbXMoKTtcbiAgICB0aGlzLmZldGNoUHJvZmlsZSgpO1xuICAgIHRoaXMuZmV0Y2hMb2dvKCk7XG4gIH0sXG5cbiAgbWV0aG9kczoge1xuICAgIGZpbHRlck1lbnVJdGVtcygpIHtcbiAgICAgIC8vIG9ubHkgc2hvdyBkcmFmdCBwYWdlcyBmb3IgZWRpdG9ycyBvciB0aG9zZSBvdmVycmlkaW5nIHVzZXJzXG4gICAgICBjb25zdCBzaG93RHJhZnQgPSB0aGlzLiRoYXNQZXJtaXNzaW9uKCdwYWdlczplZGl0JykgfHwgISF0aGlzLiRzdG9yZS5zdGF0ZS5vdmVycmlkaW5nVXNlci5pZDtcbiAgICAgIHRoaXMubWVudUl0ZW1zID0gdGhpcy5tb2R1bGVNZW51XG4gICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IHRoaXMubWVudUl0ZW1WaXNpYmxlKGl0ZW0pICYmIChzaG93RHJhZnQgfHwgdGhpcy5wYWdlQXZhaWxhYmxlKGl0ZW0pKSAmJiB0aGlzLnNlY3Rpb25BdmFpbGFibGUoaXRlbSkpXG4gICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IHRoaXMucGFnZVZpc2libGVGb3JTdHVkZW50KGl0ZW0ucHJvZ3JhbW1lcykpXG4gICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IHRoaXMuZmVhdHVyZUFwcGxpZXNUb1N0dWRlbnQoaXRlbS5zdHVkZW50RmVhdHVyZSkpXG4gICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IHRoaXMuaGFzVmlzaWJsZUNoaWxkcmVuSWZDYXRlZ29yeShpdGVtLCBzaG93RHJhZnQpKVxuICAgICAgICAubWFwKChpdGVtKSA9PiB0aGlzLm1hcEl0ZW0oaXRlbSwgc2hvd0RyYWZ0KSk7XG4gICAgfSxcbiAgICBmZXRjaFByb2ZpbGUoKSB7XG4gICAgICB0aGlzLnByb2ZpbGUuYXZhdGFyID0gdGhpcy4kc3RvcmUuc3RhdGUuY3VycmVudFVzZXIucGljdHVyZTtcbiAgICAgIHRoaXMucHJvZmlsZS50aXRsZSA9IHRoaXMuJHN0b3JlLnN0YXRlLmN1cnJlbnRVc2VyLm5hbWU7XG4gICAgICB0aGlzLnByb2ZpbGUuc3VidGl0bGUgPSB0aGlzLiRzdG9yZS5zdGF0ZS5jdXJyZW50U3R1ZGVudD8ucGFydG5lcklkO1xuICAgIH0sXG4gICAgZmV0Y2hMb2dvKCkge1xuICAgICAgaWYgKHRoaXMuJGhhc1Blcm1pc3Npb24oJ2Rhc2hib2FyZDp2aWV3JykpIHtcbiAgICAgICAgdGhpcy5sb2dvID0gQ29uZmlnLmdldCgnQ0RNU0xvZ28nKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy4kaGFzUGVybWlzc2lvbignZm9ybXM6c3R1ZGVudCcpKSB7XG4gICAgICAgIHRoaXMubG9nbyA9IENvbmZpZy5nZXQoJ3N0dWRlbnRQb3J0YWxMb2dvJyk7XG4gICAgICB9XG4gICAgfSxcbiAgICBtYXBJdGVtKGl0ZW0sIHNob3dEcmFmdCkge1xuICAgICAgbGV0IGNoaWxkcmVuO1xuICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgY2hpbGRyZW4gPSBpdGVtLmNoaWxkcmVuXG4gICAgICAgICAgLmZpbHRlcigoY2hpbGQpID0+IHRoaXMubWVudUl0ZW1WaXNpYmxlKGNoaWxkKSAmJiAoc2hvd0RyYWZ0IHx8IHRoaXMuY2hpbGRQYWdlQXZhaWxhYmxlKGNoaWxkKSkpXG4gICAgICAgICAgLmZpbHRlcigoY2hpbGQpID0+IHRoaXMucGFnZVZpc2libGVGb3JTdHVkZW50KGNoaWxkLnByb2dyYW1tZXMpKVxuICAgICAgICAgIC5maWx0ZXIoKGNoaWxkKSA9PiB0aGlzLmZlYXR1cmVBcHBsaWVzVG9TdHVkZW50KGNoaWxkLnN0dWRlbnRGZWF0dXJlKSlcbiAgICAgICAgICAubWFwKChjaGlsZCkgPT4gdGhpcy5tYXBJdGVtKGNoaWxkLCBzaG93RHJhZnQpKTtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtLmNhdGVnb3J5KSB7XG4gICAgICAgIC8vIGxvYWQgY2F0ZWdvcnkgcGFnZXMgZnJvbSB0aGUgZGF0YWJhc2UgYW5kIGFwcGVuZCB0aGVtIHRvIGFueSBoYXJkLWNvZGVkXG4gICAgICAgIC8vIGNoaWxkcmVuIHNvIGEgbm9kZSBjYW4gbWl4IGN1c3RvbSBwYWdlcyB3aXRoIGEgcG9ydGFsLXBhZ2UgY2F0ZWdvcnlcbiAgICAgICAgY29uc3QgY2F0ZWdvcnlDaGlsZHJlbiA9ICh0aGlzLnBhZ2VDYXRlZ29yaWVzW2l0ZW0uY2F0ZWdvcnldIHx8IFtdKVxuICAgICAgICAgIC5maWx0ZXIoKHBhZ2UpID0+IHNob3dEcmFmdCB8fCAhcGFnZS5kcmFmdClcbiAgICAgICAgICAuZmlsdGVyKChwYWdlKSA9PiB0aGlzLnBhZ2VWaXNpYmxlRm9yU3R1ZGVudChwYWdlLnRhZykpO1xuICAgICAgICBjaGlsZHJlbiA9IFsuLi4oY2hpbGRyZW4gfHwgW10pLCAuLi5jYXRlZ29yeUNoaWxkcmVuXTtcbiAgICAgIH1cbiAgICAgIC8vIG9yZGVyIGJ5IHBvc2l0aW9uIHdoZXJlIHNldDsgZW50cmllcyB3aXRob3V0IG9uZSBrZWVwIHRoZWlyIGxpc3Qgb3JkZXJcbiAgICAgIC8vIChoYXJkLWNvZGVkIGNoaWxkcmVuKSBhbmQgZmFsbCBhZnRlciBwb3NpdGlvbmVkIHBhZ2VzXG4gICAgICBpZiAoY2hpbGRyZW4gJiYgY2hpbGRyZW4uc29tZSgoY2hpbGQpID0+IGNoaWxkLnBvc2l0aW9uICE9IG51bGwpKSB7XG4gICAgICAgIGNoaWxkcmVuID0gY2hpbGRyZW5cbiAgICAgICAgICAubWFwKChjaGlsZCwgaW5kZXgpID0+ICh7Y2hpbGQsIGluZGV4fSkpXG4gICAgICAgICAgLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBvc0EgPSBhLmNoaWxkLnBvc2l0aW9uID09IG51bGwgPyBJbmZpbml0eSA6IGEuY2hpbGQucG9zaXRpb247XG4gICAgICAgICAgICBjb25zdCBwb3NCID0gYi5jaGlsZC5wb3NpdGlvbiA9PSBudWxsID8gSW5maW5pdHkgOiBiLmNoaWxkLnBvc2l0aW9uO1xuICAgICAgICAgICAgcmV0dXJuIHBvc0EgLSBwb3NCIH
1x8IGEuaW5kZXggLSBiLmluZGV4O1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLm1hcCgoZW50cnkpID0+IGVudHJ5LmNoaWxkKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLml0ZW0sXG4gICAgICAgIGNoaWxkcmVuLFxuICAgICAgICB0aXRsZTogaXRlbS50aXRsZSxcbiAgICAgIH07XG4gICAgfSxcbiAgICAvLyBBbiBlbnRyeSBuZWVkcyBpdHMgcGVybWlzc2lvbiwgaWYgYW55LCBhbmQgLSB3aGVuIGl0IG5hbWVzIHRoZVxuICAgIC8vIHJlbGF0aW9uc2hpcCBpdHMgbGlzdCBpcyBidWlsdCBmcm9tIC0gb25lIG9mIHRob3NlIHJlbGF0aW9uc2hpcHMgdG9vLCBzb1xuICAgIC8vIG5vYm9keSBpcyBvZmZlcmVkIGEgbGlzdCB0aGF0IHdvdWxkIGJlIGVtcHR5IGZvciB0aGVtLlxuICAgIG1lbnVJdGVtVmlzaWJsZShpdGVtKSB7XG4gICAgICByZXR1cm4gKCFpdGVtLnJlcXVpcmVzIHx8IHRoaXMuJGhhc0FueVBlcm1pc3Npb24oaXRlbS5yZXF1aXJlcykpICYmIHRoaXMuaG9sZHNDb250ZXh0KGl0ZW0pO1xuICAgIH0sXG4gICAgaG9sZHNDb250ZXh0KGl0ZW0pIHtcbiAgICAgIGlmICghaXRlbS5jb250ZXh0KSByZXR1cm4gdHJ1ZTtcbiAgICAgIGNvbnN0IHdhbnRlZCA9IFtpdGVtLmNvbnRleHRdLmZsYXQoKTtcbiAgICAgIHJldHVybiB3YW50ZWQuc29tZSgoY29udGV4dCkgPT4gdGhpcy4kc3RvcmUuZ2V0dGVycy5oZWxkQ29udGV4dHMuaW5jbHVkZXMoY29udGV4dCkpO1xuICAgIH0sXG4gICAgcGFnZUF2YWlsYWJsZShpdGVtKSB7XG4gICAgICByZXR1cm4gIWl0ZW0ucHJvcHMgfHwgIWl0ZW0ucHJvcHMucGF0aCB8fCAoaXRlbS5wcm9wcy5wYXRoIGluIHRoaXMuZHluYW1pY1BhZ2VzICYmICF0aGlzLmR5bmFtaWNQYWdlc1tpdGVtLnByb3BzLnBhdGhdKTtcbiAgICB9LFxuICAgIGNoaWxkUGFnZUF2YWlsYWJsZShjaGlsZCkge1xuICAgICAgcmV0dXJuICFjaGlsZC5wcm9wcyB8fCAhY2hpbGQucHJvcHMucGF0aCB8fCAhdGhpcy5wYWdlRHJhZnRTdGF0dXNbY2hpbGQucHJvcHMucGF0aF07XG4gICAgfSxcbiAgICBzZWN0aW9uQXZhaWxhYmxlKGl0ZW0pIHtcbiAgICAgIC8vIGEgbm9kZSB3aXRoIGhhcmQtY29kZWQgY2hpbGRyZW4gc3RheXMgYXZhaWxhYmxlIGV2ZW4gaWYgaXRzIGNhdGVnb3J5IGlzIGVtcHR5XG4gICAgICByZXR1cm4gIWl0ZW0uY2F0ZWdvcnkgfHwgaXRlbS5jaGlsZHJlbiB8fCAoaXRlbS5jYXRlZ29yeSBpbiB0aGlzLnBhZ2VDYXRlZ29yaWVzKTtcbiAgICB9LFxuICAgIGhhc1Zpc2libGVDaGlsZHJlbklmQ2F0ZWdvcnkoaXRlbSwgc2hvd0RyYWZ0KSB7XG4gICAgICBpZiAoaXRlbS5jYXRlZ29yeSAmJiAhaXRlbS5jaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gdGhpcy5wYWdlQ2F0ZWdvcmllc1tpdGVtLmNhdGVnb3J5XS5maWx0ZXIoKHBhZ2UpID0+IHNob3dEcmFmdCB8fCAhcGFnZS5kcmFmdCkubGVuZ3RoID4gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0sXG4gICAgZmVhdHVyZUFwcGxpZXNUb1N0dWRlbnQoc3R1ZGVudEZlYXR1cmUpIHtcbiAgICAgIC8vIHJlc3RyaWN0cyBhIG1lbnUgaXRlbSB0byB0aGUgc3R1ZGVudCB0eXBlcyBhIHBvcnRhbCBmZWF0dXJlIGFwcGxpZXMgdG8sXG4gICAgICAvLyBzbyBhIHN0dWRlbnQgaXMgbmV2ZXIgb2ZmZXJlZCBhIHBhZ2UgdGhhdCB3b3VsZCBvbmx5IHRlbGwgdGhlbSB0aGVcbiAgICAgIC8vIGZlYXR1cmUgaXMgbm90IHJlcXVpcmVkIGZvciB0aGVpciB0eXBlLiBJdGVtcyB3aXRob3V0IGEgYHN0dWRlbnRGZWF0dXJlYFxuICAgICAgLy8ga2V5IChldmVyeSBzdGFmZiBtZW51IGl0ZW0pIGFyZSB1bmFmZmVjdGVkLlxuICAgICAgcmV0dXJuICFzdHVkZW50RmVhdHVyZSB8fCB0aGlzLiRzdG9yZS5nZXR0ZXJzLnN0dWRlbnRIYXNGZWF0dXJlKHN0dWRlbnRGZWF0dXJlKTtcbiAgICB9LFxuICAgIHBhZ2VWaXNpYmxlRm9yU3R1ZGVudChyZXN0cmljdGlvbikge1xuICAgICAgLy8gcmVzdHJpY3RzIGEgcGFnZSBvciBtZW51IGl0ZW0gdG8gYSBsaXN0IG9mIGxvY2F0aW9uIG9yIHByb2dyYW1tZSBjb2RlczsgYVxuICAgICAgLy8gdG9rZW4gcHJlZml4ZWQgd2l0aCAhIGV4Y2x1ZGVzLiBQb3J0YWwgcGFnZXMgaW4gdGhlIGRhdGFiYXNlIGNhcnJ5IGl0IGFzIGFcbiAgICAgIC8vIHNwYWNlL2NvbW1hIHNlcGFyYXRlZCBgdGFnYCBzdHJpbmc7IGNsaWVudC1jb25maWcgbWVudSBpdGVtcyBhcyBhXG4gICAgICAvLyBgcHJvZ3JhbW1lc2AgYXJyYXkuIFNob3cgd2hlbiB1bnNldCwgd2hlbiBhIHBvc2l0aXZlIHRva2VuIG1hdGNoZXMgKG9yIG5vbmVcbiAgICAgIC8vIGFyZSBnaXZlbikgYW5kIHdoZW4gbm8gbmVnYXRpdmUgdG9rZW4gbWF0Y2hlcy5cbiAgICAgIGNvbnN0IHRva2VucyA9IEFycmF5LmlzQXJyYXkocmVzdHJpY3Rpb24pXG4gICAgICAgID8gcmVzdHJpY3Rpb24uZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgIDogKHJlc3RyaWN0aW9uIHx8ICcnKS5zcGxpdCgvW1xccyxdKy8pLmZpbHRlcihCb29sZWFuKTtcbiAgICAgIGlmICh0b2tlbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgY29uc3Qge2xvY2F0aW9uLCBwcm9ncmFtbWVDb2RlfSA9IHRoaXMuJGN1cnJlbnRTdHVkZW50IHx8IHt9O1xuICAgICAgY29uc3QgbWF0Y2hlcyA9ICh0b2tlbikgPT5cbiAgICAgICAgdG9rZW4gPT09IGxvY2F0aW9uIHx8IHRva2VuID09PSBwcm9ncmFtbWVDb2RlIHx8ICh0b2tlbiA9PT0gJ0ZsZXhpJyAmJiAhbG9jYXRpb24pO1xuICAgICAgY29uc3QgbmVnYXRpdmVzID0gdG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHRva2VuLnN0YXJ0c1dpdGgoJyEnKSkubWFwKCh0b2tlbikgPT4gdG9rZW4uc2xpY2UoMSkpO1xuICAgICAgaWYgKG5lZ2F0aXZlcy5zb21lKG1hdGNoZXMpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBvc2l0aXZlcyA9IHRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiAhdG9rZW4uc3RhcnRzV2l0aCgnIScpKTtcbiAgICAgIHJldHVybiBwb3NpdGl2ZXMubGVuZ3RoID09PSAwIHx8IHBvc2l0aXZlcy5zb21lKG1hdGNoZXMpO1xuICAgIH0sXG4gIH0sXG59O1xuPC9zY3JpcHQ+XG5cbjxzdHlsZSBsYW5nPVwic2Fzc1wiPlxuICBAaW1wb3J0ICd+dnVldGlmeS9zcmMvc3R5bGVzL3Rvb2xzL19ydGwuc2FzcydcblxuICAjY29yZS1uYXZpZ2F0aW9uLWRyYXdlclxuICAgICYudi1uYXZpZ2F0aW9uLWRyYXdlci0tbWluaS12YXJpYW50XG4gICAgICAudi1saXN0LWl0ZW1cbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnRcblxuICAgICAgLnYtbGlzdC1ncm91cC0tc3ViLWdyb3VwXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnRcblxuICAgIC52LWxpc3QtZ3JvdXBfX2hlYWRlci52LWxpc3QtaXRlbS0tYWN0aXZlOmJlZm9yZVxuICAgICAgb3BhY2l0eTogLjI0XG5cbiAgICAudi1saXN0LWl0ZW1cbiAgICAgICZfX2ljb24tLXRleHQsXG4gICAgICAmX19pY29uOmZpcnN0LWNoaWxkXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyXG4gICAgICAgI
1HRleHQtYWxpZ246IGNlbnRlclxuICAgICAgICB3aWR0aDogMjBweFxuXG4gICAgICAgICtsdHIoKVxuICAgICAgICAgIG1hcmdpbi1yaWdodDogMjRweFxuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4ICFpbXBvcnRhbnRcblxuICAgICAgICArcnRsKClcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMjRweFxuICAgICAgICAgIG1hcmdpbi1yaWdodDogMTJweCAhaW1wb3J0YW50XG5cbiAgICAudi1saXN0LS1kZW5zZVxuICAgICAgLnYtbGlzdC1pdGVtXG4gICAgICAgICZfX2ljb24tLXRleHQsXG4gICAgICAgICZfX2ljb246Zmlyc3QtY2hpbGRcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4XG5cbiAgICAudi1saXN0LWdyb3VwLS1zdWItZ3JvdXBcbiAgICAgIC52LWxpc3QtaXRlbVxuICAgICAgICArbHRyKClcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDhweFxuXG4gICAgICAgICtydGwoKVxuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDhweFxuXG4gICAgICAudi1saXN0LWdyb3VwX19oZWFkZXJcbiAgICAgICAgK2x0cigpXG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMFxuXG4gICAgICAgICtydGwoKVxuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDBcblxuICAgICAgICAudi1saXN0LWl0ZW1fX2ljb24tLXRleHRcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxOXB4XG4gICAgICAgICAgb3JkZXI6IDBcblxuICAgICAgICAudi1saXN0LWdyb3VwX19oZWFkZXJfX3ByZXBlbmQtaWNvblxuICAgICAgICAgIG9yZGVyOiAyXG5cbiAgICAgICAgICArbHRyKClcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogOHB4XG5cbiAgICAgICAgICArcnRsKClcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHhcbjwvc3R5bGU+XG4iLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTQwLnVzZVsxXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS92dWUtbG9hZGVyLXYxNS9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0RyYXdlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anNcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC00MC51c2VbMV0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvdnVlLWxvYWRlci12MTUvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9EcmF3ZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzXCIiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCB7fTsiLCJleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/P2Nsb25lZFJ1bGVTZXQtMjcudXNlWzBdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTI3LnVzZVsxXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS92dWUtbG9hZGVyLXYxNS9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9jbG9uZWRSdWxlU2V0LTI3LnVzZVsyXSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P2Nsb25lZFJ1bGVTZXQtMjcudXNlWzNdIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AdnVlL3Z1ZS1sb2FkZXItdjE1L2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vRHJhd2VyLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTI0NzEyYTYyJnByb2QmbGFuZz1zYXNzXCIiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL0RyYXdlci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjQ3MTJhNjJcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9EcmF3ZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0RyYXdlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anNcIlxuaW1wb3J0IHN0eWxlMCBmcm9tIFwiLi9EcmF3ZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MjQ3MTJhNjImcHJvZCZsYW5nPXNhc3NcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvdnVlLWxvYWRlci12MTUvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGxcbiAgXG4pXG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sIm5hbWVzIjpbIlZJbWciLCJBcHBsaWNhdGlvbmFibGUiLCJDb2xvcmFibGUiLCJEZXBlbmRlbnQiLCJNb2JpbGUiLCJPdmVybGF5YWJsZSIsIlNTUkJvb3RhYmxlIiwiVGhlbWVhYmxlIiwiQ2xpY2tPdXRzaWRlIiwiUmVzaXplIiwiVG91Y2giLCJjb252ZXJ0VG9Vbml0IiwiZ2V0U2xvdCIsIm1peGlucyIsImJhc2VNaXhpbnMiLCJleHRlbmQiLCJuYW1lIiwiZGlyZWN0aXZlcyIsInByb3ZpZGUiLCJpc0luTmF2IiwidGFnIiwicHJvcHMiLCJib3R0b20iLCJCb29sZWFuIiwiY2xpcHBlZCIsImRpc2FibGVSZXNpemVXYXRjaGVyIiwiZGlzYWJsZVJvdXRlV2F0Y2hlciIsImV4cGFuZE9uSG92ZXIiLCJmbG9hdGluZyIsImhlaWdodCIsInR5cGUiLCJOdW1iZXIiLCJTdHJpbmciLCJkZWZhdWx0IiwiYXBwIiwibWluaVZhcmlhbnQiLCJtaW5pVmFyaWFudFdpZHRoIiwicGVybWFuZW50IiwicmlnaHQiLCJzcmMiLCJPYmplY3QiLCJzdGF0ZWxlc3MiLCJ0ZW1wb3JhcnkiLCJ0b3VjaGxlc3MiLCJ3aWR0aCIsInZhbHVlIiwiZGF0YSIsImlzTW91c2VvdmVyIiwidG91Y2hBcmVhIiwibGVmdCIsInN0YWNrTWluWkluZGV4IiwiY29tcHV0ZWQiLCJhcHBsaWNhdGlvblByb3BlcnR5IiwiY2xhc3NlcyIsImFic29sdXRlIiwiaXNBY3RpdmUiLCJmaXhlZCIsImlzTW9iaWxlIiwiaXNNaW5pVmFyaWFudCIsInRoZW1lQ2xhc3NlcyIsImNvbXB1dGVkTWF4SG
1VpZ2h0IiwiaGFzQXBwIiwiJHZ1ZXRpZnkiLCJhcHBsaWNhdGlvbiIsImZvb3RlciIsImJhciIsInRvcCIsImNvbXB1dGVkVG9wIiwiY29tcHV0ZWRUcmFuc2Zvcm0iLCJpc0JvdHRvbSIsImNvbXB1dGVkV2lkdGgiLCJvcHRpb25zIiwiY2FsbCIsInJlYWN0c1RvQ2xpY2siLCJyZWFjdHNUb01vYmlsZSIsInJlYWN0c1RvUmVzaXplIiwicmVhY3RzVG9Sb3V0ZSIsInNob3dPdmVybGF5IiwiaGlkZU92ZXJsYXkiLCJzdHlsZXMiLCJ0cmFuc2xhdGUiLCJtYXhIZWlnaHQiLCJ1bmRlZmluZWQiLCJ0cmFuc2Zvcm0iLCJ3YXRjaCIsIiRyb3V0ZSIsInZhbCIsIiRlbWl0IiwicHJldiIsInJlbW92ZU92ZXJsYXkiLCJnZW5PdmVybGF5IiwiaW5pdCIsInVwZGF0ZU1pbmlWYXJpYW50IiwiYmVmb3JlTW91bnQiLCJtZXRob2RzIiwiY2FsY3VsYXRlVG91Y2hBcmVhIiwicGFyZW50IiwiJGVsIiwicGFyZW50Tm9kZSIsInBhcmVudFJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJjbG9zZUNvbmRpdGlvbmFsIiwiX2lzRGVzdHJveWVkIiwiZ2VuQXBwZW5kIiwiZ2VuUG9zaXRpb24iLCJnZW5CYWNrZ3JvdW5kIiwiaW1hZ2UiLCIkc2NvcGVkU2xvdHMiLCJpbWciLCIkY3JlYXRlRWxlbWVudCIsInN0YXRpY0NsYXNzIiwiZ2VuRGlyZWN0aXZlcyIsImhhbmRsZXIiLCJpbmNsdWRlIiwiZ2V0T3BlbkRlcGVuZGVudEVsZW1lbnRzIiwicHVzaCIsInN3aXBlTGVmdCIsInN3aXBlUmlnaHQiLCJnZW5MaXN0ZW5lcnMiLCJvbiIsIm1vdXNlZW50ZXIiLCJtb3VzZWxlYXZlIiwidHJhbnNpdGlvbmVuZCIsImUiLCJ0YXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwicmVzaXplRXZlbnQiLCJkb2N1bWVudCIsImNyZWF0ZUV2ZW50IiwiaW5pdFVJRXZlbnQiLCJ3aW5kb3ciLCJkaXNwYXRjaEV2ZW50IiwiY2xpY2siLCJzbG90IiwiZ2VuUHJlcGVuZCIsImdlbkNvbnRlbnQiLCJnZW5Cb3JkZXIiLCJvblJvdXRlQ2hhbmdlIiwiTWF0aCIsImFicyIsInRvdWNoZW5kWCIsInRvdWNoc3RhcnRYIiwidXBkYXRlQXBwbGljYXRpb24iLCJpc05hTiIsImNsaWVudFdpZHRoIiwicmVuZGVyIiwiaCIsImNoaWxkcmVuIiwidW5zaGlmdCIsInNldEJhY2tncm91bmRDb2xvciIsImNvbG9yIiwiY2xhc3MiLCJzdHlsZSIsIl92bSIsIl9jIiwiX3NlbGYiLCJfYiIsImF0dHJzIiwiYmFyQ29sb3IiLCJicmVha3BvaW50IiwibWRBbmRVcCIsInJ0bCIsInJlcXVpcmUiLCJiYXJJbWFnZSIsInNjb3BlZFNsb3RzIiwiX3UiLCJrZXkiLCJmbiIsIm1vZGVsIiwiZHJhd2VyIiwiY2FsbGJhY2siLCIkJHYiLCJleHByZXNzaW9uIiwiJGF0dHJzIiwibG9nbyIsInByb2ZpbGUiLCJfbCIsIm1lbnVJdGVtcyIsIml0ZW0iLCJpIiwic3RhdGljUmVuZGVyRm5zIiwiQ29uZmlnIiwiUGFnZXNTZXJ2aWNlIiwibWFwU3RhdGUiLCJtb2R1bGVNZW51IiwiZHluYW1pY1BhZ2VzIiwicGFnZURyYWZ0U3RhdHVzIiwicGFnZUNhdGVnb3JpZXMiLCJhdmF0YXIiLCJncm91cCIsInRpdGxlIiwic3VidGl0bGUiLCJnZXQiLCIkc3RvcmUiLCJzdGF0ZSIsInNldCIsImNvbW1pdCIsIiR2dWV0aWZ5LmJyZWFrcG9pbnQuc21BbmREb3duIiwiJGN1cnJlbnRVc2VyIiwiZmlsdGVyTWVudUl0ZW1zIiwiZmV0Y2hQcm9maWxlIiwiZmV0Y2hMb2dvIiwiJGN1cnJlbnRTdHVkZW50IiwiJHN0b3JlLmdldHRlcnMuaGVsZENvbnRleHRzIiwiY3JlYXRlZCIsIm1lbnUiLCJnZXRMaXN0IiwiZmlsdGVyIiwiY2F0ZWdvcnkiLCJyZWR1Y2UiLCJvYmoiLCJwYXRoIiwiZHJhZnQiLCJwYWdlIiwidG8iLCJwb3NpdGlvbiIsInNob3dEcmFmdCIsIiRoYXNQZXJtaXNzaW9uIiwib3ZlcnJpZGluZ1VzZXIiLCJpZCIsIm1lbnVJdGVtVmlzaWJsZSIsInBhZ2VBdmFpbGFibGUiLCJzZWN0aW9uQXZhaWxhYmxlIiwicGFnZVZpc2libGVGb3JTdHVkZW50IiwicHJvZ3JhbW1lcyIsImZlYXR1cmVBcHBsaWVzVG9TdHVkZW50Iiwic3R1ZGVudEZlYXR1cmUiLCJoYXNWaXNpYmxlQ2hpbGRyZW5JZkNhdGVnb3J5IiwibWFwIiwibWFwSXRlbSIsImN1cnJlbnRVc2VyIiwicGljdHVyZSIsImN1cnJlbnRTdHVkZW50IiwicGFydG5lcklkIiwiY2hpbGQiLCJjaGlsZFBhZ2VBdmFpbGFibGUiLCJjYXRlZ29yeUNoaWxkcmVuIiwic29tZSIsImluZGV4Iiwic29ydCIsImEiLCJiIiwicG9zQSIsIkluZmluaXR5IiwicG9zQiIsImVudHJ5IiwicmVxdWlyZXMiLCIkaGFzQW55UGVybWlzc2lvbiIsImhvbGRzQ29udGV4dCIsImNvbnRleHQiLCJ3YW50ZWQiLCJmbGF0IiwiZ2V0dGVycyIsImhlbGRDb250ZXh0cyIsImluY2x1ZGVzIiwibGVuZ3RoIiwic3R1ZGVudEhhc0ZlYXR1cmUiLCJyZXN0cmljdGlvbiIsInRva2VucyIsIkFycmF5IiwiaXNBcnJheSIsInNwbGl0IiwibG9jYXRpb24iLCJwcm9ncmFtbWVDb2RlIiwibWF0Y2hlcyIsInRva2VuIiwibmVnYXRpdmVzIiwic3RhcnRzV2l0aCIsInNsaWNlIiwicG9zaXRpdmVzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///31358\n\n}")},38734:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";eval("{/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   A: function() { return /* binding */ applicationable; }\n/* harmony export */ });\n/* harmony import */ var _positionable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86763);\n/* harmony import */ var _util_mixins__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(95803);\n // Util\n\n\nfunction applicationable(value, events = []) {\n  /* @vue/component */\n  return (0,_util_mixins__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"] */ .A)((0,_positionable__WEBPACK_IMPORTED_MODULE_0__/* .factory */ .P)(['absolute', 'fixed'])).extend({\n    name: 'applicationable',\n    props: {\n      app: Boolean\n    },\n    computed: {\n      applicationProperty() {\n        return value;\n      }\n    },\n    watch: {\n      // If previous value was app\n      // reset the provided prop\n      app(x, prev) {\n        prev ? this.removeApplication(true) : this.callUpdate();\n      },\n      applicationProperty(newVal, oldVal) {\n        this.$vuetify.application.unregister(this._uid, oldVal);\n      }\n    },\n    activated() {\n      this.callUpdate();\n    },\n    created() {\n      for (let i = 0, length = events.length; i < length;
1 i++) {\n        this.$watch(events[i], this.callUpdate);\n      }\n      this.callUpdate();\n    },\n    mounted() {\n      this.callUpdate();\n    },\n    deactivated() {\n      this.removeApplication();\n    },\n    destroyed() {\n      this.removeApplication();\n    },\n    methods: {\n      callUpdate() {\n        if (!this.app) return;\n        this.$vuetify.application.register(this._uid, this.applicationProperty, this.updateApplication());\n      },\n      removeApplication(force = false) {\n        if (!force && !this.app) return;\n        this.$vuetify.application.unregister(this._uid, this.applicationProperty);\n      },\n      updateApplication: () => 0\n    }\n  });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzg3MzQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Q0FHQTs7QUFDQTtBQUVjLFNBQVVHLGVBQVZBLENBQTJCQyxLQUEzQixFQUE4Q0MsTUFBQSxHQUFtQixFQUFqRSxFQUFtRTtFQUMvRTtFQUNBLE9BQU9ILGlFQUFNLENBQUNELCtEQUFtQixDQUFDLENBQUMsVUFBRCxFQUFhLE9BQWIsQ0FBRCxDQUFwQixDQUFOLENBQW1ESyxNQUFuRCxDQUEwRDtJQUMvREMsSUFBSSxFQUFFLGlCQUR5RDtJQUcvREMsS0FBSyxFQUFFO01BQ0xDLEdBQUcsRUFBRUM7SUFEQSxDQUh3RDtJQU8vREMsUUFBUSxFQUFFO01BQ1JDLG1CQUFtQkEsQ0FBQTtRQUNqQixPQUFPUixLQUFQO01BQ0Q7SUFITyxDQVBxRDtJQWEvRFMsS0FBSyxFQUFFO01BQ0w7TUFDQTtNQUNBSixHQUFHQSxDQUFFSyxDQUFGLEVBQWNDLElBQWQsRUFBMkI7UUFDNUJBLElBQUksR0FDQSxLQUFLQyxpQkFBTCxDQUF1QixJQUF2QixDQURBLEdBRUEsS0FBS0MsVUFBTCxFQUZKO01BR0QsQ0FQSTtNQVFMTCxtQkFBbUJBLENBQUVNLE1BQUYsRUFBVUMsTUFBVixFQUFnQjtRQUNqQyxLQUFLQyxRQUFMLENBQWNDLFdBQWQsQ0FBMEJDLFVBQTFCLENBQXFDLEtBQUtDLElBQTFDLEVBQWdESixNQUFoRDtNQUNEO0lBVkksQ0Fid0Q7SUEwQi9ESyxTQUFTQSxDQUFBO01BQ1AsS0FBS1AsVUFBTDtJQUNELENBNUI4RDtJQThCL0RRLE9BQU9BLENBQUE7TUFDTCxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFSLEVBQVdDLE1BQU0sR0FBR3RCLE1BQU0sQ0FBQ3NCLE1BQWhDLEVBQXdDRCxDQUFDLEdBQUdDLE1BQTVDLEVBQW9ERCxDQUFDLEVBQXJELEVBQXlEO1FBQ3ZELEtBQUtFLE1BQUwsQ0FBWXZCLE1BQU0sQ0FBQ3FCLENBQUQsQ0FBbEIsRUFBdUIsS0FBS1QsVUFBNUI7TUFDRDtNQUNELEtBQUtBLFVBQUw7SUFDRCxDQW5DOEQ7SUFxQy9EWSxPQUFPQSxDQUFBO01BQ0wsS0FBS1osVUFBTDtJQUNELENBdkM4RDtJQXlDL0RhLFdBQVdBLENBQUE7TUFDVCxLQUFLZCxpQkFBTDtJQUNELENBM0M4RDtJQTZDL0RlLFNBQVNBLENBQUE7TUFDUCxLQUFLZixpQkFBTDtJQUNELENBL0M4RDtJQWlEL0RnQixPQUFPLEVBQUU7TUFDUGYsVUFBVUEsQ0FBQTtRQUNSLElBQUksQ0FBQyxLQUFLUixHQUFWLEVBQWU7UUFFZixLQUFLVyxRQUFMLENBQWNDLFdBQWQsQ0FBMEJZLFFBQTFCLENBQ0UsS0FBS1YsSUFEUCxFQUVFLEtBQUtYLG1CQUZQLEVBR0UsS0FBS3NCLGlCQUFMLEVBSEY7TUFLRCxDQVRNO01BVVBsQixpQkFBaUJBLENBQUVtQixLQUFLLEdBQUcsS0FBVixFQUFlO1FBQzlCLElBQUksQ0FBQ0EsS0FBRCxJQUFVLENBQUMsS0FBSzFCLEdBQXBCLEVBQXlCO1FBRXpCLEtBQUtXLFFBQUwsQ0FBY0MsV0FBZCxDQUEwQkMsVUFBMUIsQ0FDRSxLQUFLQyxJQURQLEVBRUUsS0FBS1gsbUJBRlA7TUFJRCxDQWpCTTtNQWtCUHNCLGlCQUFpQixFQUFFQSxDQUFBLEtBQU07SUFsQmxCO0VBakRzRCxDQUExRCxDQUFQO0FBc0VEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vY2Rtcy8uLi9zcmMvbWl4aW5zL2FwcGxpY2F0aW9uYWJsZS9pbmRleC50cz80YTQ4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZhY3RvcnkgYXMgUG9zaXRpb25hYmxlRmFjdG9yeSB9IGZyb20gJy4uL3Bvc2l0aW9uYWJsZSdcbmltcG9ydCB7IFRhcmdldFByb3AgfSBmcm9tICd2dWV0aWZ5L3R5cGVzL3NlcnZpY2VzL2FwcGxpY2F0aW9uJ1xuXG4vLyBVdGlsXG5pbXBvcnQgbWl4aW5zIGZyb20gJy4uLy4uL3V0aWwvbWl4aW5zJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhcHBsaWNhdGlvbmFibGUgKHZhbHVlOiBUYXJnZXRQcm9wLCBldmVudHM6IHN0cmluZ1tdID0gW10pIHtcbiAgLyogQHZ1ZS9jb21wb25lbnQgKi9cbiAgcmV0dXJuIG1peGlucyhQb3NpdGlvbmFibGVGYWN0b3J5KFsnYWJzb2x1dGUnLCAnZml4ZWQnXSkpLmV4dGVuZCh7XG4gICAgbmFtZTogJ2FwcGxpY2F0aW9uYWJsZScsXG5cbiAgICBwcm9wczoge1xuICAgICAgYXBwOiBCb29sZWFuLFxuICAgIH0sXG5cbiAgICBjb21wdXRlZDoge1xuICAgICAgYXBwbGljYXRpb25Qcm9wZXJ0eSAoKTogVGFyZ2V0UHJvcCB7XG4gICAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgd2F0Y2g6IHtcbiAgICAgIC8vIElmIHByZXZpb3VzIHZhbHVlIHdhcyBhcHBcbiAgICAgIC8vIHJlc2V0IHRoZSBwcm92aWRlZCBwcm9wXG4gICAgICBhcHAgKHg6IGJvb2xlYW4sIHByZXY6IGJvb2xlYW4pIHtcbiAgICAgICAgcHJldlxuICAgICAgICAgID8gdGhpcy5yZW1vdmVBcHBsaWNhdGlvbih0cnVlKVxuICAgICAgICAgIDogdGhpcy5jYWxsVXBkYXRlKClcbiAgICAgIH0sXG4gICAgICBhcHBsaWNhdGlvblByb3BlcnR5IChuZXdWYWwsIG9sZFZhbCkge1xuICAgICAgICB0aGlzLiR2dWV0aWZ5LmFwcGxpY2F0aW9uLnVucmVnaXN0ZXIodGhpcy5fdWlkLCBvbGRWYWwpXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBhY3RpdmF0ZWQgKCkge1xuICAgICAgdGhpcy5jYWxsVXBkYXRlKClcbiAgICB9LFxuXG4gICAgY3JlYXRlZCAoKSB7XG4gICAgICBmb3IgKGxldCBpID0gMCwgbGVuZ3RoID0gZXZlbnRzLmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgI
1HRoaXMuJHdhdGNoKGV2ZW50c1tpXSwgdGhpcy5jYWxsVXBkYXRlKVxuICAgICAgfVxuICAgICAgdGhpcy5jYWxsVXBkYXRlKClcbiAgICB9LFxuXG4gICAgbW91bnRlZCAoKSB7XG4gICAgICB0aGlzLmNhbGxVcGRhdGUoKVxuICAgIH0sXG5cbiAgICBkZWFjdGl2YXRlZCAoKSB7XG4gICAgICB0aGlzLnJlbW92ZUFwcGxpY2F0aW9uKClcbiAgICB9LFxuXG4gICAgZGVzdHJveWVkICgpIHtcbiAgICAgIHRoaXMucmVtb3ZlQXBwbGljYXRpb24oKVxuICAgIH0sXG5cbiAgICBtZXRob2RzOiB7XG4gICAgICBjYWxsVXBkYXRlICgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmFwcCkgcmV0dXJuXG5cbiAgICAgICAgdGhpcy4kdnVldGlmeS5hcHBsaWNhdGlvbi5yZWdpc3RlcihcbiAgICAgICAgICB0aGlzLl91aWQsXG4gICAgICAgICAgdGhpcy5hcHBsaWNhdGlvblByb3BlcnR5LFxuICAgICAgICAgIHRoaXMudXBkYXRlQXBwbGljYXRpb24oKVxuICAgICAgICApXG4gICAgICB9LFxuICAgICAgcmVtb3ZlQXBwbGljYXRpb24gKGZvcmNlID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKCFmb3JjZSAmJiAhdGhpcy5hcHApIHJldHVyblxuXG4gICAgICAgIHRoaXMuJHZ1ZXRpZnkuYXBwbGljYXRpb24udW5yZWdpc3RlcihcbiAgICAgICAgICB0aGlzLl91aWQsXG4gICAgICAgICAgdGhpcy5hcHBsaWNhdGlvblByb3BlcnR5XG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgICB1cGRhdGVBcHBsaWNhdGlvbjogKCkgPT4gMCxcbiAgICB9LFxuICB9KVxufVxuIl0sIm5hbWVzIjpbImZhY3RvcnkiLCJQb3NpdGlvbmFibGVGYWN0b3J5IiwibWl4aW5zIiwiYXBwbGljYXRpb25hYmxlIiwidmFsdWUiLCJldmVudHMiLCJleHRlbmQiLCJuYW1lIiwicHJvcHMiLCJhcHAiLCJCb29sZWFuIiwiY29tcHV0ZWQiLCJhcHBsaWNhdGlvblByb3BlcnR5Iiwid2F0Y2giLCJ4IiwicHJldiIsInJlbW92ZUFwcGxpY2F0aW9uIiwiY2FsbFVwZGF0ZSIsIm5ld1ZhbCIsIm9sZFZhbCIsIiR2dWV0aWZ5IiwiYXBwbGljYXRpb24iLCJ1bnJlZ2lzdGVyIiwiX3VpZCIsImFjdGl2YXRlZCIsImNyZWF0ZWQiLCJpIiwibGVuZ3RoIiwiJHdhdGNoIiwibW91bnRlZCIsImRlYWN0aXZhdGVkIiwiZGVzdHJveWVkIiwibWV0aG9kcyIsInJlZ2lzdGVyIiwidXBkYXRlQXBwbGljYXRpb24iLCJmb3JjZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///38734\n\n}")},77377:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";eval("{/* harmony import */ var _http_v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27574);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(37569);\n/**\n * V2 Pages Service\n *\n * Portal CMS pages via the V2 API (/api/v1/pages). Lists are bare arrays\n * sorted by position server-side; pass {path} or {category} to filter.\n */\n\n\n\nclass PagesV2Service {\n  request() {\n    return new _http_v2__WEBPACK_IMPORTED_MODULE_0__/* [\"default\"] */ .A();\n  }\n  responseWrapper(...rest) {\n    return new _utils__WEBPACK_IMPORTED_MODULE_1__/* .ResponseWrapper */ .PR(...rest);\n  }\n  errorWrapper(...rest) {\n    return new _utils__WEBPACK_IMPORTED_MODULE_1__/* .ErrorWrapper */ .sr(...rest);\n  }\n  async getList(params = {}) {\n    try {\n      const response = await this.request().get('pages', {\n        params\n      });\n      return this.responseWrapper(response, response.data);\n    } catch (error) {\n      throw this.errorWrapper(error);\n    }\n  }\n  async getById(id) {\n    try {\n      const response = await this.request().get(`pages/${id}`);\n      return this.responseWrapper(response, response.data);\n    } catch (error) {\n      throw this.errorWrapper(error);\n    }\n  }\n  async create(data) {\n    try {\n      const response = await this.request().post('pages', data);\n      return this.responseWrapper(response, response.data);\n    } catch (error) {\n      throw this.errorWrapper(error);\n    }\n  }\n  async update(id, data) {\n    try {\n      const response = await this.request().put(`pages/${id}`, data);\n      return this.responseWrapper(response, response.data);\n    } catch (error) {\n      throw this.errorWrapper(error);\n    }\n  }\n  async remove(id) {\n    try {\n      const response = await this.request().delete(`pages/${id}`);\n      return this.responseWrapper(response, response.data);\n    } catch (error) {\n      throw this.errorWrapper(error);\n    }\n  }\n}\n/* harmony default export */ __webpack_exports__.A = (new PagesV2Service());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzczNzcuanMiLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRStCO0FBQ3VCO0FBRXRELE1BQU1HLGNBQWMsQ0FBQztFQUNuQkMsT0FBT0EsQ0FBQSxFQUFHO0lBQ1IsT0FBTyxJQUFJSix5REFBTSxDQUFDLENBQUM7RUFDckI7RUFFQUssZUFBZUEsQ0FBQyxHQUFHQyxJQUFJLEVBQUU7SUFDdkIsT0FBTyxJQUFJTCw2REFBZSxDQUFDLEdBQUdLLElBQUksQ0FBQztFQUNyQztFQUVBQyxZQUFZQSxDQUFDLEdBQUdELElBQUksRUFBRTtJQUNwQixPQUFPLElBQUlKLDBEQUFZLENBQUMsR0FBR0ksSUFBSSxDQUFDO0VBQ2xDO0VBRUEsTUFBTUUsT0FBT0EsQ0FBQ0MsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFO0lBQ3pCLElBQUk7TUFDRixNQUFNQyxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUNOLE9BQU8sQ0FBQyxDQUFDLENBQUNPLEdBQUcsQ0FBQyxPQUFPLEVBQUU7UUFBQ0Y7TUFBTSxDQUFDLENBQUM7T
1UFDNUQsT0FBTyxJQUFJLENBQUNKLGVBQWUsQ0FBQ0ssUUFBUSxFQUFFQSxRQUFRLENBQUNFLElBQUksQ0FBQztJQUN0RCxDQUFDLENBQUMsT0FBT0MsS0FBSyxFQUFFO01BQ2QsTUFBTSxJQUFJLENBQUNOLFlBQVksQ0FBQ00sS0FBSyxDQUFDO0lBQ2hDO0VBQ0Y7RUFFQSxNQUFNQyxPQUFPQSxDQUFDQyxFQUFFLEVBQUU7SUFDaEIsSUFBSTtNQUNGLE1BQU1MLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQ04sT0FBTyxDQUFDLENBQUMsQ0FBQ08sR0FBRyxDQUFDLFNBQVNJLEVBQUUsRUFBRSxDQUFDO01BQ3hELE9BQU8sSUFBSSxDQUFDVixlQUFlLENBQUNLLFFBQVEsRUFBRUEsUUFBUSxDQUFDRSxJQUFJLENBQUM7SUFDdEQsQ0FBQyxDQUFDLE9BQU9DLEtBQUssRUFBRTtNQUNkLE1BQU0sSUFBSSxDQUFDTixZQUFZLENBQUNNLEtBQUssQ0FBQztJQUNoQztFQUNGO0VBRUEsTUFBTUcsTUFBTUEsQ0FBQ0osSUFBSSxFQUFFO0lBQ2pCLElBQUk7TUFDRixNQUFNRixRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUNOLE9BQU8sQ0FBQyxDQUFDLENBQUNhLElBQUksQ0FBQyxPQUFPLEVBQUVMLElBQUksQ0FBQztNQUN6RCxPQUFPLElBQUksQ0FBQ1AsZUFBZSxDQUFDSyxRQUFRLEVBQUVBLFFBQVEsQ0FBQ0UsSUFBSSxDQUFDO0lBQ3RELENBQUMsQ0FBQyxPQUFPQyxLQUFLLEVBQUU7TUFDZCxNQUFNLElBQUksQ0FBQ04sWUFBWSxDQUFDTSxLQUFLLENBQUM7SUFDaEM7RUFDRjtFQUVBLE1BQU1LLE1BQU1BLENBQUNILEVBQUUsRUFBRUgsSUFBSSxFQUFFO0lBQ3JCLElBQUk7TUFDRixNQUFNRixRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUNOLE9BQU8sQ0FBQyxDQUFDLENBQUNlLEdBQUcsQ0FBQyxTQUFTSixFQUFFLEVBQUUsRUFBRUgsSUFBSSxDQUFDO01BQzlELE9BQU8sSUFBSSxDQUFDUCxlQUFlLENBQUNLLFFBQVEsRUFBRUEsUUFBUSxDQUFDRSxJQUFJLENBQUM7SUFDdEQsQ0FBQyxDQUFDLE9BQU9DLEtBQUssRUFBRTtNQUNkLE1BQU0sSUFBSSxDQUFDTixZQUFZLENBQUNNLEtBQUssQ0FBQztJQUNoQztFQUNGO0VBRUEsTUFBTU8sTUFBTUEsQ0FBQ0wsRUFBRSxFQUFFO0lBQ2YsSUFBSTtNQUNGLE1BQU1MLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQ04sT0FBTyxDQUFDLENBQUMsQ0FBQ2lCLE1BQU0sQ0FBQyxTQUFTTixFQUFFLEVBQUUsQ0FBQztNQUMzRCxPQUFPLElBQUksQ0FBQ1YsZUFBZSxDQUFDSyxRQUFRLEVBQUVBLFFBQVEsQ0FBQ0UsSUFBSSxDQUFDO0lBQ3RELENBQUMsQ0FBQyxPQUFPQyxLQUFLLEVBQUU7TUFDZCxNQUFNLElBQUksQ0FBQ04sWUFBWSxDQUFDTSxLQUFLLENBQUM7SUFDaEM7RUFDRjtBQUNGO0FBRUEsc0RBQWUsSUFBSVYsY0FBYyxDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9jZG1zLy4vc3JjL3NlcnZpY2VzL3BhZ2VzLnYyLnNlcnZpY2UuanM/Yjg5MiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFYyIFBhZ2VzIFNlcnZpY2VcbiAqXG4gKiBQb3J0YWwgQ01TIHBhZ2VzIHZpYSB0aGUgVjIgQVBJICgvYXBpL3YxL3BhZ2VzKS4gTGlzdHMgYXJlIGJhcmUgYXJyYXlzXG4gKiBzb3J0ZWQgYnkgcG9zaXRpb24gc2VydmVyLXNpZGU7IHBhc3Mge3BhdGh9IG9yIHtjYXRlZ29yeX0gdG8gZmlsdGVyLlxuICovXG5cbmltcG9ydCBIdHRwVjIgZnJvbSAnLi9odHRwLnYyJztcbmltcG9ydCB7UmVzcG9uc2VXcmFwcGVyLCBFcnJvcldyYXBwZXJ9IGZyb20gJy4vdXRpbHMnO1xuXG5jbGFzcyBQYWdlc1YyU2VydmljZSB7XG4gIHJlcXVlc3QoKSB7XG4gICAgcmV0dXJuIG5ldyBIdHRwVjIoKTtcbiAgfVxuXG4gIHJlc3BvbnNlV3JhcHBlciguLi5yZXN0KSB7XG4gICAgcmV0dXJuIG5ldyBSZXNwb25zZVdyYXBwZXIoLi4ucmVzdCk7XG4gIH1cblxuICBlcnJvcldyYXBwZXIoLi4ucmVzdCkge1xuICAgIHJldHVybiBuZXcgRXJyb3JXcmFwcGVyKC4uLnJlc3QpO1xuICB9XG5cbiAgYXN5bmMgZ2V0TGlzdChwYXJhbXMgPSB7fSkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdCgpLmdldCgncGFnZXMnLCB7cGFyYW1zfSk7XG4gICAgICByZXR1cm4gdGhpcy5yZXNwb25zZVdyYXBwZXIocmVzcG9uc2UsIHJlc3BvbnNlLmRhdGEpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLmVycm9yV3JhcHBlcihlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0QnlJZChpZCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdCgpLmdldChgcGFnZXMvJHtpZH1gKTtcbiAgICAgIHJldHVybiB0aGlzLnJlc3BvbnNlV3JhcHBlcihyZXNwb25zZSwgcmVzcG9uc2UuZGF0YSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMuZXJyb3JXcmFwcGVyKGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBjcmVhdGUoZGF0YSkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdCgpLnBvc3QoJ3BhZ2VzJywgZGF0YSk7XG4gICAgICByZXR1cm4gdGhpcy5yZXNwb25zZVdyYXBwZXIocmVzcG9uc2UsIHJlc3BvbnNlLmRhdGEpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLmVycm9yV3JhcHBlcihlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgdXBkYXRlKGlkLCBkYXRhKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KCkucHV0KGBwYWdlcy8ke2lkfWAsIGRhdGEpO1xuICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2VXcmFwcGVyKHJlc3BvbnNlLCByZXNwb25zZS5kYXRhKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgdGhpcy5lcnJvcldyYXBwZXIoZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHJlbW92ZShpZCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdCgpLmRlbGV0ZShgcGFnZXMvJHtpZH1gKTtcbiAgICAgIHJldHVybiB0aGlzLnJlc3BvbnNlV3JhcHBlcihyZXNwb25zZSwgcmVzcG9uc2UuZGF0YSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IHRoaXMuZXJyb3JXcmFwcGVyKGVycm9yKTtcbiAgICB9XG4gI
1H1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbmV3IFBhZ2VzVjJTZXJ2aWNlKCk7XG4iXSwibmFtZXMiOlsiSHR0cFYyIiwiUmVzcG9uc2VXcmFwcGVyIiwiRXJyb3JXcmFwcGVyIiwiUGFnZXNWMlNlcnZpY2UiLCJyZXF1ZXN0IiwicmVzcG9uc2VXcmFwcGVyIiwicmVzdCIsImVycm9yV3JhcHBlciIsImdldExpc3QiLCJwYXJhbXMiLCJyZXNwb25zZSIsImdldCIsImRhdGEiLCJlcnJvciIsImdldEJ5SWQiLCJpZCIsImNyZWF0ZSIsInBvc3QiLCJ1cGRhdGUiLCJwdXQiLCJyZW1vdmUiLCJkZWxldGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///77377\n\n}")},50290:function(Q,B,F){var U={"./btn_google_signin_dark_normal_web.png":6465,"./clint-mckoy.jpg":31350,"./lock.jpg":6097,"./login.jpg":2881,"./ms-symbollockup_signin_dark.png":82897,"./register.jpg":74767,"./sidebar-1.jpg":31532,"./sidebar-2.jpg":74331,"./sidebar-3.jpg":54174,"./sidebar-4.jpg":97061,"./wtc-sidebar-1.png":84203,"./wtc-sidebar-2.png":12912,"./wtc-sidebar-3.png":19161,"./wtc-sidebar-4.png":69766};function I(Q){var B=i(Q);return F(B)}function i(Q){if(!F.o(U,Q)){var B=new Error("Cannot find module '"+Q+"'");throw B.code="MODULE_NOT_FOUND",B}return U[Q]}I.keys=function(){return Object.keys(U)},I.resolve=i,Q.exports=I,I.id=50290},6465:function(Q){"use strict";Q.exports="data:image/png;base64,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"},31350:function(Q,B,F){"use strict";Q.exports=F.p+"img/clint-mckoy.e357a649.jpg"},6097:function(Q,B,F){"use strict";Q.exports=F.p+"img/lock.7086d80f.jpg"},2881:function(Q,B,F){"use strict";Q.exports=F.p+"img/login.1263f0a2.jpg"},82897:function(Q){"use strict";Q.exports="data:image/png;base64,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"},74767:function(Q,B,F){"use strict";Q.exports=F.p+"img/register.b488f60b.jpg"},31532:function(Q,B,F){"use strict";Q.exports=F.p+"img/sidebar-1.71cd3810.jpg"},74331:function(Q,B,F){"use strict";Q.exports=F.p+"img/sidebar-2.cfc003e2.jpg"},54174:function(Q,B,F){"use strict";Q.exports=F.p+"img/sidebar-3.6932c535.jpg"},97061:function(Q,B,F){"use strict";Q.exports=F.p+"img/sidebar-4.bbac9867.jpg"},84203:function(Q,B,F){"use strict";Q.exports=F.p+"img/wtc-sidebar-1.1fc41eb5.png"},12912:function(Q,B,F){"use strict";Q.exports=F.p+"img/wtc-sidebar-2.b1434be7.png"},19161:function(Q,B,F){"use strict";Q.exports=F.p+"img/wtc-sidebar-3.4af586eb.png"},69766:function(Q,B,F){"use strict";Q.exports=F.p+"img/wtc-sidebar-4.f69d07ac.png"}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.